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