aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/init.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/init.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index 767d8b86f1e1..a033d01bf8a0 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -41,10 +41,6 @@ static int ath9k_btcoex_enable;
41module_param_named(btcoex_enable, ath9k_btcoex_enable, int, 0444); 41module_param_named(btcoex_enable, ath9k_btcoex_enable, int, 0444);
42MODULE_PARM_DESC(btcoex_enable, "Enable wifi-BT coexistence"); 42MODULE_PARM_DESC(btcoex_enable, "Enable wifi-BT coexistence");
43 43
44int ath9k_pm_qos_value = ATH9K_PM_QOS_DEFAULT_VALUE;
45module_param_named(pmqos, ath9k_pm_qos_value, int, S_IRUSR | S_IRGRP | S_IROTH);
46MODULE_PARM_DESC(pmqos, "User specified PM-QOS value");
47
48bool is_ath9k_unloaded; 44bool is_ath9k_unloaded;
49/* We use the hw_value as an index into our private channel structure */ 45/* We use the hw_value as an index into our private channel structure */
50 46
@@ -598,8 +594,6 @@ err_btcoex:
598err_queues: 594err_queues:
599 ath9k_hw_deinit(ah); 595 ath9k_hw_deinit(ah);
600err_hw: 596err_hw:
601 tasklet_kill(&sc->intr_tq);
602 tasklet_kill(&sc->bcon_tasklet);
603 597
604 kfree(ah); 598 kfree(ah);
605 sc->sc_ah = NULL; 599 sc->sc_ah = NULL;
@@ -764,9 +758,6 @@ int ath9k_init_device(u16 devid, struct ath_softc *sc, u16 subsysid,
764 ath_init_leds(sc); 758 ath_init_leds(sc);
765 ath_start_rfkill_poll(sc); 759 ath_start_rfkill_poll(sc);
766 760
767 pm_qos_add_request(&sc->pm_qos_req, PM_QOS_CPU_DMA_LATENCY,
768 PM_QOS_DEFAULT_VALUE);
769
770 return 0; 761 return 0;
771 762
772error_world: 763error_world:
@@ -807,9 +798,6 @@ static void ath9k_deinit_softc(struct ath_softc *sc)
807 798
808 ath9k_hw_deinit(sc->sc_ah); 799 ath9k_hw_deinit(sc->sc_ah);
809 800
810 tasklet_kill(&sc->intr_tq);
811 tasklet_kill(&sc->bcon_tasklet);
812
813 kfree(sc->sc_ah); 801 kfree(sc->sc_ah);
814 sc->sc_ah = NULL; 802 sc->sc_ah = NULL;
815} 803}
@@ -824,6 +812,8 @@ void ath9k_deinit_device(struct ath_softc *sc)
824 wiphy_rfkill_stop_polling(sc->hw->wiphy); 812 wiphy_rfkill_stop_polling(sc->hw->wiphy);
825 ath_deinit_leds(sc); 813 ath_deinit_leds(sc);
826 814
815 ath9k_ps_restore(sc);
816
827 for (i = 0; i < sc->num_sec_wiphy; i++) { 817 for (i = 0; i < sc->num_sec_wiphy; i++) {
828 struct ath_wiphy *aphy = sc->sec_wiphy[i]; 818 struct ath_wiphy *aphy = sc->sec_wiphy[i];
829 if (aphy == NULL) 819 if (aphy == NULL)
@@ -834,7 +824,6 @@ void ath9k_deinit_device(struct ath_softc *sc)
834 } 824 }
835 825
836 ieee80211_unregister_hw(hw); 826 ieee80211_unregister_hw(hw);
837 pm_qos_remove_request(&sc->pm_qos_req);
838 ath_rx_cleanup(sc); 827 ath_rx_cleanup(sc);
839 ath_tx_cleanup(sc); 828 ath_tx_cleanup(sc);
840 ath9k_deinit_softc(sc); 829 ath9k_deinit_softc(sc);