diff options
Diffstat (limited to 'package/mac80211/patches')
| -rw-r--r-- | package/mac80211/patches/550-ath9k-enable-2GHz-band-only-if-the-device-supports.patch | 52 | 
1 files changed, 52 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 new file mode 100644 index 000000000..dca58ed1f --- /dev/null +++ b/package/mac80211/patches/550-ath9k-enable-2GHz-band-only-if-the-device-supports.patch @@ -0,0 +1,52 @@ +--- 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 */  | 
