[PATCH AUTOSEL 5.6 12/38] ALSA: hda: Skip controller resume if not needed
Sasha Levin
sashal at kernel.org
Fri May 1 03:17:24 CEST 2020
On Thu, Apr 30, 2020 at 11:36:05PM +0100, Roy Spliet wrote:
>(Minus "Linux kernel", that list has enough volume)
>
>Op 24-04-2020 om 13:44 schreef Takashi Iwai:
>>On Fri, 24 Apr 2020 14:22:10 +0200,
>>Sasha Levin wrote:
>>>
>>>From: Takashi Iwai <tiwai at suse.de>
>>>
>>>[ Upstream commit c4c8dd6ef807663e42a5f04ea77cd62029eb99fa ]
>>>
>>>The HD-audio controller does system-suspend and resume operations by
>>>directly calling its helpers __azx_runtime_suspend() and
>>>__azx_runtime_resume(). However, in general, we don't have to resume
>>>always the device fully at the system resume; typically, if a device
>>>has been runtime-suspended, we can leave it to runtime resume.
>>>
>>>Usually for achieving this, the driver would call
>>>pm_runtime_force_suspend() and pm_runtime_force_resume() pairs in the
>>>system suspend and resume ops. Unfortunately, this doesn't work for
>>>the resume path in our case. For handling the jack detection at the
>>>system resume, a child codec device may need the (literally) forcibly
>>>resume even if it's been runtime-suspended, and for that, the
>>>controller device must be also resumed even if it's been suspended.
>>>
>>>This patch is an attempt to improve the situation. It replaces the
>>>direct __azx_runtime_suspend()/_resume() calls with with
>>>pm_runtime_force_suspend() and pm_runtime_force_resume() with a slight
>>>trick as we've done for the codec side. More exactly:
>>>
>>>- azx_has_pm_runtime() check is dropped from azx_runtime_suspend() and
>>> azx_runtime_resume(), so that it can be properly executed from the
>>> system-suspend/resume path
>>>
>>>- The WAKEEN handling depends on the card's power state now; it's set
>>> and cleared only for the runtime-suspend
>>>
>>>- azx_resume() checks whether any codec may need the forcible resume
>>> beforehand. If the forcible resume is required, it does temporary
>>> PM refcount up/down for actually triggering the runtime resume.
>>>
>>>- A new helper function, hda_codec_need_resume(), is introduced for
>>> checking whether the codec needs a forcible runtime-resume, and the
>>> existing code is rewritten with that.
>>>
>>>BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=207043
>>>Link: https://lore.kernel.org/r/20200413082034.25166-6-tiwai@suse.de
>>>Signed-off-by: Takashi Iwai <tiwai at suse.de>
>>>Signed-off-by: Sasha Levin <sashal at kernel.org>
>>
>>This commit is known to cause a regression, and the fix patch is
>>included in today's pull request. If we apply this, better to wait
>>for the next batch including its fix.
>
>These six patches, plus Takashi's fix on top of them, do not seem to
>have made it to 5.6.7 or 5.6.8 in the end. Is there a plan to include
AUTOSEL stuff take a while to hit the stable trees, if you want patches
in quicker they should be tagged for stable...
>them in 5.6.9?
What are the commit ids?
--
Thanks,
Sasha
More information about the Alsa-devel
mailing list