staging: rtl8192u: fix bitshift calculation in r819xU_phy.c
authorXenia Ragiadakou <burzalodowa@gmail.com>
Sat, 15 Jun 2013 04:29:01 +0000 (07:29 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 17 Jun 2013 22:45:43 +0000 (15:45 -0700)
This patch uses the ffs linux built-in routine in the
computation of the bitshift to take advantage of
architecture specific instructions that implement this
computation more efficiently.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8192u/r819xU_phy.c

index d66d88cc189eb20726314915b152e1a6deabbac5..70ab9cd0b29f14e92b54e406658b014522c2f9fb 100644 (file)
@@ -7,6 +7,8 @@
 #include "r819xU_firmware_img.h"
 
 #include "dot11d.h"
+#include <linux/bitops.h>
+
 static u32 RF_CHANNEL_TABLE_ZEBRA[] = {
        0,
        0x085c, //2412 1
@@ -45,11 +47,7 @@ static u32 RF_CHANNEL_TABLE_ZEBRA[] = {
 u32 rtl8192_CalculateBitShift(u32 dwBitMask)
 {
        u32 i;
-       for (i=0; i<=31; i++)
-       {
-               if (((dwBitMask>>i)&0x1) == 1)
-                       break;
-       }
+       i = ffs(dwBitMask) - 1;
        return i;
 }
 /******************************************************************************