ALSA: hda: Workaround for spurious wakeups on some Intel platforms
authorTakashi Iwai <tiwai@suse.de>
Mon, 27 Jul 2020 16:44:43 +0000 (18:44 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Aug 2020 07:58:35 +0000 (09:58 +0200)
commita18b0253326834c1036ddba4e6d4db0e6c790e82
tree6318978fbd8632f94b203abfe12c96e4e25cafa9
parentb97627fdfedc1d67eef204a6a30284919a756857
ALSA: hda: Workaround for spurious wakeups on some Intel platforms

commit a6630529aecb5a3e84370c376ed658e892e6261e upstream.

We've received a regression report on Intel HD-audio controller that
wakes up immediately after S3 suspend.  The bisection leads to the
commit c4c8dd6ef807 ("ALSA: hda: Skip controller resume if not
needed").  This commit replaces the system-suspend to use
pm_runtime_force_suspend() instead of the direct call of
__azx_runtime_suspend().  However, by some really mysterious reason,
pm_runtime_force_suspend() causes a spurious wakeup (although it calls
the same __azx_runtime_suspend() internally).

As an ugly workaround for now, revert the behavior to call
__azx_runtime_suspend() and __azx_runtime_resume() for those old Intel
platforms that may exhibit such a problem, while keeping the new
standard pm_runtime_force_suspend() and pm_runtime_force_resume()
pair for the remaining chips.

Fixes: c4c8dd6ef807 ("ALSA: hda: Skip controller resume if not needed")
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208649
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20200727164443.4233-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/pci/hda/hda_controller.h
sound/pci/hda/hda_intel.c