diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/init.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/init.c | 13 |
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; | |||
29 | module_param_named(debug, ath9k_debug, uint, 0); | 29 | module_param_named(debug, ath9k_debug, uint, 0); |
30 | MODULE_PARM_DESC(debug, "Debugging mask"); | 30 | MODULE_PARM_DESC(debug, "Debugging mask"); |
31 | 31 | ||
32 | int modparam_nohwcrypt; | 32 | int ath9k_modparam_nohwcrypt; |
33 | module_param_named(nohwcrypt, modparam_nohwcrypt, int, 0444); | 33 | module_param_named(nohwcrypt, ath9k_modparam_nohwcrypt, int, 0444); |
34 | MODULE_PARM_DESC(nohwcrypt, "Disable hardware encryption"); | 34 | MODULE_PARM_DESC(nohwcrypt, "Disable hardware encryption"); |
35 | 35 | ||
36 | int led_blink; | 36 | int led_blink; |
@@ -45,6 +45,7 @@ int ath9k_pm_qos_value = ATH9K_PM_QOS_DEFAULT_VALUE; | |||
45 | module_param_named(pmqos, ath9k_pm_qos_value, int, S_IRUSR | S_IRGRP | S_IROTH); | 45 | module_param_named(pmqos, ath9k_pm_qos_value, int, S_IRUSR | S_IRGRP | S_IROTH); |
46 | MODULE_PARM_DESC(pmqos, "User specified PM-QOS value"); | 46 | MODULE_PARM_DESC(pmqos, "User specified PM-QOS value"); |
47 | 47 | ||
48 | bool 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 | ||
375 | static void ath9k_init_crypto(struct ath_softc *sc) | 376 | void 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 | ||
900 | static void __exit ath9k_exit(void) | 900 | static 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(); |