summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Bogendoerfer <tsbogend@alpha.franken.de>2008-05-04 00:25:02 +0200
committerRalf Baechle <ralf@linux-mips.org>2008-05-12 16:46:55 +0100
commitfcd84f2fca49166dab2dba259eca6e633585763f (patch)
treece9eb07612fbde779ad80a21ed58b5b300e09f70
parent7ff83f21d23d17b63bbb984fee5d12aa5a8066b3 (diff)
downloadtalos-obmc-linux-fcd84f2fca49166dab2dba259eca6e633585763f.tar.gz
talos-obmc-linux-fcd84f2fca49166dab2dba259eca6e633585763f.zip
[MIPS] Fix __fls for non-MIPS32/MIPS64 cpus
Only MIPS32 and MIPS64 CPUs implement clz/dclz. Therefore don't export __ilog2() for non MIPS32/MIPS64 cpus and use generic __fls bitop code for these cpus. Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r--include/asm-mips/bitops.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/include/asm-mips/bitops.h b/include/asm-mips/bitops.h
index c2bd126c3b4e..5e1f590a24a1 100644
--- a/include/asm-mips/bitops.h
+++ b/include/asm-mips/bitops.h
@@ -558,6 +558,8 @@ static inline void __clear_bit_unlock(unsigned long nr, volatile unsigned long *
__clear_bit(nr, addr);
}
+#if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64)
+
/*
* Return the bit position (0..63) of the most significant 1 bit in a word
* Returns -1 if no 1 bit exists
@@ -596,8 +598,6 @@ static inline unsigned long __fls(unsigned long x)
return __ilog2(x);
}
-#if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64)
-
/*
* __ffs - find first bit in word.
* @word: The word to search
@@ -654,6 +654,7 @@ static inline int ffs(int word)
#else
#include <asm-generic/bitops/__ffs.h>
+#include <asm-generic/bitops/__fls.h>
#include <asm-generic/bitops/ffs.h>
#include <asm-generic/bitops/fls.h>
#include <asm-generic/bitops/fls64.h>
OpenPOWER on IntegriCloud