]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
staging: brcm80211: use int_sqrt kernel function iso driver implementation
authorArend van Spriel <arend@broadcom.com>
Mon, 9 May 2011 14:33:25 +0000 (16:33 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 10 May 2011 18:12:29 +0000 (11:12 -0700)
The driver code had its own implementation for fixed point square root
calculation, but such a function is already available in the linux
kernel so the driver implementation has been removed using the kernel
function.

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>
drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_cmn.c
drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_int.h
drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_lcn.c
drivers/staging/brcm80211/brcmsmac/phy/wlc_phy_n.c

index 8b86e37c3613cc427385ebd1bddee6f1631224d8..7837c73023fc21e85faaa4da2abcdea167274e0c 100644 (file)
@@ -3117,25 +3117,6 @@ u8 wlc_phy_nbits(s32 value)
        return nbits;
 }
 
-u32 wlc_phy_sqrt_int(u32 value)
-{
-       u32 root = 0, shift = 0;
-
-       for (shift = 0; shift < 32; shift += 2) {
-               if (((0x40000000 >> shift) + root) <= value) {
-                       value -= ((0x40000000 >> shift) + root);
-                       root = (root >> 1) | (0x40000000 >> shift);
-               } else {
-                       root = root >> 1;
-               }
-       }
-
-       if (root < value)
-               ++root;
-
-       return root;
-}
-
 void wlc_phy_stf_chain_init(wlc_phy_t *pih, u8 txchain, u8 rxchain)
 {
        phy_info_t *pi = (phy_info_t *) pih;
index 77c6106f63f8a1894246b041e3cc90dac7b5568f..10cbf520474fcf7e918798d27168ceb835ad28b3 100644 (file)
@@ -1025,7 +1025,6 @@ extern void wlc_phy_txpower_update_shm(phy_info_t *pi);
 
 extern void wlc_phy_cordic(fixed theta, cs32 *val);
 extern u8 wlc_phy_nbits(s32 value);
-extern u32 wlc_phy_sqrt_int(u32 value);
 extern void wlc_phy_compute_dB(u32 *cmplx_pwr, s8 *p_dB, u8 core);
 
 extern uint wlc_phy_init_radio_regs_allbands(phy_info_t *pi,
index a28633c97699f7a78310115afd97023b5cb36111..b8864c5b7a199cb11d4f4d548da37c127005b57c 100644 (file)
@@ -3244,7 +3244,7 @@ static bool wlc_lcnphy_calc_rx_iq_comp(phy_info_t *pi, u16 num_samps)
        }
        b /= temp;
        b -= a * a;
-       b = (s32) wlc_phy_sqrt_int((u32) b);
+       b = (s32) int_sqrt((unsigned long) b);
        b -= (1 << 10);
        a0_new = (u16) (a & 0x3ff);
        b0_new = (u16) (b & 0x3ff);
index 56e0ba160f46c656979b9e4b02c83aa6f266fbcc..af247f532a4c94cf7423ab2e968724829194897a 100644 (file)
@@ -24608,7 +24608,7 @@ static void wlc_phy_calc_rx_iq_comp_nphy(phy_info_t *pi, u8 core_mask)
                }
                b /= temp;
                b -= a * a;
-               b = (s32) wlc_phy_sqrt_int((u32) b);
+               b = (s32) int_sqrt((unsigned long) b);
                b -= (1 << 10);
 
                if ((curr_core == PHY_CORE_0) && (core_mask & 0x1)) {