|
@@ -34,7 +34,7 @@
|
|
|
#include "debugfs.h"
|
|
|
|
|
|
|
|
|
-bool ieee80211_disable_40mhz_24ghz;
|
|
|
+static bool ieee80211_disable_40mhz_24ghz;
|
|
|
module_param(ieee80211_disable_40mhz_24ghz, bool, 0644);
|
|
|
MODULE_PARM_DESC(ieee80211_disable_40mhz_24ghz,
|
|
|
"Disable 40MHz support in the 2.4GHz band");
|
|
@@ -723,6 +723,18 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
|
|
|
}
|
|
|
channels += sband->n_channels;
|
|
|
|
|
|
+ /*
|
|
|
+ * Since ieee80211_disable_40mhz_24ghz is global, we can
|
|
|
+ * modify the sband's ht data even if the driver uses a
|
|
|
+ * global structure for that.
|
|
|
+ */
|
|
|
+ if (ieee80211_disable_40mhz_24ghz &&
|
|
|
+ band == IEEE80211_BAND_2GHZ &&
|
|
|
+ sband->ht_cap.ht_supported) {
|
|
|
+ sband->ht_cap.cap &= ~IEEE80211_HT_CAP_SUP_WIDTH_20_40;
|
|
|
+ sband->ht_cap.cap &= ~IEEE80211_HT_CAP_SGI_40;
|
|
|
+ }
|
|
|
+
|
|
|
if (max_bitrates < sband->n_bitrates)
|
|
|
max_bitrates = sband->n_bitrates;
|
|
|
supp_ht = supp_ht || sband->ht_cap.ht_supported;
|