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

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

 



 >
> > 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?
We tried this change and its working as expected. I believe this will address similar issues
across all codecs. Will send a patch with this fix.
> 
> 
> 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