lkml.org 
[lkml]   [2020]   [Dec]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 85/87] ALSA: hda/hdmi: packet buffer index must be set before reading value
    Date
    From: Kai Vehmanen <kai.vehmanen@linux.intel.com>

    [ Upstream commit 46c3bbd9827952f92e250fa6ee30a797a4c4e17e ]

    The check for infoframe transmit status in hdmi_infoframe_uptodate()
    makes the assumption that packet buffer index is set to zero.

    Align code with specification and explicitly set the index before
    AC_VERB_GET_HDMI_DIP_XMIT. The packet index setting affects both
    DIP-Data and DIP-XmitCtrl verbs.

    There are no known cases where the old implementation has caused driver
    to work incorrectly. This change is purely based on code review against
    the specification (HDA spec rev1.0a).

    Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
    Link: https://lore.kernel.org/r/20201211131613.3271407-1-kai.vehmanen@linux.intel.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/pci/hda/patch_hdmi.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
    index f86b9b0a0607e..88d7b10375221 100644
    --- a/sound/pci/hda/patch_hdmi.c
    +++ b/sound/pci/hda/patch_hdmi.c
    @@ -642,11 +642,11 @@ static bool hdmi_infoframe_uptodate(struct hda_codec *codec, hda_nid_t pin_nid,
    u8 val;
    int i;

    + hdmi_set_dip_index(codec, pin_nid, 0x0, 0x0);
    if (snd_hda_codec_read(codec, pin_nid, 0, AC_VERB_GET_HDMI_DIP_XMIT, 0)
    != AC_DIPXMIT_BEST)
    return false;

    - hdmi_set_dip_index(codec, pin_nid, 0x0, 0x0);
    for (i = 0; i < size; i++) {
    val = snd_hda_codec_read(codec, pin_nid, 0,
    AC_VERB_GET_HDMI_DIP_DATA, 0);
    --
    2.27.0
    \
     
     \ /
      Last update: 2020-12-23 03:44    [W:4.184 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site