Bug 12711

Summary: [git bisect] 2.6.29 regression: snd_hda_intel suspend bug
Product: Drivers Reporter: Alexandre Rostovtsev (tetromino)
Component: Sound(ALSA)Assignee: Rafael J. Wysocki (rjw)
Severity: normal CC: rjw, tiwai
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.29-rc5 Tree: Mainline
Regression: Yes
Bug Depends on:    
Bug Blocks: 7216, 12398    
Attachments: Patch to revert 32e176c14d7a425b681ef003c9061001ddb7fc7b
lspci -vvvv

Description Alexandre Rostovtsev 2009-02-15 09:30:19 UTC
Latest working kernel version: >2.6.28
Earliest failing kernel version: <2.6.29-rc4
Distribution: Gentoo
Hardware Environment: Lenovo ThinPad SL300, GM45, Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
Problem Description:
After resuming from suspend to RAM, there is no sound. Processes trying to play sounds simply freeze. Running "aplay error.wav" in the console (with no other processes relevant to sound running) yields the following error messages:

[ 1059.062824] __ratelimit: 567 callbacks suppressed
[ 1059.062832] ALSA sound/pci/hda/hda_intel.c:688: hda-intel: send_cmd timeout: 
IRS=0xffff, val=0x1f000a
[ 1059.062982] ALSA sound/pci/hda/hda_intel.c:688: hda-intel: send_cmd timeout: 
IRS=0xffff, val=0x1c70600
[ 1059.063132] ALSA sound/pci/hda/hda_intel.c:688: hda-intel: send_cmd timeout: 
IRS=0xffff, val=0x1070650
[ 1059.064539] ALSA sound/pci/hda/hda_intel.c:688: hda-intel: send_cmd timeout: 
IRS=0xffff, val=0x1020031
[ 1063.316067] ALSA sound/pci/hda/hda_intel.c:688: hda-intel: send_cmd timeout: 
IRS=0xffff, val=0x1070600

Steps to reproduce:
(resume from suspend)
aplay some_sound_file.wav

After running git-bisect, I have found the commit that causes this bug on my hardware. It is:

32e176c14d7a425b681ef003c9061001ddb7fc7b is first bad commit
commit 32e176c14d7a425b681ef003c9061001ddb7fc7b
Author: Rafael J. Wysocki <rjw@sisk.pl>
Date:   Sat Dec 6 15:09:08 2008 +0100

    Sound: hda - Restore PCI configuration space with interrupts off

    Move the restoration of the standard PCI configuration registers
    in the snd_hda_intel driver to a ->resume_early() callback executed
    with interrupts disabled, since doing that with interrupts enabled
    may lead to problems in some cases.

    This patch addresses the regression from 2.6.26 tracked as
    http://bugzilla.kernel.org/show_bug.cgi?id=12121 .

    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>

:040000 040000 f085132f23cffddd5aaed52d20c2d4081f74cdad 122446d572ef3245d1879202
0dd73a798b52c9fe M      sound

Reverting that patch makes sound work again after suspend on 2.6.29-rc5
Comment 1 Alexandre Rostovtsev 2009-02-15 09:44:39 UTC
Created attachment 20253 [details]
Patch to revert 32e176c14d7a425b681ef003c9061001ddb7fc7b

Reverting 32e176c14d7a425b681ef003c9061001ddb7fc7b fixes the regression and makes sound work again after resuming from suspend. (Tested on 2.6.29-rc5)
Comment 2 Alexandre Rostovtsev 2009-02-15 09:46:16 UTC
Created attachment 20254 [details]
lspci -vvvv
Comment 3 Rafael J. Wysocki 2009-02-15 12:48:46 UTC
First-Bad-Commit : 32e176c14d7a425b681ef003c9061001ddb7fc7b

Well, I think we'll have to revert this commit.

Takashi, could you take care of this, please?
Comment 4 Takashi Iwai 2009-02-16 01:39:07 UTC
OK, reverted on sound git tree now.
Will queue up for the next pull request.