ath5k: Wakeup fixes
PATCH 3/5 ath5k: Wakeup fixes
* Don't put chip to full sleep because there are problems during wakeup. Instead hold MAC/Baseband on warm reset state via a new function ath5k_hw_on_hold.
* Minor cleanups
Signed-off-by Nick Kossifidis <[email protected]>
Tested-by Ben Greear <[email protected]>
Tested-by Johannes Stezenbach <[email protected]>
--- drivers/net/wireless/ath/ath5k/ath5k.h | 1 + drivers/net/wireless/ath/ath5k/attach.c | 2 +- drivers/net/wireless/ath/ath5k/base.c | 44 +++++---- drivers/net/wireless/ath/ath5k/reset.c | 155 +++++++++++++++++++++++-------- 4 files changed, 140 insertions(+), 62 deletions(-)
drivers/net/wireless/ath/ath5k/ath5k.h +1 -0
@@ -1157,6 +1157,7 @@ extern void ath5k_unregister_leds(struct ath5k_softc *sc);/* Reset Functions */ extern int ath5k_hw_nic_wakeup (struct ath5k_hw *ah,int flags,bool initial); +extern int ath5k_hw_on_hold (struct ath5k_hw *ah);extern int ath5k_hw_reset (struct ath5k_hw *ah,enum nl80211_iftype op_mode,struct ieee80211_channel *channel,bool change_channel);/* Power management functions */ extern int ath5k_hw_set_power (struct ath5k_hw *ah,enum ath5k_power_mode mode,bool set_chip,u16 sleep_duration);
drivers/net/wireless/ath/ath5k/attach.c +1 -1
@@ -145,7 +145,7 @@ struct ath5k_hw *ath5k_hw_attach(struct ath5k_softc *sc, u8 mac_version) goto err_free;/* Bring device out of sleep and reset it's units */ - ret =ath5k_hw_nic_wakeup (ah,CHANNEL_B , true); + ret =ath5k_hw_nic_wakeup (ah,0 , true);if (ret) goto err_free;
drivers/net/wireless/ath/ath5k/base.c +23 -21
50 lines not on this page · raw message
drivers/net/wireless/ath/ath5k/reset.c +115 -40
195 lines not on this page · raw message