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.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index b0e5e716b167..767d8b86f1e1 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -29,8 +29,8 @@ static unsigned int ath9k_debug = ATH_DBG_DEFAULT;
29module_param_named(debug, ath9k_debug, uint, 0); 29module_param_named(debug, ath9k_debug, uint, 0);
30MODULE_PARM_DESC(debug, "Debugging mask"); 30MODULE_PARM_DESC(debug, "Debugging mask");
31 31
32int modparam_nohwcrypt; 32int ath9k_modparam_nohwcrypt;
33module_param_named(nohwcrypt, modparam_nohwcrypt, int, 0444); 33module_param_named(nohwcrypt, ath9k_modparam_nohwcrypt, int, 0444);
34MODULE_PARM_DESC(nohwcrypt, "Disable hardware encryption"); 34MODULE_PARM_DESC(nohwcrypt, "Disable hardware encryption");
35 35
36int led_blink; 36int led_blink;
@@ -45,6 +45,7 @@ int ath9k_pm_qos_value = ATH9K_PM_QOS_DEFAULT_VALUE;
45module_param_named(pmqos, ath9k_pm_qos_value, int, S_IRUSR | S_IRGRP | S_IROTH); 45module_param_named(pmqos, ath9k_pm_qos_value, int, S_IRUSR | S_IRGRP | S_IROTH);
46MODULE_PARM_DESC(pmqos, "User specified PM-QOS value"); 46MODULE_PARM_DESC(pmqos, "User specified PM-QOS value");
47 47
48bool is_ath9k_unloaded;
48/* We use the hw_value as an index into our private channel structure */ 49/* We use the hw_value as an index into our private channel structure */
49 50
50#define CHAN2G(_freq, _idx) { \ 51#define CHAN2G(_freq, _idx) { \
@@ -372,7 +373,7 @@ fail:
372#undef DS2PHYS 373#undef DS2PHYS
373} 374}
374 375
375static void ath9k_init_crypto(struct ath_softc *sc) 376void ath9k_init_crypto(struct ath_softc *sc)
376{ 377{
377 struct ath_common *common = ath9k_hw_common(sc->sc_ah); 378 struct ath_common *common = ath9k_hw_common(sc->sc_ah);
378 int i = 0; 379 int i = 0;
@@ -647,13 +648,12 @@ void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
647 IEEE80211_HW_SUPPORTS_PS | 648 IEEE80211_HW_SUPPORTS_PS |
648 IEEE80211_HW_PS_NULLFUNC_STACK | 649 IEEE80211_HW_PS_NULLFUNC_STACK |
649 IEEE80211_HW_SPECTRUM_MGMT | 650 IEEE80211_HW_SPECTRUM_MGMT |
650 IEEE80211_HW_REPORTS_TX_ACK_STATUS | 651 IEEE80211_HW_REPORTS_TX_ACK_STATUS;
651 IEEE80211_HW_NEED_DTIM_PERIOD;
652 652
653 if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT) 653 if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT)
654 hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION; 654 hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;
655 655
656 if (AR_SREV_9160_10_OR_LATER(sc->sc_ah) || modparam_nohwcrypt) 656 if (AR_SREV_9160_10_OR_LATER(sc->sc_ah) || ath9k_modparam_nohwcrypt)
657 hw->flags |= IEEE80211_HW_MFP_CAPABLE; 657 hw->flags |= IEEE80211_HW_MFP_CAPABLE;
658 658
659 hw->wiphy->interface_modes = 659 hw->wiphy->interface_modes =
@@ -899,6 +899,7 @@ module_init(ath9k_init);
899 899
900static void __exit ath9k_exit(void) 900static void __exit ath9k_exit(void)
901{ 901{
902 is_ath9k_unloaded = true;
902 ath_ahb_exit(); 903 ath_ahb_exit();
903 ath_pci_exit(); 904 ath_pci_exit();
904 ath_rate_control_unregister(); 905 ath_rate_control_unregister();