ar9170: fix bug in iq-auto calibration value calculation
This patch fixes a embarrassing bug which was introduced by: "[PATCH] ar9170: implement frequency calibration for one-stage/openfw" The phy_data variable initialization has to done outside the for-loop scope. This is because the for-loop uses u32 phy_data variable more like a 4-byte field. But in each run only a single byte is calculated. Therefore phy_data content needs to stay the same for at least 3 more iterations, before the complete set can be uploaded. Reported-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
78bd6bbf3c
commit
e16c1bb67a
1 changed files with 2 additions and 4 deletions
|
@ -1141,7 +1141,8 @@ static int ar9170_set_freq_cal_data(struct ar9170 *ar,
|
|||
u8 vpds[2][AR5416_PD_GAIN_ICEPTS];
|
||||
u8 pwrs[2][AR5416_PD_GAIN_ICEPTS];
|
||||
int chain, idx, i;
|
||||
u8 f;
|
||||
u32 phy_data = 0;
|
||||
u8 f, tmp;
|
||||
|
||||
switch (channel->band) {
|
||||
case IEEE80211_BAND_2GHZ:
|
||||
|
@ -1208,9 +1209,6 @@ static int ar9170_set_freq_cal_data(struct ar9170 *ar,
|
|||
}
|
||||
|
||||
for (i = 0; i < 76; i++) {
|
||||
u32 phy_data;
|
||||
u8 tmp;
|
||||
|
||||
if (i < 25) {
|
||||
tmp = ar9170_interpolate_val(i, &pwrs[0][0],
|
||||
&vpds[0][0]);
|
||||
|
|
Loading…
Reference in a new issue