In Slackware 12 the default kernel is vmlinuz-huge-smp-2.6.21.5-smp, which works well except it doesn't have a module built in that's required for ACPI sleep. I won't explain why cause honestly I don't understand myself - basically the reason is the 'smp' in that kernel.
If you only have one single core processor, this is easy to fix. The process is very similar to updating the kernel from 2.4 to 2.6 in previous Slackware versions.
Go into /boot and, as root, do the following sequence of commands:
ln -sf vmlinuz-generic-2.6.21.5 vmlinuz ln -sf config-generic-2.6.21.5 config ln -sf System.map-generic-2.6.21.5 System.map mkinitrd -c -k 2.6.21.5 -m reiserfs
System.map-huge-2.6.21.5 instead of vmlinuz-generic-2.6.21.5 if you like, and then you won't need to do the mkinitrd part./etc/lilo.conf and add the line initrd = /boot/initrd.gz to your boot settings, so it looks like this:image = /boot/vmlinuz initrd = /boot/initrd.gz root = /dev/hda1 label = Slackware read-only # Partitions should be mounted read-only for checking append="acpi_sleep=s3_bios"
rmmod uhci_hcd when going to sleep, you don't need to echo 1 > /proc/acpi/sleep when closing the lid, and the sound works out of the box.