[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

alsa sound breaks with suspend



Hi,

I wonder if anyone has any ideas about this minor annoyance:

System:  Thinkpad X31 with Intel sound:
0000:00:1f.6 Modem: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)

2.6.8.1 from kernel.org, alsa drivers built as modules:
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_MPU401_UART=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_INTEL8X0=m

Using APM, no ACPI:
# Power management options (ACPI, APM)
# APM (Advanced Power Management) BIOS Support
CONFIG_APM=y
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
# CONFIG_APM_DO_ENABLE is not set
# CONFIG_APM_CPU_IDLE is not set
# CONFIG_APM_DISPLAY_BLANK is not set
# CONFIG_APM_RTC_IS_GMT is not set
CONFIG_APM_ALLOW_INTS=y
# CONFIG_APM_REAL_MODE_POWER_OFF is not set

Note: The behavior described below is the same whether ALLOW_INTS is on or off.

With 2.6.7 I could suspend and resume and the alsa drivers would stay functional. As of 2.6.8.1, on resume the Master and PCM controls resume at 0% volume and muted. I can get around that for now with an apm script:
#!/bin/sh

AMIXER=/usr/bin/amixer
[ -x "${AMIXER}" ] || exit 0

case "${1},${2}" in
(resume,suspend)
    ${AMIXER} # kick the sound drivers
    /bin/sleep 1
    /usr/bin/logger before
    ${AMIXER} set Master,0 80%,80% unmute
    ${AMIXER} set PCM,0 80%,80% unmute
    /usr/bin/logger after
    ;;
esac

exit 0

Note that without the first amixer call to "kick" the sound drivers, the "before" log would happen before the drivers seem to "wake up": Aug 21 15:57:00 0x19 kernel: intel8x0_measure_ac97_clock: measured 49493 usecs
Aug 21 15:57:00 0x19 kernel: intel8x0: clocking to 48000

With the extra kick everything works. I was wondering if anyone has any idea on how this can be fixed more cleanly. A quick look with modinfo didn't show any obvious parameters that may affect [A]PM behavior.

D.



Reply to: