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: Bruno Randolf <br1@einfach.org> Acked-by: Nick Kossifidis <mickflemm@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
7644395f8d
Коммит
49a85d211a
|
@ -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,
|
||||||
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)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче