diff options
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc_drv_main.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c b/drivers/net/wireless/ath/ath9k/htc_drv_main.c index 7b7796895432..7212acb2bd6c 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c | |||
@@ -1294,11 +1294,16 @@ static void ath9k_htc_configure_filter(struct ieee80211_hw *hw, | |||
1294 | u32 rfilt; | 1294 | u32 rfilt; |
1295 | 1295 | ||
1296 | mutex_lock(&priv->mutex); | 1296 | mutex_lock(&priv->mutex); |
1297 | ath9k_htc_ps_wakeup(priv); | ||
1298 | |||
1299 | changed_flags &= SUPPORTED_FILTERS; | 1297 | changed_flags &= SUPPORTED_FILTERS; |
1300 | *total_flags &= SUPPORTED_FILTERS; | 1298 | *total_flags &= SUPPORTED_FILTERS; |
1301 | 1299 | ||
1300 | if (priv->op_flags & OP_INVALID) { | ||
1301 | ath_dbg(ath9k_hw_common(priv->ah), ATH_DBG_ANY, | ||
1302 | "Unable to configure filter on invalid state\n"); | ||
1303 | return; | ||
1304 | } | ||
1305 | ath9k_htc_ps_wakeup(priv); | ||
1306 | |||
1302 | priv->rxfilter = *total_flags; | 1307 | priv->rxfilter = *total_flags; |
1303 | rfilt = ath9k_htc_calcrxfilter(priv); | 1308 | rfilt = ath9k_htc_calcrxfilter(priv); |
1304 | ath9k_hw_setrxfilter(priv->ah, rfilt); | 1309 | ath9k_hw_setrxfilter(priv->ah, rfilt); |