Re: [PATCH v2] ALSA: hda: Balance runtime/system PM if direct-complete is disabled

From: Takashi Iwai
Date: Tue Jan 19 2021 - 10:49:36 EST


On Tue, 19 Jan 2021 16:21:43 +0100,
Kai-Heng Feng wrote:
>
> After hibernation, HDA controller can't be runtime-suspended after
> commit 215a22ed31a1 ("ALSA: hda: Refactor codjc PM to use
> direct-complete optimization"), which enables direct-complete for HDA
> codec.
>
> The HDA codec driver didn't expect direct-complete will be disabled
> after it returns a positive value from prepare() callback. However,
> there are some places that PM core can disable direct-complete. For
> instance, system hibernation or when codec has subordinates like LEDs.
>
> So if the codec is prepared for direct-complete but PM core still calls
> codec's suspend or freeze callback, partially revert the commit and take
> the original approach, which uses pm_runtime_force_*() helpers to
> ensure PM refcount are balanced. Meanwhile, still keep prepare() and
> complete() callbacks to enable direct-complete and request a resume for
> jack detection, respectively.
>
> Reported-by: Kenneth R. Crudup <kenny@xxxxxxxxx>
> Fixes: 215a22ed31a1 ("ALSA: hda: Refactor codec PM to use direct-complete optimization")
> Signed-off-by: Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx>
> ---
> v2:
> - Use pm_runtime_force_*() helpers to avoid suspend/resume ping pong.

Thanks, applied now.


Takashi