aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSujith <Sujith.Manoharan@atheros.com>2010-06-01 05:44:17 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-06-03 14:14:40 -0400
commite9201f09ad4c6ef5f5b28d20b114a47bf57e72a3 (patch)
treef53e9d7886b8d65061af5b5a4b5c618af22af41a /drivers
parent23367769af90b63231cce6d70a39f1700ca5c03d (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.c12
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");