]> git.baikalelectronics.ru Git - kernel.git/commit
ALSA: hda - Set codec to D3 forcibly even if not used
authorTakashi Iwai <tiwai@suse.de>
Wed, 7 Mar 2012 09:58:39 +0000 (10:58 +0100)
committerTakashi Iwai <tiwai@suse.de>
Wed, 7 Mar 2012 10:52:50 +0000 (11:52 +0100)
commitb169d4925a1ef44865b1c46782df497bddbb415f
treedc7d18889a15f5dd835fa466ba95cfd9ce0a3c6c
parent73a38f09805c857c97558de5e3f6eb09cdebeae0
ALSA: hda - Set codec to D3 forcibly even if not used

We've seen a problem with a pop-noise at suspend/resume on a HP
machine with ALC269, and it turned out to be an issue that the
controller going to D3 while the codec is unused.

When the device is once suspended and resumed and kept unused, the
driver doesn't initialize the codecs.  Instead, the codec chips are
set up dynamically at the first usage.  Now, suppose the device going
to suspend again before the codec is set up.  The controller is turned
off to D3 while the codec chips are untouched.  This caused a pop
noise because the codec chip might have been turned on implicitly by
the hardware.

As a workaround, the codec chip needs to be set to D3 when going to
suspend no matter whether it was used or not.  Also, for making it
happening, the controller has to be always set up in the resume path.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_codec.c
sound/pci/hda/hda_intel.c