[alsa-devel] [PATCH] ALSA: hda - Set SKL+ hda controller power at freeze() and thaw()

Takashi Iwai tiwai at suse.de
Fri Dec 18 09:51:01 CET 2015


On Fri, 18 Dec 2015 09:39:45 +0100,
Takashi Iwai wrote:
> 
> On Fri, 18 Dec 2015 06:29:18 +0100,
> Xiong Zhang wrote:
> > 
> > It takes three minutes to enter into hibernation on some OEM SKL
> > machines and we see many codec spurious response after thaw() opertion.
> > This is because HDA is still in D0 state after freeze() call and
> > pci_pm_freeze/pci_pm_freeze_noirq() don't set D3 hot in pci_bus driver.
> > It seems bios still access HDA when system enter into freeze state,
> > HDA will receive codec response interrupt immediately after thaw() call.
> > Because of this unexpected interrupt, HDA enter into a abnormal
> > state and slow down the system enter into hibernation.
> > 
> > In this patch, we put HDA into D3 hot state in azx_freeze_noirq() and
> > put HDA into D0 state in azx_thaw_noirq().
> > 
> > V2: Only apply this fix to SKL+
> >     Fix compile error when CONFIG_PM_SLEEP isn't defined
> > 
> > Signed-off-by: Xiong Zhang <xiong.y.zhang at intel.com>
> 
> Thanks, applied now with a few more fixes.  I moved azx_freeze_noirq()
> and azx_thaw_noirq() in another ifdef CONFIG_PM_SLEEP, as the place
> you added isn't only for CONFIG_PM_SLEEP and it may lead to compile
> warnings via randconfig.  Also, I added a comment as a brief
> explanation in the code.

Oh, also I added stable to Cc.


Takashi


More information about the Alsa-devel mailing list