Re: [PATCH -next] ASoC: soc-component: using pm_runtime_resume_and_get instead of pm_runtime_get_sync

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

 



On Wed, Oct 19, 2022 at 08:59:58AM -0500, Pierre-Louis Bossart wrote:
> On 10/19/22 08:56, Maxime Ripard wrote:
> > On Thu, Sep 22, 2022 at 10:58:46PM +0800, Zhang Qilong wrote:
> >> Using the newest pm_runtime_resume_and_get is more appropriate
> >> for simplifing code here.
> >>
> >> Signed-off-by: Zhang Qilong <zhangqilong3@xxxxxxxxxx>
> >> ---
> >>  sound/soc/soc-component.c | 6 ++----
> >>  1 file changed, 2 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
> >> index e12f8244242b..659b9ade4158 100644
> >> --- a/sound/soc/soc-component.c
> >> +++ b/sound/soc/soc-component.c
> >> @@ -1213,11 +1213,9 @@ int snd_soc_pcm_component_pm_runtime_get(struct snd_soc_pcm_runtime *rtd,
> >>  	int i;
> >>  
> >>  	for_each_rtd_components(rtd, i, component) {
> >> -		int ret = pm_runtime_get_sync(component->dev);
> >> -		if (ret < 0 && ret != -EACCES) {
> >> -			pm_runtime_put_noidle(component->dev);
> >> +		int ret = pm_runtime_resume_and_get(component->dev);
> >> +		if (ret < 0 && ret != -EACCES)
> >>  			return soc_component_ret(component, ret);
> >> -		}
> >>  		/* mark stream if succeeded */
> >>  		soc_component_mark_push(component, stream, pm);
> > 
> > This creates an issue on the RaspberryPi4 on 6.1-rc1.
> > 
> > At boot time, we now have a bunch of:
> > [   35.536496] hdmi-audio-codec hdmi-audio-codec.1.auto: Runtime PM usage count underflow!
> > 
> > They were bisected back to that commit, and reverting it makes it go
> > away.
> > 
> > I think this is due to the fact that the function here used to call
> > pm_runtime_put_noidle() only if there was an error, and that error
> > wasn't EACCES. However, pm_runtime_resume_and_get() will call
> > pm_runtime_put_noidle() for any error.
> > 
> > Thus, if our __pm_runtime_resume() call return EACCES, we used to keep
> > the our reference but we will now drop it. So I guess we should just
> > revert it, possibly with a comment?
> 
> This is already reverted, see patch from Peter:
> 
> [PATCH] Revert "ASoC: soc-component: using pm_runtime_resume_and_get
> instead of pm_runtime_get_sync"

I missed it, thanks for the pointer

Maxime

Attachment: signature.asc
Description: PGP signature


[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