dca58ed1f6f1fd417dec8994739f8af684f0a837
[openwrt/openwrt.git] / package / mac80211 / patches / 550-ath9k-enable-2GHz-band-only-if-the-device-supports.patch
1 --- a/drivers/net/wireless/ath/ath9k/main.c
2 +++ b/drivers/net/wireless/ath/ath9k/main.c
3 @@ -1805,13 +1805,15 @@ static int ath_init_softc(u16 devid, str
4
5 /* setup channels and rates */
6
7 - sc->sbands[IEEE80211_BAND_2GHZ].channels = ath9k_2ghz_chantable;
8 - sc->sbands[IEEE80211_BAND_2GHZ].band = IEEE80211_BAND_2GHZ;
9 - sc->sbands[IEEE80211_BAND_2GHZ].n_channels =
10 - ARRAY_SIZE(ath9k_2ghz_chantable);
11 - sc->sbands[IEEE80211_BAND_2GHZ].bitrates = ath9k_legacy_rates;
12 - sc->sbands[IEEE80211_BAND_2GHZ].n_bitrates =
13 - ARRAY_SIZE(ath9k_legacy_rates);
14 + if (test_bit(ATH9K_MODE_11G, sc->sc_ah->caps.wireless_modes)) {
15 + sc->sbands[IEEE80211_BAND_2GHZ].channels = ath9k_2ghz_chantable;
16 + sc->sbands[IEEE80211_BAND_2GHZ].band = IEEE80211_BAND_2GHZ;
17 + sc->sbands[IEEE80211_BAND_2GHZ].n_channels =
18 + ARRAY_SIZE(ath9k_2ghz_chantable);
19 + sc->sbands[IEEE80211_BAND_2GHZ].bitrates = ath9k_legacy_rates;
20 + sc->sbands[IEEE80211_BAND_2GHZ].n_bitrates =
21 + ARRAY_SIZE(ath9k_legacy_rates);
22 + }
23
24 if (test_bit(ATH9K_MODE_11A, sc->sc_ah->caps.wireless_modes)) {
25 sc->sbands[IEEE80211_BAND_5GHZ].channels = ath9k_5ghz_chantable;
26 @@ -1886,8 +1888,9 @@ void ath_set_hw_capab(struct ath_softc *
27
28 hw->rate_control_algorithm = "ath9k_rate_control";
29
30 - hw->wiphy->bands[IEEE80211_BAND_2GHZ] =
31 - &sc->sbands[IEEE80211_BAND_2GHZ];
32 + if (test_bit(ATH9K_MODE_11G, sc->sc_ah->caps.wireless_modes))
33 + hw->wiphy->bands[IEEE80211_BAND_2GHZ] =
34 + &sc->sbands[IEEE80211_BAND_2GHZ];
35 if (test_bit(ATH9K_MODE_11A, sc->sc_ah->caps.wireless_modes))
36 hw->wiphy->bands[IEEE80211_BAND_5GHZ] =
37 &sc->sbands[IEEE80211_BAND_5GHZ];
38 @@ -1926,9 +1929,12 @@ int ath_init_device(u16 devid, struct at
39 reg = &common->regulatory;
40
41 if (ah->caps.hw_caps & ATH9K_HW_CAP_HT) {
42 - setup_ht_cap(sc, &sc->sbands[IEEE80211_BAND_2GHZ].ht_cap);
43 + if (test_bit(ATH9K_MODE_11G, ah->caps.wireless_modes))
44 + setup_ht_cap(sc,
45 + &sc->sbands[IEEE80211_BAND_2GHZ].ht_cap);
46 if (test_bit(ATH9K_MODE_11A, ah->caps.wireless_modes))
47 - setup_ht_cap(sc, &sc->sbands[IEEE80211_BAND_5GHZ].ht_cap);
48 + setup_ht_cap(sc,
49 + &sc->sbands[IEEE80211_BAND_5GHZ].ht_cap);
50 }
51
52 /* initialize tx/rx engine */