diff options
author | Felix Fietkau <nbd@openwrt.org> | 2009-12-05 17:12:56 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2009-12-05 17:12:56 +0000 |
commit | 6cdf436893d94eef9c3ee47814ea324c0ed4ce2f (patch) | |
tree | 35ed81d367fb463fdf89733428a0aca2cb9ed3dc /package/mac80211/patches/550-ath9k-enable-2GHz-band-only-if-the-device-supports.patch | |
parent | fee32f227e00406e2439d0313b76a21aa0e8a83f (diff) | |
download | upstream-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.patch | 108 |
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 */ |