Skip to content

Commit 2928fa0

Browse files
kv2019itiwai
authored andcommitted
ALSA: hda/hdmi - add retry logic to parse_intel_hdmi()
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: thesofproject#1642 Signed-off-by: Kai Vehmanen <[email protected]> Reviewed-by: Takashi Iwai <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Takashi Iwai <[email protected]>
1 parent c31427d commit 2928fa0

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

sound/pci/hda/patch_hdmi.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2833,9 +2833,12 @@ static int alloc_intel_hdmi(struct hda_codec *codec)
28332833
/* parse and post-process for Intel codecs */
28342834
static int parse_intel_hdmi(struct hda_codec *codec)
28352835
{
2836-
int err;
2836+
int err, retries = 3;
2837+
2838+
do {
2839+
err = hdmi_parse_codec(codec);
2840+
} while (err < 0 && retries--);
28372841

2838-
err = hdmi_parse_codec(codec);
28392842
if (err < 0) {
28402843
generic_spec_free(codec);
28412844
return err;

0 commit comments

Comments
 (0)