summaryrefslogtreecommitdiff
path: root/package/mac80211/patches/550-ath9k-enable-2GHz-band-only-if-the-device-supports.patch
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2009-11-27 21:21:14 +0000
committerGabor Juhos <juhosg@openwrt.org>2009-11-27 21:21:14 +0000
commitfee0ea3ba884fc153326fa8ae2e77c60b18eb43d (patch)
tree5051c32ad1281d0a8078b2dc56181aba87b3751a /package/mac80211/patches/550-ath9k-enable-2GHz-band-only-if-the-device-supports.patch
parent05c8eef651e0f4f66a2dcbd5f8689842832260cd (diff)
downloadmtk-20170518-fee0ea3ba884fc153326fa8ae2e77c60b18eb43d.zip
mtk-20170518-fee0ea3ba884fc153326fa8ae2e77c60b18eb43d.tar.gz
mtk-20170518-fee0ea3ba884fc153326fa8ae2e77c60b18eb43d.tar.bz2
mac80211: update ath9k patch
SVN-Revision: 18563
Diffstat (limited to 'package/mac80211/patches/550-ath9k-enable-2GHz-band-only-if-the-device-supports.patch')
-rw-r--r--package/mac80211/patches/550-ath9k-enable-2GHz-band-only-if-the-device-supports.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/package/mac80211/patches/550-ath9k-enable-2GHz-band-only-if-the-device-supports.patch b/package/mac80211/patches/550-ath9k-enable-2GHz-band-only-if-the-device-supports.patch
index dca58ed..ed07822 100644
--- a/package/mac80211/patches/550-ath9k-enable-2GHz-band-only-if-the-device-supports.patch
+++ b/package/mac80211/patches/550-ath9k-enable-2GHz-band-only-if-the-device-supports.patch
@@ -1,3 +1,59 @@
+--- a/drivers/net/wireless/ath/ath9k/hw.c
++++ b/drivers/net/wireless/ath/ath9k/hw.c
+@@ -979,7 +979,10 @@ int ath9k_hw_init(struct ath_hw *ah)
+ return r;
+
+ ath9k_hw_init_mode_gain_regs(ah);
+- ath9k_hw_fill_cap_info(ah);
++ r = ath9k_hw_fill_cap_info(ah);
++ if (r)
++ return r;
++
+ ath9k_hw_init_11a_eeprom_fix(ah);
+
+ r = ath9k_hw_init_macaddr(ah);
+@@ -3115,7 +3118,7 @@ EXPORT_SYMBOL(ath9k_hw_set_sta_beacon_ti
+ /* HW Capabilities */
+ /*******************/
+
+-void ath9k_hw_fill_cap_info(struct ath_hw *ah)
++int ath9k_hw_fill_cap_info(struct ath_hw *ah)
+ {
+ struct ath9k_hw_capabilities *pCap = &ah->caps;
+ struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah);
+@@ -3146,6 +3149,12 @@ void ath9k_hw_fill_cap_info(struct ath_h
+ }
+
+ eeval = ah->eep_ops->get_eeprom(ah, EEP_OP_MODE);
++ if ((eeval & (AR5416_OPFLAGS_11G | AR5416_OPFLAGS_11A)) == 0) {
++ ath_print(common, ATH_DBG_FATAL,
++ "no band has been marked as supported in EEPROM.\n");
++ return -EINVAL;
++ }
++
+ bitmap_zero(pCap->wireless_modes, ATH9K_MODE_MAX);
+
+ if (eeval & AR5416_OPFLAGS_11A) {
+@@ -3305,6 +3314,8 @@ void ath9k_hw_fill_cap_info(struct ath_h
+ } else {
+ btcoex_hw->scheme = ATH_BTCOEX_CFG_NONE;
+ }
++
++ return 0;
+ }
+
+ bool ath9k_hw_getcapability(struct ath_hw *ah, enum ath9k_capability_type type,
+--- a/drivers/net/wireless/ath/ath9k/hw.h
++++ b/drivers/net/wireless/ath/ath9k/hw.h
+@@ -619,7 +619,7 @@ void ath9k_hw_detach(struct ath_hw *ah);
+ int ath9k_hw_init(struct ath_hw *ah);
+ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
+ bool bChannelChange);
+-void ath9k_hw_fill_cap_info(struct ath_hw *ah);
++int ath9k_hw_fill_cap_info(struct ath_hw *ah);
+ bool ath9k_hw_getcapability(struct ath_hw *ah, enum ath9k_capability_type type,
+ u32 capability, u32 *result);
+ bool ath9k_hw_setcapability(struct ath_hw *ah, enum ath9k_capability_type type,
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -1805,13 +1805,15 @@ static int ath_init_softc(u16 devid, str