[alsa-devel] [PATCH v2 3/3] ALSA: hda/hdmi - add retry logic to parse_intel_hdmi()

Takashi Iwai tiwai at suse.de
Mon Jan 20 17:49:12 CET 2020


On Mon, 20 Jan 2020 17:01:17 +0100,
Kai Vehmanen wrote:
> 
> 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 at linux.intel.com>
> Reviewed-by: Takashi Iwai <tiwai at suse.de>

It seems that this felt out of Mark's hands, so I picked up now to my
tree, as this doesn't seem depending on other changes.

Now applied to for-next branch.


thanks,

Takashi

> ---
>  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 630b1f5c276d..a4b75a9dfe3b 100644
> --- a/sound/pci/hda/patch_hdmi.c
> +++ b/sound/pci/hda/patch_hdmi.c
> @@ -2830,9 +2830,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.17.1
> 


More information about the Alsa-devel mailing list