From alsa documentation
reloading modules across APM suspend-and-resume
During suspension many peripherals are switched off; on resuming the
machine these peripherals need to be re-initialized. Many ALSA
drivers do this properly but some still do not.

If this problem affects you and if your ALSA drivers are built as
loadable modules and your kernel supports module unloading then you
can work around the problem by unloading the driver before suspending
and loading it again after resuming. This will be done for you
automatically if you add the name of the problematic sound card driver
module to the variable force_unload_modules_before_suspend variable in
/etc/default/alsa. E.g., if your CS46XX and AZX cards don't work
properly after resuming from APM suspend, add the names of their
driver modules to the list:

force_unload_modules_before_suspend="snd-cs46xx snd-azx"

restoring sound volumes across APM suspend-and-resume
alsa-base provides an APM script in /etc/apm/scripts.d/alsa to
automatically store/restore sound volumes during APM suspension.
Since this option relies on alsactl, please install the recommended
alsa-utils package.

unloading modules
If you want to unload ALSA driver modules then you will have to stop
all applications that are using ALSA device files. You can do both
in one step by running:

alsa force-unload