aboutsummaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/550-ath9k-enable-2GHz-band-only-if-the-device-supports.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2009-12-05 17:12:56 +0000
committerFelix Fietkau <nbd@openwrt.org>2009-12-05 17:12:56 +0000
commit6cdf436893d94eef9c3ee47814ea324c0ed4ce2f (patch)
tree35ed81d367fb463fdf89733428a0aca2cb9ed3dc /package/mac80211/patches/550-ath9k-enable-2GHz-band-only-if-the-device-supports.patch
parentfee32f227e00406e2439d0313b76a21aa0e8a83f (diff)
downloadupstream-6cdf436893d94eef9c3ee47814ea324c0ed4ce2f.tar.gz
upstream-6cdf436893d94eef9c3ee47814ea324c0ed4ce2f.tar.bz2
upstream-6cdf436893d94eef9c3ee47814ea324c0ed4ce2f.zip
mac80211: update to compat-wireless 2009-12-05 and fix a critical bug in ath9k tx status reporting
SVN-Revision: 18666
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.patch108
1 files changed, 0 insertions, 108 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
deleted file mode 100644
index ed07822e7c..0000000000
--- a/package/mac80211/patches/550-ath9k-enable-2GHz-band-only-if-the-device-supports.patch
+++ /dev/null
@@ -1,108 +0,0 @@
---- 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
-
- /* setup channels and rates */
-
-- sc->sbands[IEEE80211_BAND_2GHZ].channels = ath9k_2ghz_chantable;
-- sc->sbands[IEEE80211_BAND_2GHZ].band = IEEE80211_BAND_2GHZ;
-- sc->sbands[IEEE80211_BAND_2GHZ].n_channels =
-- ARRAY_SIZE(ath9k_2ghz_chantable);
-- sc->sbands[IEEE80211_BAND_2GHZ].bitrates = ath9k_legacy_rates;
-- sc->sbands[IEEE80211_BAND_2GHZ].n_bitrates =
-- ARRAY_SIZE(ath9k_legacy_rates);
-+ if (test_bit(ATH9K_MODE_11G, sc->sc_ah->caps.wireless_modes)) {
-+ sc->sbands[IEEE80211_BAND_2GHZ].channels = ath9k_2ghz_chantable;
-+ sc->sbands[IEEE80211_BAND_2GHZ].band = IEEE80211_BAND_2GHZ;
-+ sc->sbands[IEEE80211_BAND_2GHZ].n_channels =
-+ ARRAY_SIZE(ath9k_2ghz_chantable);
-+ sc->sbands[IEEE80211_BAND_2GHZ].bitrates = ath9k_legacy_rates;
-+ sc->sbands[IEEE80211_BAND_2GHZ].n_bitrates =
-+ ARRAY_SIZE(ath9k_legacy_rates);
-+ }
-
- if (test_bit(ATH9K_MODE_11A, sc->sc_ah->caps.wireless_modes)) {
- sc->sbands[IEEE80211_BAND_5GHZ].channels = ath9k_5ghz_chantable;
-@@ -1886,8 +1888,9 @@ void ath_set_hw_capab(struct ath_softc *
-
- hw->rate_control_algorithm = "ath9k_rate_control";
-
-- hw->wiphy->bands[IEEE80211_BAND_2GHZ] =
-- &sc->sbands[IEEE80211_BAND_2GHZ];
-+ if (test_bit(ATH9K_MODE_11G, sc->sc_ah->caps.wireless_modes))
-+ hw->wiphy->bands[IEEE80211_BAND_2GHZ] =
-+ &sc->sbands[IEEE80211_BAND_2GHZ];
- if (test_bit(ATH9K_MODE_11A, sc->sc_ah->caps.wireless_modes))
- hw->wiphy->bands[IEEE80211_BAND_5GHZ] =
- &sc->sbands[IEEE80211_BAND_5GHZ];
-@@ -1926,9 +1929,12 @@ int ath_init_device(u16 devid, struct at
- reg = &common->regulatory;
-
- if (ah->caps.hw_caps & ATH9K_HW_CAP_HT) {
-- setup_ht_cap(sc, &sc->sbands[IEEE80211_BAND_2GHZ].ht_cap);
-+ if (test_bit(ATH9K_MODE_11G, ah->caps.wireless_modes))
-+ setup_ht_cap(sc,
-+ &sc->sbands[IEEE80211_BAND_2GHZ].ht_cap);
- if (test_bit(ATH9K_MODE_11A, ah->caps.wireless_modes))
-- setup_ht_cap(sc, &sc->sbands[IEEE80211_BAND_5GHZ].ht_cap);
-+ setup_ht_cap(sc,
-+ &sc->sbands[IEEE80211_BAND_5GHZ].ht_cap);
- }
-
- /* initialize tx/rx engine */