On Mon, 2007-12-10 at 08:53 +0100, Clemens Ladisch wrote:
Dave Dillow wrote:
The sis7019 driver uses __ffs(), which is available in 2.6 kernels, but not in most earlier ones. This patches the driver to use a local version assembly version, as the hardware is SiS 55x only (i486/Pentium-ish).
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++static inline unsigned long sis_ffs(unsigned long word) ++{ ++ __asm__("bsfl %1,%0" ++ :"=r" (word) ++ :"rm" (word)); ++ return word; ++} ++#endif
This should go into alsa-driver/include/adriver.h.
I'm not sure -- there's no other inline assembly there, and if I provide an x86 _ffs() fallback, then it'll break on other architectures...
I suppose I could put a generic implementation there, but I'd rather take advantage of the hardware I'm on -- which will always be x86 for this driver.
Dave