lkml.org 
[lkml]   [2020]   [Feb]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 150/191] ALSA: hda/hdmi - add retry logic to parse_intel_hdmi()
    Date
    From: Kai Vehmanen <kai.vehmanen@linux.intel.com>

    [ Upstream commit 2928fa0a97ebb9549cb877fdc99aed9b95438c3a ]

    The initial snd_hda_get_sub_node() can fail on certain
    devices (e.g. some Chromebook models using Intel GLK).
    The failure rate is very low, but as this is is part of
    the probe process, end-user impact is high.

    In observed cases, related hardware status registers have
    expected values, but the node query still fails. Retrying
    the node query does seem to help, so fix the problem by
    adding retry logic to the query. This does not impact
    non-Intel platforms.

    BugLink: https://github.com/thesofproject/linux/issues/1642
    Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
    Reviewed-by: Takashi Iwai <tiwai@suse.de>
    Link: https://lore.kernel.org/r/20200120160117.29130-4-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 | 7 +++++--
    1 file changed, 5 insertions(+), 2 deletions(-)

    diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
    index c827a2a89cc3d..c67fadd5aae53 100644
    --- a/sound/pci/hda/patch_hdmi.c
    +++ b/sound/pci/hda/patch_hdmi.c
    @@ -2604,9 +2604,12 @@ static int alloc_intel_hdmi(struct hda_codec *codec)
    /* parse and post-process for Intel codecs */
    static int parse_intel_hdmi(struct hda_codec *codec)
    {
    - int err;
    + int err, retries = 3;
    +
    + do {
    + err = hdmi_parse_codec(codec);
    + } while (err < 0 && retries--);

    - err = hdmi_parse_codec(codec);
    if (err < 0) {
    generic_spec_free(codec);
    return err;
    --
    2.20.1


    \
     
     \ /
      Last update: 2020-02-21 09:23    [W:4.027 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site