diff options
author | Sujith <Sujith.Manoharan@atheros.com> | 2010-06-01 05:44:17 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-06-03 14:14:40 -0400 |
commit | e9201f09ad4c6ef5f5b28d20b114a47bf57e72a3 (patch) | |
tree | f53e9d7886b8d65061af5b5a4b5c618af22af41a /drivers | |
parent | 23367769af90b63231cce6d70a39f1700ca5c03d (diff) |
ath9k_htc: Handle monitor interface removal
The monitor interface instance on the target has
to be removed before setting it to FULLSLEEP.
Handle this properly.
Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc_drv_main.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c b/drivers/net/wireless/ath/ath9k/htc_drv_main.c index b62bfa57dd42..ba26a983adcb 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c | |||
@@ -1266,12 +1266,6 @@ static void ath9k_htc_stop(struct ieee80211_hw *hw) | |||
1266 | WMI_CMD(WMI_DISABLE_INTR_CMDID); | 1266 | WMI_CMD(WMI_DISABLE_INTR_CMDID); |
1267 | WMI_CMD(WMI_DRAIN_TXQ_ALL_CMDID); | 1267 | WMI_CMD(WMI_DRAIN_TXQ_ALL_CMDID); |
1268 | WMI_CMD(WMI_STOP_RECV_CMDID); | 1268 | WMI_CMD(WMI_STOP_RECV_CMDID); |
1269 | ath9k_hw_phy_disable(ah); | ||
1270 | ath9k_hw_disable(ah); | ||
1271 | ath9k_hw_configpcipowersave(ah, 1, 1); | ||
1272 | ath9k_htc_ps_restore(priv); | ||
1273 | ath9k_htc_setpower(priv, ATH9K_PM_FULL_SLEEP); | ||
1274 | |||
1275 | skb_queue_purge(&priv->tx_queue); | 1269 | skb_queue_purge(&priv->tx_queue); |
1276 | 1270 | ||
1277 | /* Remove monitor interface here */ | 1271 | /* Remove monitor interface here */ |
@@ -1284,6 +1278,12 @@ static void ath9k_htc_stop(struct ieee80211_hw *hw) | |||
1284 | "Monitor interface removed\n"); | 1278 | "Monitor interface removed\n"); |
1285 | } | 1279 | } |
1286 | 1280 | ||
1281 | ath9k_hw_phy_disable(ah); | ||
1282 | ath9k_hw_disable(ah); | ||
1283 | ath9k_hw_configpcipowersave(ah, 1, 1); | ||
1284 | ath9k_htc_ps_restore(priv); | ||
1285 | ath9k_htc_setpower(priv, ATH9K_PM_FULL_SLEEP); | ||
1286 | |||
1287 | priv->op_flags |= OP_INVALID; | 1287 | priv->op_flags |= OP_INVALID; |
1288 | 1288 | ||
1289 | ath_print(common, ATH_DBG_CONFIG, "Driver halt\n"); | 1289 | ath_print(common, ATH_DBG_CONFIG, "Driver halt\n"); |