The sis7019 driver uses __ffs(), which first became available in kernel 2.5.2.6. This adds that compatibility function for x86 to adriver.h, and adds a more useful error message for other platforms that try to use it.
Signed-off-by: David Dillow dave@thedillows.org --- This is against the alsa-driver hg repo. It builds against 2.6.23, but I've not tested against earlier versions.
pci/sis7019.c | 2 ++ include/adriver.h | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+)
diff -r 9eda190b55c3 include/adriver.h --- a/include/adriver.h Tue Dec 04 12:46:46 2007 +0100 +++ b/include/adriver.h Thu Dec 13 22:50:16 2007 -0500 @@ -1445,4 +1445,22 @@ static inline unsigned char snd_pci_revi #endif #endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 3) +#if defined(__i386__) +static inline unsigned long __ffs(unsigned long word) +{ + __asm__("bsfl %1,%0" + :"=r" (word) + :"rm" (word)); + return word; +} +#else +static inline unsigned long __ffs(unsigned long word) +{ + __asm__("need_asm_for_your_arch_in_adriver.h"); + return word; +} +#endif +#endif + #endif /* __SOUND_LOCAL_DRIVER_H */ diff -r 9eda190b55c3 pci/sis7019.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pci/sis7019.c Thu Dec 13 22:50:16 2007 -0500 @@ -0,0 +1,2 @@ +#include "../alsa-kernel/pci/sis7019.c" +EXPORT_NO_SYMBOLS;