Skip to content

Commit

Permalink
ath9k: optimize the usage of power save wrappers.
Browse files Browse the repository at this point in the history
We need not wake up the chip even before mutex lock is acquired and also
that it is required only if we are going to drain the txq. So place the
wrappers accordingly and this change is also useful when there are no
pending frames in the txq as we do not wake up the chip unnecessarily.

Signed-off-by: Senthil Balasubramanian <senthilkumar@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Senthil Balasubramanian authored and John W. Linville committed Apr 25, 2011
1 parent d1c038d commit 5151390
Showing 1 changed file with 2 additions and 4 deletions.
6 changes: 2 additions & 4 deletions drivers/net/wireless/ath/ath9k/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2211,9 +2211,7 @@ static void ath9k_flush(struct ieee80211_hw *hw, bool drop)
int timeout = 200; /* ms */
int i, j;

ath9k_ps_wakeup(sc);
mutex_lock(&sc->mutex);

cancel_delayed_work_sync(&sc->tx_complete_work);

if (drop)
Expand All @@ -2236,15 +2234,15 @@ static void ath9k_flush(struct ieee80211_hw *hw, bool drop)
goto out;
}

ath9k_ps_wakeup(sc);
if (!ath_drain_all_txq(sc, false))
ath_reset(sc, false);

ath9k_ps_restore(sc);
ieee80211_wake_queues(hw);

out:
ieee80211_queue_delayed_work(hw, &sc->tx_complete_work, 0);
mutex_unlock(&sc->mutex);
ath9k_ps_restore(sc);
}

static bool ath9k_tx_frames_pending(struct ieee80211_hw *hw)
Expand Down

0 comments on commit 5151390

Please sign in to comment.