diff options
Diffstat (limited to 'package/kernel/mac80211/patches/334-ath9k-allow-disabling-bands-via-platform-data.patch')
-rw-r--r-- | package/kernel/mac80211/patches/334-ath9k-allow-disabling-bands-via-platform-data.patch | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/package/kernel/mac80211/patches/334-ath9k-allow-disabling-bands-via-platform-data.patch b/package/kernel/mac80211/patches/334-ath9k-allow-disabling-bands-via-platform-data.patch deleted file mode 100644 index f7185b0d74..0000000000 --- a/package/kernel/mac80211/patches/334-ath9k-allow-disabling-bands-via-platform-data.patch +++ /dev/null @@ -1,81 +0,0 @@ -From: Felix Fietkau <nbd@openwrt.org> -Date: Sat, 18 Oct 2014 18:27:23 +0200 -Subject: [PATCH] ath9k: allow disabling bands via platform data - -Some devices have multiple bands enables in the EEPROM data, even though -they are only calibrated for one. Allow platform data to disable -unsupported bands. - -Signed-off-by: Gabor Juhos <juhosg@openwrt.org> -Signed-off-by: Felix Fietkau <nbd@openwrt.org> ---- - ---- a/drivers/net/wireless/ath/ath9k/hw.c -+++ b/drivers/net/wireless/ath/ath9k/hw.c -@@ -2344,17 +2344,25 @@ int ath9k_hw_fill_cap_info(struct ath_hw - } - - eeval = ah->eep_ops->get_eeprom(ah, EEP_OP_MODE); -- if ((eeval & (AR5416_OPFLAGS_11G | AR5416_OPFLAGS_11A)) == 0) { -- ath_err(common, -- "no band has been marked as supported in EEPROM\n"); -- return -EINVAL; -+ -+ if (eeval & AR5416_OPFLAGS_11A) { -+ if (ah->disable_5ghz) -+ ath_warn(common, "disabling 5GHz band\n"); -+ else -+ pCap->hw_caps |= ATH9K_HW_CAP_5GHZ; - } - -- if (eeval & AR5416_OPFLAGS_11A) -- pCap->hw_caps |= ATH9K_HW_CAP_5GHZ; -+ if (eeval & AR5416_OPFLAGS_11G) { -+ if (ah->disable_2ghz) -+ ath_warn(common, "disabling 2GHz band\n"); -+ else -+ pCap->hw_caps |= ATH9K_HW_CAP_2GHZ; -+ } - -- if (eeval & AR5416_OPFLAGS_11G) -- pCap->hw_caps |= ATH9K_HW_CAP_2GHZ; -+ if ((pCap->hw_caps & (ATH9K_HW_CAP_2GHZ | ATH9K_HW_CAP_5GHZ)) == 0) { -+ ath_err(common, "both bands are disabled\n"); -+ return -EINVAL; -+ } - - if (AR_SREV_9485(ah) || - AR_SREV_9285(ah) || ---- a/drivers/net/wireless/ath/ath9k/hw.h -+++ b/drivers/net/wireless/ath/ath9k/hw.h -@@ -930,6 +930,8 @@ struct ath_hw { - bool is_clk_25mhz; - int (*get_mac_revision)(void); - int (*external_reset)(void); -+ bool disable_2ghz; -+ bool disable_5ghz; - - const struct firmware *eeprom_blob; - ---- a/drivers/net/wireless/ath/ath9k/init.c -+++ b/drivers/net/wireless/ath/ath9k/init.c -@@ -531,6 +531,8 @@ static int ath9k_init_softc(u16 devid, s - ah->is_clk_25mhz = pdata->is_clk_25mhz; - ah->get_mac_revision = pdata->get_mac_revision; - ah->external_reset = pdata->external_reset; -+ ah->disable_2ghz = pdata->disable_2ghz; -+ ah->disable_5ghz = pdata->disable_5ghz; - if (!pdata->endian_check) - ah->ah_flags |= AH_NO_EEP_SWAP; - } ---- a/include/linux/ath9k_platform.h -+++ b/include/linux/ath9k_platform.h -@@ -34,6 +34,8 @@ struct ath9k_platform_data { - bool endian_check; - bool is_clk_25mhz; - bool tx_gain_buffalo; -+ bool disable_2ghz; -+ bool disable_5ghz; - - int (*get_mac_revision)(void); - int (*external_reset)(void); |