35#define AR_GPIOD_MASK 0x0000002F
92#ifdef AH_SUPPORT_WRITE_REGDOMAIN
95 "%s: set regulatory domain to %u (0x%x)\n",
125 if (
AH_PRIVATE(ah)->ah_caps.halChanQuarterRate)
137 if (
AH_PRIVATE(ah)->ah_caps.halChanQuarterRate)
151 uint16_t rfsilent =
AH_PRIVATE(ah)->ah_rfsilent;
179 static const uint32_t ledbits[8] = {
200 bits = (bits &~ AR_PCICFG_LEDMODE)
207 bits = (bits &~ AR_PCICFG_LEDCTL)
237 uint32_t low1, low2, u32;
256 return (((uint64_t) u32) << 32) | ((uint64_t) low2);
303 const struct ieee80211_channel *chan =
AH_PRIVATE(ah)->ah_curchan;
308 if (chan ==
AH_NULL || !IEEE80211_IS_CHAN_CCK(chan))
311 for (i = 0; i < rs->
rs_count; i++) {
314 if ((rset & 0x80) && (rset &= 0x7f) >= xset)
322 if (xset && xset/2 <= 2)
339 nf = 0 - ((nf ^ 0x1ff) + 1);
350 uint16_t macVersion, macRev;
361 return (
AH_PRIVATE(ah)->ah_macVersion == macVersion &&
425 return AH5212(ah)->ah_antControl;
432 const struct ieee80211_channel *chan =
AH_PRIVATE(ah)->ah_curchan;
591 uint32_t slot, timeout, eifs;
594 AH_PRIVATE(ah)->ah_coverageClass = coverageclass;
601 if (!IEEE80211_IS_CHAN_A(
AH_PRIVATE(ah)->ah_curchan))
608 slot = coverageclass * 3 * clkRate;
609 eifs = coverageclass * 6 * clkRate;
610 if (IEEE80211_IS_CHAN_HALF(
AH_PRIVATE(ah)->ah_curchan)) {
613 }
else if (IEEE80211_IS_CHAN_QUARTER(
AH_PRIVATE(ah)->ah_curchan)) {
771 static const struct {
789 for (i = 0; c->
channel <= adjustDef[i].freqLow; i++)
791 return adjustDef[i].adjust;
796 uint32_t capability, uint32_t *result)
798#define MACVERSION(ah) AH_PRIVATE(ah)->ah_macVersion
805 switch (capability) {
819 switch (capability) {
828 switch (capability) {
843 switch (capability) {
858 switch (capability) {
866 switch (capability) {
877 switch (capability) {
886 switch (capability) {
901 switch (capability) {
915 switch (capability) {
933 uint32_t capability, uint32_t setting,
HAL_STATUS *status)
935#define N(a) (sizeof(a)/sizeof(a[0]))
952 ahp->
ah_miscMode &= ~AR_MISC_MODE_MIC_NEW_LOC_ENABLE;
959 switch (capability) {
969 v &= ~AR_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV;
980 v &= ~AR_PHY_RESTART_DIV_GC;
1031 return capability <
N(cmds) ?
1032 AH5212(ah)->ah_aniControl(ah, cmds[capability], setting) :
1053 const void *args, uint32_t argsize,
1054 void **result, uint32_t *resultsize)
1069 args, argsize, result, resultsize);
1072 *resultsize = (*result ==
AH_NULL) ?
1085 *resultsize = (*result ==
AH_NULL) ?
1091 if (astats == NULL) {
1101 if (argsize != 2*
sizeof(uint32_t))
1103 AH5212(ah)->ah_aniControl(ah, ((
const uint32_t *)args)[0],
1104 ((
const uint32_t *)args)[1]);
1112 if (argsize == 0 && args ==
AH_NULL) {
1117 *result = __DECONST(
void *, aniState->
params);
1157 for (j = 0; j < i; j++) {
1172 val &= ~AR_PHY_RADAR_0_FIRPWR;
1176 val &= ~AR_PHY_RADAR_0_RRSSI;
1180 val &= ~AR_PHY_RADAR_0_HEIGHT;
1184 val &= ~AR_PHY_RADAR_0_PRSSI;
1188 val &= ~AR_PHY_RADAR_0_INBAND;
1194 val &= ~ AR_PHY_RADAR_0_ENA;
1251#define AR5212_DFS_FIRPWR -35
1252#define AR5212_DFS_RRSSI 20
1253#define AR5212_DFS_HEIGHT 14
1254#define AR5212_DFS_PRSSI 6
1255#define AR5212_DFS_INBAND 4
1260#define AR5413_DFS_FIRPWR -34
1261#define AR5413_DFS_RRSSI 20
1262#define AR5413_DFS_HEIGHT 10
1263#define AR5413_DFS_PRSSI 15
1264#define AR5413_DFS_INBAND 6
1265#define AR5413_DFS_RELPWR 8
1266#define AR5413_DFS_RELSTEP 31
1267#define AR5413_DFS_MAXLEN 255
1368 dur = ((uint8_t) buf[0]) & 0xff;
1373 rssi = (uint8_t) rxs->
rs_rssi;
1376 if (dur == 0 && rssi == 0)
1380 __func__, rssi, dur);
1383 event->re_full_ts = fulltsf;
1385 event->re_rssi = rssi;
1386 event->re_dur = dur;
1434 "%s: cycle counter wrap. ExtBusy = 0\n", __func__);
1458 uint32_t rx_chainmask)
1474 if (reg == 0xdeadbeef)
u_int ath_hal_mac_clks(struct ath_hal *ah, u_int usecs)
u_int ath_hal_mac_usec(struct ath_hal *ah, u_int clks)
@ HAL_MODE_11G_QUARTER_RATE
@ HAL_MODE_11A_QUARTER_RATE
#define HAL_PHYERR_PARAM_NOVAL
#define HAL_DFS_EVENT_PRICH
@ HAL_ANI_OFDM_WEAK_SIGNAL_DETECTION
@ HAL_ANI_NOISE_IMMUNITY_LEVEL
@ HAL_ANI_SPUR_IMMUNITY_LEVEL
@ HAL_ANI_CCK_WEAK_SIGNAL_THR
@ HAL_CAP_INTMIT_SPUR_IMMUNITY_LEVEL
@ HAL_CAP_INTMIT_FIRSTEP_LEVEL
@ HAL_CAP_INTMIT_CCK_WEAK_SIGNAL_THR
@ HAL_CAP_INTMIT_OFDM_WEAK_SIGNAL_LEVEL
@ HAL_CAP_INTMIT_NOISE_IMMUNITY_LEVEL
@ HAL_PHYERR_FALSE_RADAR_EXT
#define AR_SUBVENDOR_ID_NOG
@ HAL_DIAG_EEPROM_EXP_11G
@ HAL_DIAG_EEPROM_EXP_11B
@ HAL_DIAG_EEPROM_EXP_11A
@ HAL_DIAG_RFGAIN_CURSTEP
#define AR_EEPROM_REG_DOMAIN
#define AR_EEPROM_RFSILENT_GPIO_SEL
#define AR_EEPROM_RFSILENT_POLARITY
#define OS_REG_SET_BIT(_a, _r, _f)
#define HAL_CAP_STRONG_DIV
#define IEEE80211_ADDR_LEN
#define OS_REG_CLR_BIT(_a, _r, _f)
#define ath_hal_eepromWrite(_ah, _off, _data)
#define OS_REG_RMW_FIELD(_a, _r, _f, _v)
#define ath_hal_eepromDiag(_ah, _request, _a, _asize, _r, _rsize)
#define HALDEBUG(_ah, __m,...)
#define ath_hal_gpioCfgInput(_ah, _gpio)
#define ath_hal_eepromGetFlag(_ah, _param)
#define ath_hal_gpioGet(_ah, _gpio)
#define ath_hal_gpioSetIntr(_ah, _gpio, _ilevel)
#define OS_MEMZERO(_a, _n)
#define OS_REG_WRITE(_ah, _reg, _val)
#define OS_MEMCPY(_d, _s, _n)
#define OS_REG_READ(_ah, _reg)
#define AR_STA_ID1_ACKCTS_6MB
#define AR_BEACON_RESET_TSF
#define AR_PHY_AGC_CONTROL_NF
#define AR_PHY_RADAR_0_ENA
#define AR_PHY_CURRENT_RSSI
#define AR_PHY_AGC_CONTROL
#define AR_PCICFG_LEDCTL_NONE
#define AR_D_GBL_IFS_SLOT
#define AR_PCICFG_LEDMODE
#define AR_PCICFG_LEDCTL_PEND
#define AR_D_GBL_IFS_SIFS
#define AR_STA_ID1_BASE_RATE_11B
#define AR_PCICFG_LEDCTL_ASSOC
#define AR_D_GBL_IFS_EIFS
HAL_BOOL ar5212AniSetParams(struct ath_hal *, const struct ar5212AniParams *, const struct ar5212AniParams *)
void ar5212SetOperatingMode(struct ath_hal *ah, int opmode)
#define IFS_EIFS_QUARTER_RATE
#define HAL_DECOMP_MASK_SIZE
HAL_ANI_STATS * ar5212AniGetCurrentStats(struct ath_hal *)
#define IFS_EIFS_HALF_RATE
#define ACK_CTS_TIMEOUT_11A
#define IS_RAD5112_ANY(ah)
HAL_BOOL ar5212SetAntennaSwitchInternal(struct ath_hal *ah, HAL_ANT_SETTING settings, const struct ieee80211_channel *)
#define IFS_EIFS_FULL_RATE
#define IFS_SLOT_QUARTER_RATE
#define IFS_SLOT_FULL_RATE
struct ar5212AniState * ar5212AniGetCurrentState(struct ath_hal *)
#define IFS_SLOT_HALF_RATE
HAL_BOOL ar5212SetCapability(struct ath_hal *ah, HAL_CAPABILITY_TYPE type, uint32_t capability, uint32_t setting, HAL_STATUS *status)
HAL_BOOL ar5212WaitNFCalComplete(struct ath_hal *ah, int i)
HAL_BOOL ar5212SetAntennaSwitch(struct ath_hal *ah, HAL_ANT_SETTING setting)
HAL_BOOL ar5212SetSlotTime(struct ath_hal *ah, u_int us)
HAL_BOOL ar5212IsJapanChannelSpreadSupported(struct ath_hal *ah)
void ar5212GetDfsThresh(struct ath_hal *ah, HAL_PHYERR_PARAM *pe)
HAL_BOOL ar5212IsSleepAfterBeaconBroken(struct ath_hal *ah)
HAL_STATUS ar5212SetQuiet(struct ath_hal *ah, uint32_t period, uint32_t duration, uint32_t nextStart, HAL_QUIET_FLAG flag)
uint32_t ar5212GetTsf32(struct ath_hal *ah)
HAL_BOOL ar5212SetRegulatoryDomain(struct ath_hal *ah, uint16_t regDomain, HAL_STATUS *status)
void ar5212SetBasicRate(struct ath_hal *ah, HAL_RATE_SET *rs)
HAL_BOOL ar5212GetDfsDefaultThresh(struct ath_hal *ah, HAL_PHYERR_PARAM *pe)
u_int ar5212GetSifsTime(struct ath_hal *ah)
u_int ar5212GetSlotTime(struct ath_hal *ah)
HAL_BOOL ar5212SetBssIdMask(struct ath_hal *ah, const uint8_t *mask)
HAL_STATUS ar5212GetCapability(struct ath_hal *ah, HAL_CAPABILITY_TYPE type, uint32_t capability, uint32_t *result)
u_int ar5212GetAckCTSRate(struct ath_hal *ah)
#define AR5413_DFS_HEIGHT
int16_t ar5212GetNfAdjust(struct ath_hal *ah, const HAL_CHANNEL_INTERNAL *c)
void ar5212SetChainMasks(struct ath_hal *ah, uint32_t tx_chainmask, uint32_t rx_chainmask)
HAL_BOOL ar5212SetDecompMask(struct ath_hal *ah, uint16_t keyidx, int en)
HAL_BOOL ar5212IsFastClockEnabled(struct ath_hal *ah)
#define AR5413_DFS_MAXLEN
#define AR5413_DFS_RELSTEP
void ar5212EnableMibCounters(struct ath_hal *ah)
void ar5212UpdateMibCounters(struct ath_hal *ah, HAL_MIB_STATS *stats)
HAL_ANT_SETTING ar5212GetAntennaSwitch(struct ath_hal *ah)
void ar5212SetTsf64(struct ath_hal *ah, uint64_t tsf64)
u_int ar5212GetNav(struct ath_hal *ah)
u_int ar5212GetCTSTimeout(struct ath_hal *ah)
#define AR5212_DFS_FIRPWR
uint32_t ar5212Get11nExtBusy(struct ath_hal *ah)
#define AR5212_DFS_HEIGHT
void ar5212SetLedState(struct ath_hal *ah, HAL_LED_STATE state)
HAL_BOOL ar5212SetAckTimeout(struct ath_hal *ah, u_int us)
HAL_BOOL ar5212SetCTSTimeout(struct ath_hal *ah, u_int us)
HAL_BOOL ar5212SetAckCTSRate(struct ath_hal *ah, u_int high)
HAL_BOOL ar5212IsNFCalInProgress(struct ath_hal *ah)
HAL_BOOL ar5212GetMibCycleCounts(struct ath_hal *ah, HAL_SURVEY_SAMPLE *hsample)
u_int ar5212GetDefAntenna(struct ath_hal *ah)
void ar5212SetDefAntenna(struct ath_hal *ah, u_int antenna)
#define AR5413_DFS_RELPWR
void ar5212SetPCUConfig(struct ath_hal *ah)
void ar5212EnableDfs(struct ath_hal *ah, HAL_PHYERR_PARAM *pe)
#define AR5212_DFS_INBAND
uint32_t ar5212GetRandomSeed(struct ath_hal *ah)
u_int ar5212GetWirelessModes(struct ath_hal *ah)
HAL_BOOL ar5212ProcessRadarEvent(struct ath_hal *ah, struct ath_rx_status *rxs, uint64_t fulltsf, const char *buf, HAL_DFS_EVENT *event)
HAL_BOOL ar5212SetSifsTime(struct ath_hal *ah, u_int us)
void ar5212EnableRfKill(struct ath_hal *ah)
void ar5212GetBssIdMask(struct ath_hal *ah, uint8_t *mask)
void ar5212GetMacAddress(struct ath_hal *ah, uint8_t *mac)
uint64_t ar5212GetTsf64(struct ath_hal *ah)
void ar5212ResetTsf(struct ath_hal *ah)
#define AR5413_DFS_FIRPWR
void ar5212DisableMibCounters(struct ath_hal *ah)
HAL_BOOL ar5212SetMacAddress(struct ath_hal *ah, const uint8_t *mac)
void ar5212SetNav(struct ath_hal *ah, u_int val)
HAL_BOOL ar5212DetectCardPresent(struct ath_hal *ah)
HAL_BOOL ar5212GetDiagState(struct ath_hal *ah, int request, const void *args, uint32_t argsize, void **result, uint32_t *resultsize)
void ar5212SetupClock(struct ath_hal *ah, HAL_OPMODE opmode)
u_int ar5212GetAckTimeout(struct ath_hal *ah)
HAL_BOOL ar5212Use32KHzclock(struct ath_hal *ah, HAL_OPMODE opmode)
void ar5212WriteAssocid(struct ath_hal *ah, const uint8_t *bssid, uint16_t assocId)
#define AR5413_DFS_INBAND
void ar5212SetCoverageClass(struct ath_hal *ah, uint8_t coverageclass, int now)
uint32_t ar5212GetCurRssi(struct ath_hal *ah)
void ar5212RestoreClock(struct ath_hal *ah, HAL_OPMODE opmode)
#define AR_PHY_RADAR_0_INBAND
#define AR_PHY_CCK_DETECT
#define AR_PHY_RADAR_2_ENRELPWRCHK
#define AR_PHY_SLEEP_CTR_CONTROL
#define AR_PHY_RESTART_DIV_GC
#define AR_PHY_RADAR_0_PRSSI
#define AR_PHY_RADAR_0_HEIGHT
#define AR_PHY_RADAR_0_RRSSI
#define AR_PHY_RADAR_2_ENRELSTEPCHK
#define AR_PHY_RADAR_2_RELSTEP
#define AR_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV
#define AR_PHY_SLEEP_CTR_LIMIT
#define AR_PHY_RADAR_2_USEFIR128
#define AR_PHY_SLEEP_SCAL
#define AR_PHY_RADAR_2_RELPWR
#define AR_PHY_RADAR_2_MAXLEN
#define AR_PHY_RADAR_0_FIRPWR
#define AR_PHY_RADAR_2_ENMAXRSSI
#define AR_PHY_RADAR_2_BLOCKOFDMWEAK
#define AR_MISC_MODE_TX_ADD_TSF
#define AR_PCICFG_LEDMODE_NETON
#define AR_PCICFG_LEDMODE_POWON
#define AR_PCICFG_SCLK_RATE_IND
#define AR_STA_ID1_MCAST_KSRCH
#define AR_STA_ID1_CRPT_MIC_ENABLE
#define AR_MISC_MODE_MIC_NEW_LOC_ENABLE
#define AR_PCICFG_SCLK_SEL
#define AR_SREV_VERSION_VENICE
#define AR_QUIET2_QUIET_DUR_S
#define ath_hal_setcapability(_ah, _cap, _param, _v, _status)
#define ath_hal_getcapability(_ah, _cap, _param, _result)
#define ath_hal_getdiagstate(_ah, _id, _indata, _insize, _outdata, _outsize)
const GAIN_OPTIMIZATION_STEP * currStep
uint32_t halCipherAesCcmSupport
uint32_t halMcastKeySrchSupport
uint32_t halTsfAddSupport
uint32_t halTkipMicTxRxKeySupport
int32_t pe_en_relstep_check
uint8_t ofdmWeakSigDetectOff
uint8_t noiseImmunityLevel
uint8_t spurImmunityLevel
const struct ar5212AniParams * params
uint8_t cckWeakSigThreshold
GAIN_VALUES ah_gainValues
HAL_ANT_SETTING ah_antControl
int16_t ah_txPowerIndexOffset
enum ath_hal_5212::@23 ah_enable32kHzClock
uint8_t ah_bssidmask[IEEE80211_ADDR_LEN]
uint32_t ah_staId1Defaults
uint8_t ah_macaddr[IEEE80211_ADDR_LEN]
uint8_t ah_bssid[IEEE80211_ADDR_LEN]
uint16_t ah_ratesArray[37]
HAL_ANI_STATS ext_ani_stats
uint8_t ah_decompMask[HAL_DECOMP_MASK_SIZE]