···1268 sc->rates[IEEE80211_BAND_2GHZ];1269 sc->sbands[IEEE80211_BAND_2GHZ].band = IEEE80211_BAND_2GHZ;12701271- if (sc->sc_ah->ah_caps.halHTSupport)1272 /* Setup HT capabilities for 2.4Ghz*/1273 setup_ht_cap(&sc->sbands[IEEE80211_BAND_2GHZ].ht_info);12741275 hw->wiphy->bands[IEEE80211_BAND_2GHZ] =1276 &sc->sbands[IEEE80211_BAND_2GHZ];12771278- if (sc->sc_ah->ah_caps.halWirelessModes & ATH9K_MODE_SEL_11A) {1279 sc->sbands[IEEE80211_BAND_5GHZ].channels =1280 sc->channels[IEEE80211_BAND_5GHZ];1281 sc->sbands[IEEE80211_BAND_5GHZ].bitrates =···1283 sc->sbands[IEEE80211_BAND_5GHZ].band =1284 IEEE80211_BAND_5GHZ;12851286- if (sc->sc_ah->ah_caps.halHTSupport)1287 /* Setup HT capabilities for 5Ghz*/1288 setup_ht_cap(&sc->sbands[IEEE80211_BAND_5GHZ].ht_info);1289
···1268 sc->rates[IEEE80211_BAND_2GHZ];1269 sc->sbands[IEEE80211_BAND_2GHZ].band = IEEE80211_BAND_2GHZ;12701271+ if (sc->sc_ah->ah_caps.hw_caps & ATH9K_HW_CAP_HT)1272 /* Setup HT capabilities for 2.4Ghz*/1273 setup_ht_cap(&sc->sbands[IEEE80211_BAND_2GHZ].ht_info);12741275 hw->wiphy->bands[IEEE80211_BAND_2GHZ] =1276 &sc->sbands[IEEE80211_BAND_2GHZ];12771278+ if (sc->sc_ah->ah_caps.wireless_modes & ATH9K_MODE_SEL_11A) {1279 sc->sbands[IEEE80211_BAND_5GHZ].channels =1280 sc->channels[IEEE80211_BAND_5GHZ];1281 sc->sbands[IEEE80211_BAND_5GHZ].bitrates =···1283 sc->sbands[IEEE80211_BAND_5GHZ].band =1284 IEEE80211_BAND_5GHZ;12851286+ if (sc->sc_ah->ah_caps.hw_caps & ATH9K_HW_CAP_HT)1287 /* Setup HT capabilities for 5Ghz*/1288 setup_ht_cap(&sc->sbands[IEEE80211_BAND_5GHZ].ht_info);1289
+1-1
drivers/net/wireless/ath9k/rc.c
···780 ar5416_attach_ratetables(asc);781782 /* Save Maximum TX Trigger Level (used for 11n) */783- tx_triglevel_max = ah->ah_caps.halTxTrigLevelMax;784 /* return alias for ath_rate_softc * */785 return asc;786}
···780 ar5416_attach_ratetables(asc);781782 /* Save Maximum TX Trigger Level (used for 11n) */783+ tx_triglevel_max = ah->ah_caps.tx_triglevel_max;784 /* return alias for ath_rate_softc * */785 return asc;786}
+2-2
drivers/net/wireless/ath9k/recv.c
···478 ath9k_hw_setrxfilter(ah, rfilt);479480 /* configure bssid mask */481- if (ah->ah_caps.halBssIdMaskSupport)482 ath9k_hw_setbssidmask(ah, sc->sc_bssidmask);483484 /* configure operational mode */···1018 PCI_DMA_FROMDEVICE);10191020 /* XXX: Ah! make me more readable, use a helper */1021- if (ah->ah_caps.halHTSupport) {1022 if (ds->ds_rxstat.rs_moreaggr == 0) {1023 rx_status.rssictl[0] =1024 ds->ds_rxstat.rs_rssi_ctl0;
···478 ath9k_hw_setrxfilter(ah, rfilt);479480 /* configure bssid mask */481+ if (ah->ah_caps.hw_caps & ATH9K_HW_CAP_BSSIDMASK)482 ath9k_hw_setbssidmask(ah, sc->sc_bssidmask);483484 /* configure operational mode */···1018 PCI_DMA_FROMDEVICE);10191020 /* XXX: Ah! make me more readable, use a helper */1021+ if (ah->ah_caps.hw_caps & ATH9K_HW_CAP_HT) {1022 if (ds->ds_rxstat.rs_moreaggr == 0) {1023 rx_status.rssictl[0] =1024 ds->ds_rxstat.rs_rssi_ctl0;
+7-7
drivers/net/wireless/ath9k/regd.c
···87{88 u32 regcap;8990- regcap = ah->ah_caps.halRegCap;9192 if (regcap & AR_EEPROM_EEREGCAP_EN_FCC_MIDBAND)93 return true;···138{139 u32 modesAvail;140141- modesAvail = ah->ah_caps.halWirelessModes;142143 if ((modesAvail & ATH9K_MODE_SEL_11G) && (!country->allow11g))144 modesAvail &= ~ATH9K_MODE_SEL_11G;···436 return false;437 }438 if ((fband->channelBW == CHANNEL_HALF_BW) &&439- !ah->ah_caps.halChanHalfRate) {440 DPRINTF(ah->ah_sc, ATH_DBG_REGULATORY,441 "%s: Skipping %u half rate channel\n",442 __func__, c);···444 }445446 if ((fband->channelBW == CHANNEL_QUARTER_BW) &&447- !ah->ah_caps.halChanQuarterRate) {448 DPRINTF(ah->ah_sc, ATH_DBG_REGULATORY,449 "%s: Skipping %u quarter rate channel\n",450 __func__, c);···529 if ((c < 2412) || (c > 2462)) {530 if (rd5GHz.regDmnEnum == MKK1 ||531 rd5GHz.regDmnEnum == MKK2) {532- u32 regcap = ah->ah_caps.halRegCap;533 if (!(regcap &534 (AR_EEPROM_EEREGCAP_EN_KK_U1_EVEN |535 AR_EEPROM_EEREGCAP_EN_KK_U2 |···594595 for (i = 0; i < ARRAY_SIZE(j_bandcheck); i++) {596 if (j_bandcheck[i].freqbandbit == b) {597- regcap = ah->ah_caps.halRegCap;598 if ((j_bandcheck[i].eepromflagtocheck & regcap) == 0) {599 skipband = true;600 } else if ((regcap & AR_EEPROM_EEREGCAP_EN_KK_U2) ||···726 }727728 if (country == NULL) {729- modesAvail = ah->ah_caps.halWirelessModes;730 } else {731 modesAvail = ath9k_regd_get_wmodes_nreg(ah, country, &rd5GHz);732 if (!enableOutdoor)
···87{88 u32 regcap;8990+ regcap = ah->ah_caps.reg_cap;9192 if (regcap & AR_EEPROM_EEREGCAP_EN_FCC_MIDBAND)93 return true;···138{139 u32 modesAvail;140141+ modesAvail = ah->ah_caps.wireless_modes;142143 if ((modesAvail & ATH9K_MODE_SEL_11G) && (!country->allow11g))144 modesAvail &= ~ATH9K_MODE_SEL_11G;···436 return false;437 }438 if ((fband->channelBW == CHANNEL_HALF_BW) &&439+ !(ah->ah_caps.hw_caps & ATH9K_HW_CAP_CHAN_HALFRATE)) {440 DPRINTF(ah->ah_sc, ATH_DBG_REGULATORY,441 "%s: Skipping %u half rate channel\n",442 __func__, c);···444 }445446 if ((fband->channelBW == CHANNEL_QUARTER_BW) &&447+ !(ah->ah_caps.hw_caps & ATH9K_HW_CAP_CHAN_QUARTERRATE)) {448 DPRINTF(ah->ah_sc, ATH_DBG_REGULATORY,449 "%s: Skipping %u quarter rate channel\n",450 __func__, c);···529 if ((c < 2412) || (c > 2462)) {530 if (rd5GHz.regDmnEnum == MKK1 ||531 rd5GHz.regDmnEnum == MKK2) {532+ u32 regcap = ah->ah_caps.reg_cap;533 if (!(regcap &534 (AR_EEPROM_EEREGCAP_EN_KK_U1_EVEN |535 AR_EEPROM_EEREGCAP_EN_KK_U2 |···594595 for (i = 0; i < ARRAY_SIZE(j_bandcheck); i++) {596 if (j_bandcheck[i].freqbandbit == b) {597+ regcap = ah->ah_caps.reg_cap;598 if ((j_bandcheck[i].eepromflagtocheck & regcap) == 0) {599 skipband = true;600 } else if ((regcap & AR_EEPROM_EEREGCAP_EN_KK_U2) ||···726 }727728 if (country == NULL) {729+ modesAvail = ah->ah_caps.wireless_modes;730 } else {731 modesAvail = ath9k_regd_get_wmodes_nreg(ah, country, &rd5GHz);732 if (!enableOutdoor)
+2-2
drivers/net/wireless/ath9k/xmit.c
···781 * let rate series flags determine which rates will actually782 * use RTS.783 */784- if (ah->ah_caps.halHTSupport && bf->bf_isdata) {785 BUG_ON(!an);786 /*787 * 802.11g protection not needed, use our default behavior···897 * For non-HT devices, calculate RTS/CTS duration in software898 * and disable multi-rate retry.899 */900- if (flags && !ah->ah_caps.halHTSupport) {901 /*902 * Compute the transmit duration based on the frame903 * size and the size of an ACK frame. We call into the
···781 * let rate series flags determine which rates will actually782 * use RTS.783 */784+ if ((ah->ah_caps.hw_caps & ATH9K_HW_CAP_HT) && bf->bf_isdata) {785 BUG_ON(!an);786 /*787 * 802.11g protection not needed, use our default behavior···897 * For non-HT devices, calculate RTS/CTS duration in software898 * and disable multi-rate retry.899 */900+ if (flags && !(ah->ah_caps.hw_caps & ATH9K_HW_CAP_HT)) {901 /*902 * Compute the transmit duration based on the frame903 * size and the size of an ACK frame. We call into the