Skip to content

Commit

Permalink
staging: brcm80211: make use of fls bit operation in wlc_phy_compute_dB
Browse files Browse the repository at this point in the history
wlc_phy_compute_dB converts absolute power value to dB implementing
a fixed point calculation for 10*log10(x). It does this by determining
the most significant bit for value x. This can be done using the fls()
bit operation, which has arch specific and possibly more efficient
implementation.

Cc: devel@linuxdriverproject.org
Cc: linux-wireless@vger.kernel.org
Reviewed-by: Roland Vossen <rvossen@broadcoom.com>
Reviewed-by: Henry Ptasinski <henryp@broadcom.com>
Reviewed-by: Brett Rudley <brudley@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Arend van Spriel authored and Greg Kroah-Hartman committed May 10, 2011
1 parent dc1e961 commit b8fbc39
Showing 1 changed file with 8 additions and 11 deletions.
19 changes: 8 additions & 11 deletions drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,12 @@

#include <linux/kernel.h>
#include <linux/string.h>
#include <bcmdefs.h>
#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/pci.h>

#include <bcmdefs.h>
#include <bcmnvram.h>
#include <sbchipc.h>
#include <bcmdevs.h>
Expand Down Expand Up @@ -2746,20 +2748,15 @@ s8 lcnphy_gain_index_offset_for_pkt_rssi[] = {

void wlc_phy_compute_dB(u32 *cmplx_pwr, s8 *p_cmplx_pwr_dB, u8 core)
{
u8 shift_ct, lsb, msb, secondmsb, i;
u8 msb, secondmsb, i;
u32 tmp;

for (i = 0; i < core; i++) {
secondmsb = 0;
tmp = cmplx_pwr[i];
shift_ct = msb = secondmsb = 0;
while (tmp != 0) {
tmp = tmp >> 1;
shift_ct++;
lsb = (u8) (tmp & 1);
if (lsb == 1)
msb = shift_ct;
}
secondmsb = (u8) ((cmplx_pwr[i] >> (msb - 1)) & 1);
msb = fls(tmp);
if (msb)
secondmsb = (u8) ((tmp >> (--msb - 1)) & 1);
p_cmplx_pwr_dB[i] = (s8) (3 * msb + 2 * secondmsb);
}
}
Expand Down

0 comments on commit b8fbc39

Please sign in to comment.