[alsa-devel] [PATCH] ALSA: hda - Fix runtime PM

Takashi Iwai tiwai at suse.de
Thu May 24 20:17:49 CEST 2018


On Thu, 24 May 2018 19:01:07 +0200,
Lukas Wunner wrote:
> 
> Before commit 3b5b899ca67d ("ALSA: hda: Make use of core codec functions
> to sync power state"), hda_set_power_state() returned the response to
> the Get Power State verb, a 32-bit unsigned integer whose expected value
> is 0x233 after transitioning a codec to D3, and 0x0 after transitioning
> it to D0.
> 
> The response value is significant because hda_codec_runtime_suspend()
> does not clear the codec's bit in the codec_powered bitmask unless the
> AC_PWRST_CLK_STOP_OK bit (0x200) is set in the response value.  That in
> turn prevents the HDA controller from runtime suspending because
> azx_runtime_idle() checks that the codec_powered bitmask is zero.
> 
> Since commit 3b5b899ca67d, hda_set_power_state() only returns 0x0 or
> 0x1, thereby breaking runtime PM for any HDA controller.  That's because
> an inline function introduced by the commit returns a bool instead of a
> 32-bit unsigned int.  The change was likely erroneous and resulted from
> copying and pasting snd_hda_check_power_state(), which is immediately
> preceding the newly introduced inline function.  Fix it.
> 
> Link: https://bugs.freedesktop.org/show_bug.cgi?id=106597
> Fixes: 3b5b899ca67d ("ALSA: hda: Make use of core codec functions to sync power state")
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Cc: Abhijeet Kumar <abhijeet.kumar at intel.com>
> Reported-and-tested-by: Gunnar Krüger <taijian at posteo.de>
> Signed-off-by: Lukas Wunner <lukas at wunner.de>

Gah, that one was a silly mistake.
Applied now.  Thanks for spotting out!


Takashi


More information about the Alsa-devel mailing list