
Hi Rob,
On Tuesday 28 June 2011 09:09 PM, Rob Herring wrote:
From: Rob Herringrob.herring@calxeda.com
Add __ilog2 function for ARM. Needed for ahci.c
Signed-off-by: Rob Herringrob.herring@calxeda.com Cc: Albert ARIBAUDalbert.aribaud@free.fr
arch/arm/include/asm/bitops.h | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/arch/arm/include/asm/bitops.h b/arch/arm/include/asm/bitops.h index 270f163..0420182 100644 --- a/arch/arm/include/asm/bitops.h +++ b/arch/arm/include/asm/bitops.h @@ -106,6 +106,15 @@ static inline int test_bit(int nr, const void * addr) return ((unsigned char *) addr)[nr>> 3]& (1U<< (nr& 7)); }
+extern __inline__ int __ilog2(unsigned int x) +{
- int ret;
- asm("clz\t%0, %1" : "=r" (ret) : "r" (x));
I tried doing the same sometime back for the same need. I had to abandon it because CLZ seems to be added only in ARMv5. And at least one ARMv7 SoC uses -march=armv4 while building.
best regards, Aneesh