提交 49a85d21 编写于 作者: B Bruno Randolf 提交者: John W. Linville

ath5k: IQ calibration for AR5211 is slightly different

according to the HAL sources the calculation of the Q value is slightly
different for AR5211 chips.

i couldn't test this since IQ calibration never finishes on older parts. this
is a different problem...
Signed-off-by: NBruno Randolf <br1@einfach.org>
Acked-by: NNick Kossifidis <mickflemm@gmail.com>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 7644395f
...@@ -1391,7 +1391,11 @@ static int ath5k_hw_rf511x_calibrate(struct ath5k_hw *ah, ...@@ -1391,7 +1391,11 @@ static int ath5k_hw_rf511x_calibrate(struct ath5k_hw *ah,
} }
i_coffd = ((i_pwr >> 1) + (q_pwr >> 1)) >> 7; i_coffd = ((i_pwr >> 1) + (q_pwr >> 1)) >> 7;
q_coffd = q_pwr >> 7;
if (ah->ah_version == AR5K_AR5211)
q_coffd = q_pwr >> 6;
else
q_coffd = q_pwr >> 7;
/* No correction */ /* No correction */
if (i_coffd == 0 || q_coffd == 0) if (i_coffd == 0 || q_coffd == 0)
...@@ -1405,7 +1409,10 @@ static int ath5k_hw_rf511x_calibrate(struct ath5k_hw *ah, ...@@ -1405,7 +1409,10 @@ static int ath5k_hw_rf511x_calibrate(struct ath5k_hw *ah,
if (i_coff < -32) if (i_coff < -32)
i_coff = -32; i_coff = -32;
q_coff = (((s32)i_pwr / q_coffd) - 128); if (ah->ah_version == AR5K_AR5211)
q_coff = (i_pwr / q_coffd) - 64;
else
q_coff = (i_pwr / q_coffd) - 128;
/* Boundary check */ /* Boundary check */
if (q_coff > 15) if (q_coff > 15)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册