70 static const uint32_t ledbits[8] = {
111 uint32_t low1, low2, u32;
130 return (((uint64_t) u32) << 32) | ((uint64_t) low2);
153 for (i = 0; i < 10; i++) {
160 ath_hal_printf(ah,
"%s: couldn't slew things right!\n", __func__);
176 for (i = 0; i < 10; i++) {
237 "%s: cycle counter wrap. ExtBusy = 0\n", __func__);
266 uint32_t rx_chainmask)
286 uint32_t cycleCount, ctlBusy, extBusy;
304 uint32_t ctlBusyDelta = ctlBusy - ahp->
ah_ctlBusy;
305 uint32_t extBusyDelta = extBusy - ahp->
ah_extBusy;
306 uint32_t ctlClearDelta = 0;
314 if (cycleDelta > ctlBusyDelta) {
315 ctlClearDelta = cycleDelta - ctlBusyDelta;
325 busy = (extBusyDelta * 100) / ctlClearDelta;
334 "extBusyDelta 0x%x, ctlClearDelta 0x%x, "
336 __func__, cycleDelta, ctlBusyDelta, extBusyDelta, ctlClearDelta, busy);
420#define TU_TO_USEC(_tu) ((_tu) << 10)
427 uint32_t nextStart_us =
TU_TO_USEC(nextStart);
450 uint32_t capability, uint32_t *result)
454 switch (capability) {
486 u_int32_t capability, u_int32_t setting,
HAL_STATUS *status)
517 &= ~AR_PCU_TXOP_TBTT_LIMIT_ENA;
533 const void *args, uint32_t argsize,
534 void **result, uint32_t *resultsize)
544 args, argsize, result, resultsize);
546 if (argsize !=
sizeof(
int))
548 hangs = *(
const int *) args;
556 *resultsize =
sizeof(ahp->
ah_hangs);
560 args, argsize, result, resultsize);
572 is_chan_2g = IEEE80211_IS_CHAN_2GHZ(chan);
575 is_ht40 = IEEE80211_IS_CHAN_HT40(chan);
585 val &= ~AR_PHY_RIFS_INIT_DELAY;
626 for (i = 0; i < 6; i++) {
627 if (((regs->
dma_dbg_4 >> (5*i)) & 0x1f) ==
631 for (i = 0; i < 4; i++) {
632 if (((regs->
dma_dbg_5 >> (5*i)) & 0x1f) ==
653 return (found_states == check->
states);
656#define NUM_STATUS_READS 50
663 .dcu_complete_state = 0x1,
669 .qcu_fetch_state = 0x8,
670 .qcu_complete_state = 0x4,
696 "DMADBG_3=0x%x DMADBG_4=0x%x DMADBG_5=0x%x DMADBG_6=0x%x\n",
709#define N(a) (sizeof(a)/sizeof(a[0]))
723 static const struct {
742 for (i = 0; i <
N(hang_list); i++)
743 if ((hang_sig & hang_list[i].mask) == hang_list[i].val) {
745 "%s BB hang, signature 0x%x, code 0x%x\n",
746 __func__, hang_sig, hang_list[i].code);
747 return hang_list[i].code;
751 "<0x806c>=0x%x\n", __func__, hang_sig);
756#undef NUM_STATUS_READS
@ HAL_MODE_11NG_HT40MINUS
@ HAL_MODE_11NA_HT40MINUS
@ HAL_QUIET_ADD_CURRENT_TSF
@ HAL_QUIET_ADD_SWBA_RESP_TIME
#define owl_get_ntxchains(_txchainmask)
#define OS_REG_SET_BIT(_a, _r, _f)
#define ath_hal_eepromGet(_ah, _param, _val)
#define OS_REG_CLR_BIT(_a, _r, _f)
#define OS_REG_RMW_FIELD(_a, _r, _f, _v)
#define ath_hal_eepromDiag(_ah, _request, _a, _asize, _r, _rsize)
#define HALDEBUG(_ah, __m,...)
void ath_hal_printf(struct ath_hal *, const char *,...)
#define OS_REG_WRITE(_ah, _reg, _val)
#define OS_REG_READ(_ah, _reg)
#define AR_PHY_CURRENT_RSSI
HAL_BOOL ar5212SetCapability(struct ath_hal *, HAL_CAPABILITY_TYPE, uint32_t, uint32_t, HAL_STATUS *)
void ar5212SetCoverageClass(struct ath_hal *, uint8_t, int)
u_int ar5212GetWirelessModes(struct ath_hal *ah)
HAL_STATUS ar5212GetCapability(struct ath_hal *, HAL_CAPABILITY_TYPE, uint32_t, uint32_t *)
HAL_BOOL ar5212GetDiagState(struct ath_hal *ah, int request, const void *args, uint32_t argsize, void **result, uint32_t *resultsize)
#define AR_QUIET2_QUIET_DUR
#define AR_QUIET1_QUIET_ACK_CTS_ENABLE
void ar5416ResetTsf(struct ath_hal *ah)
u_int ar5416GetWirelessModes(struct ath_hal *ah)
HAL_HT_RXCLEAR ar5416Get11nRxClear(struct ath_hal *ah)
uint64_t ar5416GetTsf64(struct ath_hal *ah)
static HAL_BOOL ar5416CompareDbgHang(struct ath_hal *ah, const mac_dbg_regs_t *regs, const hal_mac_hang_check_t *check)
HAL_STATUS ar5416GetCapability(struct ath_hal *ah, HAL_CAPABILITY_TYPE type, uint32_t capability, uint32_t *result)
void ar5416SetTsf64(struct ath_hal *ah, uint64_t tsf64)
HAL_BOOL ar5416GetMibCycleCounts(struct ath_hal *ah, HAL_SURVEY_SAMPLE *hsample)
uint32_t ar5416GetCurRssi(struct ath_hal *ah)
void ar5416Set11nMac2040(struct ath_hal *ah, HAL_HT_MACMODE mode)
void ar5416SetLedState(struct ath_hal *ah, HAL_LED_STATE state)
void ar5416SetChainMasks(struct ath_hal *ah, uint32_t tx_chainmask, uint32_t rx_chainmask)
static int ar5416DetectBBHang(struct ath_hal *ah)
HAL_BOOL ar5416SetCapability(struct ath_hal *ah, HAL_CAPABILITY_TYPE type, u_int32_t capability, u_int32_t setting, HAL_STATUS *status)
HAL_BOOL ar5416SetAntennaSwitch(struct ath_hal *ah, HAL_ANT_SETTING settings)
HAL_BOOL ar5416GetDiagState(struct ath_hal *ah, int request, const void *args, uint32_t argsize, void **result, uint32_t *resultsize)
HAL_BOOL ar5416SetDecompMask(struct ath_hal *ah, uint16_t keyidx, int en)
uint32_t ar5416Get11nExtBusy(struct ath_hal *ah)
void ar5416SetCoverageClass(struct ath_hal *ah, uint8_t coverageclass, int now)
HAL_STATUS ar5416SetQuiet(struct ath_hal *ah, uint32_t period, uint32_t duration, uint32_t nextStart, HAL_QUIET_FLAG flag)
HAL_BOOL ar5416SetRifsDelay(struct ath_hal *ah, const struct ieee80211_channel *chan, HAL_BOOL enable)
static int ar5416DetectMacHang(struct ath_hal *ah)
void ar5416Set11nRxClear(struct ath_hal *ah, HAL_HT_RXCLEAR rxclear)
#define AR9130_PHY_CURRENT_RSSI
#define AR_PHY_SEARCH_START_DELAY
#define AR_2040_JOINED_RX_CLEAR
#define AR_PHY_HEAVY_CLIP_FACTOR_RIFS
#define AR_DIAG_RXCLEAR_CTL_LOW
#define AR_SREV_SOWL(_ah)
#define AR_MAC_LED_ASSOC_ACTIVE
#define AR_DIAG_RXCLEAR_EXT_LOW
#define AR_MAC_LED_ASSOC_PEND
#define AR_PCU_TXOP_TBTT_LIMIT_ENA
#define AR_TIMER_MODE_QUIET
#define AR_RESET_TSF_ONCE
#define AR_MAC_LED_MODE_PROP
#define AR_SREV_HOWL(_ah)
#define AR_XSREV_VERSION_OWL_PCIE
#define AR_XSREV_VERSION_OWL_PCI
#define AR_SLP32_TSF_WRITE_STATUS
#define AR_SREV_MERLIN(_ah)
#define AR_MAC_LED_ASSOC_NONE
#define ath_hal_getdiagstate(_ah, _id, _indata, _insize, _outdata, _outsize)
int ah_sw_beacon_response_time
uint8_t dcu_complete_state
uint8_t qcu_complete_state