Skip to content

Commit

Permalink
ath9k: do not access hw registers in FULL SLEEP
Browse files Browse the repository at this point in the history
The opmode recalculation is accessing hw registers.
When it is called from remove interface callback and
if there are no vifs present then hw is moved to FULL SLEEP
by radio disable. So use power save wrappers before
accessing hw registers in calculating opmode state.

Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Rajkumar Manoharan authored and John W. Linville committed Feb 3, 2011
1 parent b2a5c3d commit 4c89fe9
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions drivers/net/wireless/ath/ath9k/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1354,6 +1354,7 @@ static void ath9k_calculate_summary_state(struct ieee80211_hw *hw,

ath9k_calculate_iter_data(hw, vif, &iter_data);

ath9k_ps_wakeup(sc);
/* Set BSSID mask. */
memcpy(common->bssidmask, iter_data.mask, ETH_ALEN);
ath_hw_setbssidmask(common);
Expand Down Expand Up @@ -1388,6 +1389,7 @@ static void ath9k_calculate_summary_state(struct ieee80211_hw *hw,
}

ath9k_hw_set_interrupts(ah, ah->imask);
ath9k_ps_restore(sc);

/* Set up ANI */
if ((iter_data.naps + iter_data.nadhocs) > 0) {
Expand Down

0 comments on commit 4c89fe9

Please sign in to comment.