aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukáš Turek <8an@praha12.net>2009-11-19 17:02:02 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-11-23 17:05:29 -0500
commitf1cf2dbd0f798b71b1590e7aca6647f2caef1649 (patch)
treeb5b6a0e0242818329b4914352df7a868e58cd235
parent98e3ac99e25601c3fb83dc91367d76f864496847 (diff)
ath5k: Fix I/Q calibration
The sign of correction coefficients was lost in the calculations, which caused high packetloss in 802.11a mode after the results were applied. Fixed by removing unneccesary and broken AND with a bit mask. Signed-off-by: Lukas Turek <8an@praha12.net> Acked-by: Nick Kossifidis <mickflemm@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ath/ath5k/phy.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath5k/phy.c b/drivers/net/wireless/ath/ath5k/phy.c
index 721ec5ee381d..bbfdcd5e7cb1 100644
--- a/drivers/net/wireless/ath/ath5k/phy.c
+++ b/drivers/net/wireless/ath/ath5k/phy.c
@@ -1399,7 +1399,7 @@ static int ath5k_hw_rf511x_calibrate(struct ath5k_hw *ah,
1399 if (i_coffd == 0 || q_coffd == 0) 1399 if (i_coffd == 0 || q_coffd == 0)
1400 goto done; 1400 goto done;
1401 1401
1402 i_coff = ((-iq_corr) / i_coffd) & 0x3f; 1402 i_coff = ((-iq_corr) / i_coffd);
1403 1403
1404 /* Boundary check */ 1404 /* Boundary check */
1405 if (i_coff > 31) 1405 if (i_coff > 31)
@@ -1407,7 +1407,7 @@ static int ath5k_hw_rf511x_calibrate(struct ath5k_hw *ah,
1407 if (i_coff < -32) 1407 if (i_coff < -32)
1408 i_coff = -32; 1408 i_coff = -32;
1409 1409
1410 q_coff = (((s32)i_pwr / q_coffd) - 128) & 0x1f; 1410 q_coff = (((s32)i_pwr / q_coffd) - 128);
1411 1411
1412 /* Boundary check */ 1412 /* Boundary check */
1413 if (q_coff > 15) 1413 if (q_coff > 15)