34 uint16_t flags, uint16_t *low, uint16_t *high);
36 struct ieee80211_channel *chan);
178#ifdef AH_SUPPORT_WRITE_EEPROM
193#define N(a) (sizeof(a)/sizeof(a[0]))
196 uint32_t revid, pcicfg;
202 "%s: devid 0x%x sc %p st %p sh %p\n", __func__, devid,
203 sc, (
void*) st, (
void*) sh);
209 "%s: no memory for state block\n", __func__);
250 for (i = 0; i < 4; i++)
270 "%s: cannot read regulatory domain from EEPROM\n",
278 "%s: error getting mac address from EEPROM\n", __func__);
321 uint16_t flags, uint16_t *low, uint16_t *high)
323 if (flags & IEEE80211_CHAN_5GHZ) {
337 "%s: no min/max power for %u/0x%x\n",
338 __func__, chan->ic_freq, chan->ic_flags);
340 chan->ic_minpower = 0;
418 return "Atheros 5210";
uint32_t ath_hal_reverseBits(uint32_t val, uint32_t n)
int16_t ath_hal_getChanNoise(struct ath_hal *ah, const struct ieee80211_channel *chan)
#define HAL_NUM_TX_QUEUES
#define ATHEROS_VENDOR_ID
HAL_STATUS ath_hal_v1EepromAttach(struct ath_hal *ah)
#define AR_EEPROM_RFSILENT_GPIO_SEL
#define AR_EEPROM_RFSILENT_POLARITY
#define ath_hal_eepromGet(_ah, _param, _val)
void * ath_hal_malloc(size_t)
#define HALDEBUG(_ah, __m,...)
#define ath_hal_eepromGetFlag(_ah, _param)
#define ath_hal_eepromDetach(_ah)
void ath_hal_free(void *p)
bus_space_tag_t HAL_BUS_TAG
#define OS_REG_WRITE(_ah, _reg, _val)
bus_space_handle_t HAL_BUS_HANDLE
#define OS_MEMCPY(_d, _s, _n)
#define OS_REG_READ(_ah, _reg)
int16_t ar5210GetNfAdjust(struct ath_hal *, const HAL_CHANNEL_INTERNAL *)
HAL_BOOL ar5210UpdateTxTrigLevel(struct ath_hal *, HAL_BOOL)
HAL_BOOL ar5210SetSlotTime(struct ath_hal *, u_int)
void ar5210StartPcuReceive(struct ath_hal *, HAL_BOOL)
HAL_RFGAIN ar5210GetRfgain(struct ath_hal *)
void ar5210IntrReqTxDesc(struct ath_hal *ah, struct ath_desc *)
const HAL_RATE_TABLE * ar5210GetRateTable(struct ath_hal *, u_int mode)
HAL_BOOL ar5210GetMibCycleCounts(struct ath_hal *, HAL_SURVEY_SAMPLE *)
HAL_BOOL ar5210SetKeyCacheEntryMac(struct ath_hal *, uint16_t, const uint8_t *)
u_int ar5210GetAckCTSRate(struct ath_hal *)
void ar5210EnableReceive(struct ath_hal *)
void ar5210RxMonitor(struct ath_hal *, const HAL_NODE_STATS *, const struct ieee80211_channel *)
HAL_BOOL ar5210SetKeyCacheEntry(struct ath_hal *, uint16_t entry, const HAL_KEYVAL *, const uint8_t *mac, int xorKey)
HAL_BOOL ar5210SetPowerMode(struct ath_hal *, uint32_t powerRequest, int setChip)
void ar5210GetBssIdMask(struct ath_hal *, uint8_t *)
HAL_ANT_SETTING ar5210GetAntennaSwitch(struct ath_hal *)
void ar5210SetLedState(struct ath_hal *, HAL_LED_STATE)
HAL_BOOL ar5210SetAckCTSRate(struct ath_hal *, u_int)
HAL_BOOL ar5210SetTxDP(struct ath_hal *, u_int, uint32_t txdp)
HAL_BOOL ar5210ChipReset(struct ath_hal *, struct ieee80211_channel *)
void ar5210AniPoll(struct ath_hal *, const struct ieee80211_channel *)
uint64_t ar5210GetNextTBTT(struct ath_hal *)
HAL_BOOL ar5210GpioSet(struct ath_hal *, uint32_t gpio, uint32_t)
HAL_BOOL ar5210SetupRxDesc(struct ath_hal *, struct ath_desc *, uint32_t, u_int flags)
HAL_POWER_MODE ar5210GetPowerMode(struct ath_hal *)
HAL_BOOL ar5210Disable(struct ath_hal *)
void ar5210ResetStaBeaconTimers(struct ath_hal *)
void ar5210StopPcuReceive(struct ath_hal *)
HAL_BOOL ar5210SetAckTimeout(struct ath_hal *, u_int)
void ar5210SetPCUConfig(struct ath_hal *)
HAL_BOOL ar5210SetMulticastFilterIndex(struct ath_hal *, uint32_t)
HAL_STATUS ar5210ProcRxDesc(struct ath_hal *, struct ath_desc *, uint32_t, struct ath_desc *, uint64_t, struct ath_rx_status *)
void ar5210GetMacAddress(struct ath_hal *, uint8_t *)
void ar5210SetBeaconTimers(struct ath_hal *, const HAL_BEACON_TIMERS *)
void ar5210BeaconInit(struct ath_hal *, uint32_t, uint32_t)
u_int ar5210GetKeyCacheSize(struct ath_hal *)
HAL_STATUS ar5210ProcTxDesc(struct ath_hal *, struct ath_desc *, struct ath_tx_status *)
HAL_BOOL ar5210StopDmaReceive(struct ath_hal *)
void ar5210MibEvent(struct ath_hal *, const HAL_NODE_STATS *)
HAL_BOOL ar5210ReleaseTxQueue(struct ath_hal *ah, u_int q)
uint32_t ar5210Get11nExtBusy(struct ath_hal *)
HAL_BOOL ar5210IsKeyCacheEntryValid(struct ath_hal *, uint16_t)
HAL_BOOL ar5210GpioCfgOutput(struct ath_hal *, uint32_t gpio, HAL_GPIO_MUX_TYPE)
void ar5210SetNav(struct ath_hal *ah, u_int val)
HAL_BOOL ar5210StartTxDma(struct ath_hal *, u_int)
uint32_t ar5210GpioGet(struct ath_hal *, uint32_t gpio)
HAL_BOOL ar5210GetPendingInterrupts(struct ath_hal *, HAL_INT *)
HAL_BOOL ar5210GpioCfgInput(struct ath_hal *, uint32_t gpio)
void ar5210EnableDfs(struct ath_hal *, HAL_PHYERR_PARAM *)
void ar5210GetTxDescLink(struct ath_hal *ah, void *ds, uint32_t *link)
void ar5210GetDfsThresh(struct ath_hal *, HAL_PHYERR_PARAM *)
void ar5210SetTxDescLink(struct ath_hal *ah, void *ds, uint32_t link)
int ar5210SetupTxQueue(struct ath_hal *ah, HAL_TX_QUEUE type, const HAL_TXQ_INFO *qInfo)
HAL_BOOL ar5210SetMacAddress(struct ath_hal *ah, const uint8_t *)
HAL_BOOL ar5210ResetKeyCacheEntry(struct ath_hal *, uint16_t entry)
HAL_BOOL ar5210IsInterruptPending(struct ath_hal *)
HAL_BOOL ar5210GetDiagState(struct ath_hal *ah, int request, const void *args, uint32_t argsize, void **result, uint32_t *resultsize)
void ar5210SetRxFilter(struct ath_hal *, uint32_t)
HAL_BOOL ar5210DetectCardPresent(struct ath_hal *)
HAL_BOOL ar5210GetTxCompletionRates(struct ath_hal *ah, const struct ath_desc *, int *rates, int *tries)
void ar5210SetStaBeaconTimers(struct ath_hal *, const HAL_BEACON_STATE *)
uint32_t ar5210GetTsf32(struct ath_hal *)
HAL_STATUS ar5210SetQuiet(struct ath_hal *, uint32_t, uint32_t, uint32_t, HAL_QUIET_FLAG)
HAL_BOOL ar5210Reset(struct ath_hal *, HAL_OPMODE, struct ieee80211_channel *, HAL_BOOL bChannelChange, HAL_RESET_TYPE, HAL_STATUS *)
HAL_BOOL ar5210SetCapability(struct ath_hal *, HAL_CAPABILITY_TYPE, uint32_t, uint32_t, HAL_STATUS *)
#define AR5210_MAX_RATE_POWER
HAL_BOOL ar5210ResetCalValid(struct ath_hal *ah, const struct ieee80211_channel *)
HAL_BOOL ar5210PhyDisable(struct ath_hal *)
u_int ar5210GetAckTimeout(struct ath_hal *)
HAL_STATUS ar5210GetCapability(struct ath_hal *, HAL_CAPABILITY_TYPE, uint32_t, uint32_t *)
HAL_BOOL ar5210SetCTSTimeout(struct ath_hal *, u_int)
void ar5210SetDefAntenna(struct ath_hal *, u_int)
HAL_BOOL ar5210PerCalibrationN(struct ath_hal *ah, struct ieee80211_channel *chan, u_int chainMask, HAL_BOOL longCal, HAL_BOOL *isCalDone)
void ar5210SetMulticastFilter(struct ath_hal *, uint32_t filter0, uint32_t filter1)
HAL_BOOL ar5210SetTxQueueProps(struct ath_hal *ah, int q, const HAL_TXQ_INFO *qInfo)
HAL_BOOL ar5210GetTxQueueProps(struct ath_hal *ah, int q, HAL_TXQ_INFO *qInfo)
void ar5210GetTxIntrQueue(struct ath_hal *ah, uint32_t *)
void ar5210GetTxDescLinkPtr(struct ath_hal *ah, void *ds, uint32_t **linkptr)
u_int ar5210GetCTSTimeout(struct ath_hal *)
HAL_BOOL ar5210StopTxDma(struct ath_hal *, u_int)
HAL_INT ar5210SetInterrupts(struct ath_hal *, HAL_INT ints)
void ar5210WriteAssocid(struct ath_hal *, const uint8_t *bssid, uint16_t assocId)
u_int ar5210GetNav(struct ath_hal *ah)
void ar5210UpdateMibCounters(struct ath_hal *, HAL_MIB_STATS *)
HAL_BOOL ar5210SetRegulatoryDomain(struct ath_hal *, uint16_t, HAL_STATUS *)
HAL_BOOL ar5210SetDecompMask(struct ath_hal *, uint16_t, int)
HAL_BOOL ar5210SetAntennaSwitch(struct ath_hal *, HAL_ANT_SETTING)
HAL_BOOL ar5210SetBssIdMask(struct ath_hal *, const uint8_t *)
HAL_BOOL ar5210ClrMulticastFilterIndex(struct ath_hal *, uint32_t)
HAL_BOOL ar5210SetTxPowerLimit(struct ath_hal *, uint32_t limit)
HAL_BOOL ar5210SetupTxDesc(struct ath_hal *, struct ath_desc *, u_int pktLen, u_int hdrLen, HAL_PKT_TYPE type, u_int txPower, u_int txRate0, u_int txRetries0, u_int keyIx, u_int antMode, u_int flags, u_int rtsctsRate, u_int rtsctsDuration, u_int compicvLen, u_int compivLen, u_int comp)
void ar5210ResetTsf(struct ath_hal *)
HAL_BOOL ar5210FillTxDesc(struct ath_hal *, struct ath_desc *, HAL_DMA_ADDR *bufAddrList, uint32_t *segLenList, u_int descId, u_int qcuId, HAL_BOOL firstSeg, HAL_BOOL lastSeg, const struct ath_desc *ds0)
HAL_BOOL ar5210EepromWrite(struct ath_hal *, u_int off, uint16_t data)
uint32_t ar5210NumTxPending(struct ath_hal *, u_int)
u_int ar5210GetWirelessModes(struct ath_hal *ah)
uint32_t ar5210GetRxFilter(struct ath_hal *)
uint32_t ar5210GetRxDP(struct ath_hal *, HAL_RX_QUEUE)
void ar5210Gpio0SetIntr(struct ath_hal *, u_int, uint32_t ilevel)
u_int ar5210GetDefAntenna(struct ath_hal *)
HAL_BOOL ar5210ResetTxQueue(struct ath_hal *ah, u_int q)
u_int ar5210GetSlotTime(struct ath_hal *)
uint64_t ar5210GetTsf64(struct ath_hal *)
HAL_BOOL ar5210SetupXTxDesc(struct ath_hal *, struct ath_desc *, u_int txRate1, u_int txRetries1, u_int txRate2, u_int txRetries2, u_int txRate3, u_int txRetries3)
HAL_BOOL ar5210SetSifsTime(struct ath_hal *, u_int)
void ar5210SetCoverageClass(struct ath_hal *, uint8_t, int)
HAL_INT ar5210GetInterrupts(struct ath_hal *)
HAL_BOOL ar5210EepromRead(struct ath_hal *, u_int off, uint16_t *data)
u_int ar5210GetSifsTime(struct ath_hal *)
uint32_t ar5210GetTxDP(struct ath_hal *, u_int)
HAL_BOOL ar5210PerCalibration(struct ath_hal *, struct ieee80211_channel *, HAL_BOOL *)
void ar5210SetRxDP(struct ath_hal *, uint32_t rxdp, HAL_RX_QUEUE)
void ar5210SetChainMasks(struct ath_hal *, uint32_t, uint32_t)
static const char * ar5210Probe(uint16_t vendorid, uint16_t devid)
void ar5210Detach(struct ath_hal *ah)
static void ar5210DisablePCIE(struct ath_hal *ah)
AH_CHIP(AR5210, ar5210Probe, ar5210Attach)
static HAL_BOOL ar5210FillCapabilityInfo(struct ath_hal *ah)
static const struct ath_hal_private ar5210hal
static void ar5210ConfigPCIE(struct ath_hal *ah, HAL_BOOL restore, HAL_BOOL power_on)
static HAL_BOOL ar5210GetChannelEdges(struct ath_hal *, uint16_t flags, uint16_t *low, uint16_t *high)
static HAL_BOOL ar5210GetChipPowerLimits(struct ath_hal *ah, struct ieee80211_channel *chan)
static struct ath_hal * ar5210Attach(uint16_t devid, HAL_SOFTC sc, HAL_BUS_TAG st, HAL_BUS_HANDLE sh, uint16_t *eepromdata, HAL_OPS_CONFIG *ah_config, HAL_STATUS *status)
#define AR_PCICFG_EEPROMSEL
uint32_t halRfSilentSupport
uint32_t halUseCombinedRadarRssi
uint32_t halWirelessModes
uint32_t halHasRxSelfLinkedTail
uint32_t halChanQuarterRate
uint32_t hal4kbSplitTransSupport
uint32_t halSleepAfterBeaconBroken
uint32_t ah_staId1Defaults
struct ath_hal_private ah_priv
uint8_t ah_macaddr[IEEE80211_ADDR_LEN]
HAL_BOOL ah_rfkillEnabled
HAL_POWER_MODE ah_powerMode