From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Herring Date: Tue, 5 Jul 2011 09:38:51 -0500 Subject: [U-Boot] [PATCH v2] arm: add __ilog2 function In-Reply-To: <1309275583-11763-4-git-send-email-robherring2@gmail.com> Message-ID: <1309876731-15966-1-git-send-email-robherring2@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de From: Rob Herring Add __ilog2 function for ARM. Needed for ahci.c Signed-off-by: Rob Herring Cc: Albert ARIBAUD --- Performance here is not critical, so I'm changing this to use the C version. v2 changes: - Change __inline__ to inline. - Use generic_fls function instead of clz asm so it works with ARMv4. arch/arm/include/asm/bitops.h | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/arch/arm/include/asm/bitops.h b/arch/arm/include/asm/bitops.h index 270f163..879e20e 100644 --- a/arch/arm/include/asm/bitops.h +++ b/arch/arm/include/asm/bitops.h @@ -106,6 +106,11 @@ static inline int test_bit(int nr, const void * addr) return ((unsigned char *) addr)[nr >> 3] & (1U << (nr & 7)); } +static inline int __ilog2(unsigned int x) +{ + return generic_fls(x) - 1; +} + /* * ffz = Find First Zero in word. Undefined if no zero exists, * so code should check against ~0UL first.. -- 1.7.4.1