Re: [PATCH] ALSA: Realtek: Early Forbid of runtime PM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 27 Aug 2020 07:20:43 +0200,
Harsha Priya wrote:
> 
> For Realtek codecs, pm_runtime_forbid() is called in the probe function 
> after the build_controls(). In a stress test, occasionally the runtime
> PM calls are invoked before controls are built. This causes the codec to be
> runtime suspended before probe completes. Because of this, not all
> controls are enumerated correctly and audio does not work until
> system is rebooted.
> 
> This patch calls pm_runtime_forbid() early to fix the issue.
> Multiple stress tests of 2000+ cycles has been done to test the fix.
> 
> Signed-off-by: Harsha Priya <harshapriya.n@xxxxxxxxx>
> Signed-off-by: Emmanuel Jillela <emmanuel.jillela@xxxxxxxxx>
> Reviewed-by: Kailang Yang <kailang@xxxxxxxxxxx>

The behavior shouldn't be specific to that model, also not to codec
vendors, but it's rather a generic problem, so it's no right place to
correct, I suppose.

Can we simply call pm_runtime_forbid() at creating a codec object like
below?


thanks,

Takashi

--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -1000,6 +1000,9 @@ int snd_hda_codec_device_new(struct hda_bus *bus, struct snd_card *card,
 	if (err < 0)
 		goto error;
 
+	/* PM runtime needs to be enabled later after binding codec */
+	pm_runtime_forbid(&codec->core.dev);
+
 	return 0;
 
  error:



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux