Skip to content

Commit

Permalink
ath5k: ignore the return value of ath5k_hw_noise_floor_calibration
Browse files Browse the repository at this point in the history
Noise floor calibration occasionally fails on Atheros hardware.
This is not fatal and can happen if there's simply too much
noise on the air. Ignoring the calibration error is the right
thing to do here, because when the error is ignored, the hardware
will still work, whereas if the error causes the driver to bail out
of a bigger configuration function and does not configure the tx
queues or the IMR (as is the case in reset.c), the hw no longer
works properly until the next reset.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Felix Fietkau authored and John W. Linville committed Nov 21, 2008
1 parent 6d64360 commit 8b0162a
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 6 deletions.
4 changes: 1 addition & 3 deletions drivers/net/wireless/ath5k/phy.c
Original file line number Diff line number Diff line change
Expand Up @@ -2196,9 +2196,7 @@ static int ath5k_hw_rf5110_calibrate(struct ath5k_hw *ah,
return ret;
}

ret = ath5k_hw_noise_floor_calibration(ah, channel->center_freq);
if (ret)
return ret;
ath5k_hw_noise_floor_calibration(ah, channel->center_freq);

/*
* Re-enable RX/TX and beacons
Expand Down
4 changes: 1 addition & 3 deletions drivers/net/wireless/ath5k/reset.c
Original file line number Diff line number Diff line change
Expand Up @@ -842,9 +842,7 @@ int ath5k_hw_reset(struct ath5k_hw *ah, enum nl80211_iftype op_mode,
*
* XXX: Find an interval that's OK for all cards...
*/
ret = ath5k_hw_noise_floor_calibration(ah, channel->center_freq);
if (ret)
return ret;
ath5k_hw_noise_floor_calibration(ah, channel->center_freq);

/*
* Reset queues and start beacon timers at the end of the reset routine
Expand Down

0 comments on commit 8b0162a

Please sign in to comment.