diff options
author | 2021-01-19 23:21:43 +0800 | |
---|---|---|
committer | 2021-01-19 16:42:39 +0100 | |
commit | 2b73649cee65b8e33c75c66348cb1bfe0ff9d766 (patch) | |
tree | 3209fade0d94351251037eaaf98e6fd2e35d8574 /tools/perf/scripts/python/export-to-postgresql.py | |
parent | Merge tag 'asoc-fix-v5.11-rc4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus (diff) | |
download | wireguard-linux-2b73649cee65b8e33c75c66348cb1bfe0ff9d766.tar.xz wireguard-linux-2b73649cee65b8e33c75c66348cb1bfe0ff9d766.zip |
ALSA: hda: Balance runtime/system PM if direct-complete is disabled
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@panix.com>
Fixes: 215a22ed31a1 ("ALSA: hda: Refactor codec PM to use direct-complete optimization")
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Link: https://lore.kernel.org/r/20210119152145.346558-1-kai.heng.feng@canonical.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions