diff mbox series

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

Message ID 20200120160117.29130-4-kai.vehmanen@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series SOF: Fix HDMI probe errors on GLK devices | expand

Commit Message

Kai Vehmanen Jan. 20, 2020, 4:01 p.m. UTC
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>
---
 sound/pci/hda/patch_hdmi.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Takashi Iwai Jan. 20, 2020, 4:49 p.m. UTC | #1
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@linux.intel.com>
> Reviewed-by: Takashi Iwai <tiwai@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
>
Mark Brown Jan. 20, 2020, 5:17 p.m. UTC | #2
On Mon, Jan 20, 2020 at 05:49:12PM +0100, Takashi Iwai wrote:

> 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.

He only sent it on Thursday and Pierre hasn't reviewed any of this stuff
yet.
Kai Vehmanen Jan. 20, 2020, 5:43 p.m. UTC | #3
Hi,

On Mon, 20 Jan 2020, Mark Brown wrote:

> On Mon, Jan 20, 2020 at 05:49:12PM +0100, Takashi Iwai wrote:
> 
> > 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.
> 
> He only sent it on Thursday and Pierre hasn't reviewed any of this stuff
> yet.

sorry for the confusion guys. I checked with Pierre and he preferred for 
this to be picked up by Mark directly. I noticed some rebase needed when 
applying on top of Mark's, so thus I resent the patches as v2.

We did have initial review at (although no approvals):
https://github.com/thesofproject/linux/pull/1713

Maybe in future, better not to combine ASoC/SOF and generic HDA patches in 
same series, but rather send in pieces via the proper subtrees...?

Br, Kai
Mark Brown Jan. 20, 2020, 5:55 p.m. UTC | #4
On Mon, Jan 20, 2020 at 07:43:31PM +0200, Kai Vehmanen wrote:

> Maybe in future, better not to combine ASoC/SOF and generic HDA patches in 
> same series, but rather send in pieces via the proper subtrees...?

In general if there's no dependencies between patches it's best to just
send them separately rather than as a series (even if they're all for
the same subsystem).  It stops unrelated things getting tied up in
review needlessly.
Takashi Iwai Jan. 20, 2020, 6:10 p.m. UTC | #5
On Mon, 20 Jan 2020 18:17:18 +0100,
Mark Brown wrote:
> 
> On Mon, Jan 20, 2020 at 05:49:12PM +0100, Takashi Iwai wrote:
> 
> > 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.
> 
> He only sent it on Thursday and Pierre hasn't reviewed any of this stuff
> yet.

Hm, indeed.  Somehow I thought it were earlier.
Unfortunately the incoming mails to my inbox have been sometimes
delayed and shuffled in the last few weeks due to a problem in our
server, so I missed that it's still a series.

In anyway, this fix is really independent from others and has little
to do with ASoC itself, so I keep this picked through my tree.


thanks,

Takashi
Mark Brown Jan. 20, 2020, 6:37 p.m. UTC | #6
On Mon, Jan 20, 2020 at 07:10:33PM +0100, Takashi Iwai wrote:

> In anyway, this fix is really independent from others and has little
> to do with ASoC itself, so I keep this picked through my tree.

Yeah, I don't think there's any problem with taking it separately.
Pierre-Louis Bossart Jan. 27, 2020, 3:38 p.m. UTC | #7
On 1/20/20 11:43 AM, Kai Vehmanen wrote:
> Hi,
> 
> On Mon, 20 Jan 2020, Mark Brown wrote:
> 
>> On Mon, Jan 20, 2020 at 05:49:12PM +0100, Takashi Iwai wrote:
>>
>>> 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.
>>
>> He only sent it on Thursday and Pierre hasn't reviewed any of this stuff
>> yet.
> 
> sorry for the confusion guys. I checked with Pierre and he preferred for
> this to be picked up by Mark directly. I noticed some rebase needed when
> applying on top of Mark's, so thus I resent the patches as v2.
> 
> We did have initial review at (although no approvals):
> https://github.com/thesofproject/linux/pull/1713
> 
> Maybe in future, better not to combine ASoC/SOF and generic HDA patches in
> same series, but rather send in pieces via the proper subtrees...?

Sorry about the confusion, I thought Takashi took all of the 3 patches, 
so didn't chime in, but only this one was applied while the 2 others are 
still in the review queue, so for the series

Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
diff mbox series

Patch

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;