forked from Minki/linux
ath9k: Do not try to calibrate radio when in sleep mode
When the chip is in sleep mode, there is no point trying to calibrate the radio since it will just results in incorrect values being read from registers and other potential issues. In addition, if we actually start processing calibrate, do not allow the chip to be put into sleep until we have completed the calibration step. Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
9a23f9ca50
commit
1ffc1c61bd
@ -329,6 +329,12 @@ static void ath_ani_calibrate(unsigned long data)
|
||||
if (sc->sc_flags & SC_OP_SCANNING)
|
||||
goto set_timer;
|
||||
|
||||
/* Only calibrate if awake */
|
||||
if (sc->sc_ah->power_mode != ATH9K_PM_AWAKE)
|
||||
goto set_timer;
|
||||
|
||||
ath9k_ps_wakeup(sc);
|
||||
|
||||
/* Long calibration runs independently of short calibration. */
|
||||
if ((timestamp - sc->ani.longcal_timer) >= ATH_LONG_CALINTERVAL) {
|
||||
longcal = true;
|
||||
@ -380,6 +386,8 @@ static void ath_ani_calibrate(unsigned long data)
|
||||
}
|
||||
}
|
||||
|
||||
ath9k_ps_restore(sc);
|
||||
|
||||
set_timer:
|
||||
/*
|
||||
* Set timer interval based on previous results.
|
||||
|
Loading…
Reference in New Issue
Block a user