[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