Here is the fix: Create a file /etc/pm/sleep.d/49sound with the following script:
function kill_sound_apps() {
pidsnd=$(lsof | grep /dev/snd | awk '{ print $2 }')
pidmixer=$(lsof | grep /dev/mixer | awk '{ print $2 }')
piddsp=$(lsof | grep /dev/dsp | awk '{ print $2 }')
kill $pidsnd $pidmixer $piddsp
}
case "$1" in
hibernate|suspend)
kill_sound_apps
echo `date` shut down sound for pm
;;
thaw|resume)
modprobe -r snd_hda_intel
modprobe snd_hda_intel
echo `date` starting sound coming out of pm
;;
*)
;;
esac
exit $?
chmod the file as root 'chmod 755 /etc/pm/sleep.d/49sound'.
On shutdown, all sounds servers are stopped. On startup, the sound module is unloaded and loaded again. I'm not sure why this script is not in the distro when the snd_hda_intel module is used.