if modprobe(8) complains about unresolved symbols in schedule_work, you need to run
touch include/linux/workqueue.h
between ./configure and make(1) on alsa-driver.
You probably want to set up your own .rpmmacros file first, as per RPMNotes. Remember to specify the target architecture and the card (see the ALSA soundcard matrix to find yours) to compile for, eg.
rpmbuild --rebuild alsa-driver.x.y.z-p.src.rpm --define 'cards als4000' --target $arch
where $arch might be athlon, f.ex. The RPMs will end up in RPMS/$arch/, ie f.ex in RPMS/athlon/. As with all source builds, you will need to recompile the SRPM if you upgrade your Kernel; you only need to install the kernel-module-alsa RPM, however.
Now open the alsa-driver.x.y.z-p.spec in the SPECS/ directory, locate the %configure and make commands and the following command between them.
touch include/linux/workqueue.h
You can now install the RPMs built in the RPMS/$arch/ directory.
3 pages link to AlsaNotes:
lib/main.php:944: Notice: PageInfo: Cannot find action page