Commit dc1e9616 authored by Arend van Spriel's avatar Arend van Spriel Committed by Greg Kroah-Hartman
Browse files

staging: brcm80211: use int_sqrt kernel function iso driver implementation



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: default avatarRoland Vossen <rvossen@broadcoom.com>
Reviewed-by: default avatarHenry Ptasinski <henryp@broadcom.com>
Reviewed-by: default avatarBrett Rudley <brudley@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 83dcec09
Loading
Loading
Loading
Loading
+0 −19
Original line number Diff line number Diff line
@@ -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;
+0 −1
Original line number Diff line number Diff line
@@ -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,
+1 −1
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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)) {