iPXE
mac.h File Reference
#include <unistd.h>

Go to the source code of this file.

Data Structures

struct  ath_tx_status
struct  ath_rx_status
struct  ath_htc_rx_status
struct  ath_desc
struct  ar5416_desc
struct  ath9k_tx_queue_info
struct  ath9k_11n_rate_series

Macros

#define RXSTATUS_RATE(ah, ads)
#define set11nTries(_series, _index)
#define set11nRate(_series, _index)
#define set11nPktDurRTSCTS(_series, _index)
#define set11nRateFlags(_series, _index)
#define CCK_SIFS_TIME   10
#define CCK_PREAMBLE_BITS   144
#define CCK_PLCP_BITS   48
#define OFDM_SIFS_TIME   16
#define OFDM_PREAMBLE_TIME   20
#define OFDM_PLCP_BITS   22
#define OFDM_SYMBOL_TIME   4
#define OFDM_SIFS_TIME_HALF   32
#define OFDM_PREAMBLE_TIME_HALF   40
#define OFDM_PLCP_BITS_HALF   22
#define OFDM_SYMBOL_TIME_HALF   8
#define OFDM_SIFS_TIME_QUARTER   64
#define OFDM_PREAMBLE_TIME_QUARTER   80
#define OFDM_PLCP_BITS_QUARTER   22
#define OFDM_SYMBOL_TIME_QUARTER   16
#define INIT_AIFS   2
#define INIT_CWMIN   15
#define INIT_CWMIN_11B   31
#define INIT_CWMAX   1023
#define INIT_SH_RETRY   10
#define INIT_LG_RETRY   10
#define INIT_SSH_RETRY   32
#define INIT_SLG_RETRY   32
#define ATH9K_SLOT_TIME_6   6
#define ATH9K_SLOT_TIME_9   9
#define ATH9K_SLOT_TIME_20   20
#define ATH9K_TXERR_XRETRY   0x01
#define ATH9K_TXERR_FILT   0x02
#define ATH9K_TXERR_FIFO   0x04
#define ATH9K_TXERR_XTXOP   0x08
#define ATH9K_TXERR_TIMER_EXPIRED   0x10
#define ATH9K_TX_ACKED   0x20
#define ATH9K_TXERR_MASK
#define ATH9K_TX_BA   0x01
#define ATH9K_TX_PWRMGMT   0x02
#define ATH9K_TX_DESC_CFG_ERR   0x04
#define ATH9K_TX_DATA_UNDERRUN   0x08
#define ATH9K_TX_DELIM_UNDERRUN   0x10
#define ATH9K_TX_SW_FILTERED   0x80
#define MIN_TX_FIFO_THRESHOLD   0x1
#define MAX_TX_FIFO_THRESHOLD   ((4096 / 64) - 1)
#define ATH9K_RXERR_CRC   0x01
#define ATH9K_RXERR_PHY   0x02
#define ATH9K_RXERR_FIFO   0x04
#define ATH9K_RXERR_DECRYPT   0x08
#define ATH9K_RXERR_MIC   0x10
#define ATH9K_RX_MORE   0x01
#define ATH9K_RX_MORE_AGGR   0x02
#define ATH9K_RX_GI   0x04
#define ATH9K_RX_2040   0x08
#define ATH9K_RX_DELIM_CRC_PRE   0x10
#define ATH9K_RX_DELIM_CRC_POST   0x20
#define ATH9K_RX_DECRYPT_BUSY   0x40
#define ATH9K_RXKEYIX_INVALID   ((u8)-1)
#define ATH9K_TXKEYIX_INVALID   ((u32)-1)
#define ATH9K_TXDESC_NOACK   0x0002
#define ATH9K_TXDESC_RTSENA   0x0004
#define ATH9K_TXDESC_CTSENA   0x0008
#define ATH9K_TXDESC_INTREQ   0x0010
#define ATH9K_TXDESC_VEOL   0x0020
#define ATH9K_TXDESC_EXT_ONLY   0x0040
#define ATH9K_TXDESC_EXT_AND_CTL   0x0080
#define ATH9K_TXDESC_VMF   0x0100
#define ATH9K_TXDESC_FRAG_IS_ON   0x0200
#define ATH9K_TXDESC_LOWRXCHAIN   0x0400
#define ATH9K_TXDESC_LDPC   0x00010000
#define ATH9K_RXDESC_INTREQ   0x0020
#define AR5416DESC(_ds)
#define AR5416DESC_CONST(_ds)
#define ds_ctl2   u.tx.ctl2
#define ds_ctl3   u.tx.ctl3
#define ds_ctl4   u.tx.ctl4
#define ds_ctl5   u.tx.ctl5
#define ds_ctl6   u.tx.ctl6
#define ds_ctl7   u.tx.ctl7
#define ds_ctl8   u.tx.ctl8
#define ds_ctl9   u.tx.ctl9
#define ds_ctl10   u.tx.ctl10
#define ds_ctl11   u.tx.ctl11
#define ds_txstatus0   u.tx.status0
#define ds_txstatus1   u.tx.status1
#define ds_txstatus2   u.tx.status2
#define ds_txstatus3   u.tx.status3
#define ds_txstatus4   u.tx.status4
#define ds_txstatus5   u.tx.status5
#define ds_txstatus6   u.tx.status6
#define ds_txstatus7   u.tx.status7
#define ds_txstatus8   u.tx.status8
#define ds_txstatus9   u.tx.status9
#define ds_rxstatus0   u.rx.status0
#define ds_rxstatus1   u.rx.status1
#define ds_rxstatus2   u.rx.status2
#define ds_rxstatus3   u.rx.status3
#define ds_rxstatus4   u.rx.status4
#define ds_rxstatus5   u.rx.status5
#define ds_rxstatus6   u.rx.status6
#define ds_rxstatus7   u.rx.status7
#define ds_rxstatus8   u.rx.status8
#define AR_FrameLen   0x00000fff
#define AR_VirtMoreFrag   0x00001000
#define AR_TxCtlRsvd00   0x0000e000
#define AR_XmitPower   0x003f0000
#define AR_XmitPower_S   16
#define AR_RTSEnable   0x00400000
#define AR_VEOL   0x00800000
#define AR_ClrDestMask   0x01000000
#define AR_TxCtlRsvd01   0x1e000000
#define AR_TxIntrReq   0x20000000
#define AR_DestIdxValid   0x40000000
#define AR_CTSEnable   0x80000000
#define AR_TxMore   0x00001000
#define AR_DestIdx   0x000fe000
#define AR_DestIdx_S   13
#define AR_FrameType   0x00f00000
#define AR_FrameType_S   20
#define AR_NoAck   0x01000000
#define AR_InsertTS   0x02000000
#define AR_CorruptFCS   0x04000000
#define AR_ExtOnly   0x08000000
#define AR_ExtAndCtl   0x10000000
#define AR_MoreAggr   0x20000000
#define AR_IsAggr   0x40000000
#define AR_BurstDur   0x00007fff
#define AR_BurstDur_S   0
#define AR_DurUpdateEna   0x00008000
#define AR_XmitDataTries0   0x000f0000
#define AR_XmitDataTries0_S   16
#define AR_XmitDataTries1   0x00f00000
#define AR_XmitDataTries1_S   20
#define AR_XmitDataTries2   0x0f000000
#define AR_XmitDataTries2_S   24
#define AR_XmitDataTries3   0xf0000000
#define AR_XmitDataTries3_S   28
#define AR_XmitRate0   0x000000ff
#define AR_XmitRate0_S   0
#define AR_XmitRate1   0x0000ff00
#define AR_XmitRate1_S   8
#define AR_XmitRate2   0x00ff0000
#define AR_XmitRate2_S   16
#define AR_XmitRate3   0xff000000
#define AR_XmitRate3_S   24
#define AR_PacketDur0   0x00007fff
#define AR_PacketDur0_S   0
#define AR_RTSCTSQual0   0x00008000
#define AR_PacketDur1   0x7fff0000
#define AR_PacketDur1_S   16
#define AR_RTSCTSQual1   0x80000000
#define AR_PacketDur2   0x00007fff
#define AR_PacketDur2_S   0
#define AR_RTSCTSQual2   0x00008000
#define AR_PacketDur3   0x7fff0000
#define AR_PacketDur3_S   16
#define AR_RTSCTSQual3   0x80000000
#define AR_AggrLen   0x0000ffff
#define AR_AggrLen_S   0
#define AR_TxCtlRsvd60   0x00030000
#define AR_PadDelim   0x03fc0000
#define AR_PadDelim_S   18
#define AR_EncrType   0x0c000000
#define AR_EncrType_S   26
#define AR_TxCtlRsvd61   0xf0000000
#define AR_LDPC   0x80000000
#define AR_2040_0   0x00000001
#define AR_GI0   0x00000002
#define AR_ChainSel0   0x0000001c
#define AR_ChainSel0_S   2
#define AR_2040_1   0x00000020
#define AR_GI1   0x00000040
#define AR_ChainSel1   0x00000380
#define AR_ChainSel1_S   7
#define AR_2040_2   0x00000400
#define AR_GI2   0x00000800
#define AR_ChainSel2   0x00007000
#define AR_ChainSel2_S   12
#define AR_2040_3   0x00008000
#define AR_GI3   0x00010000
#define AR_ChainSel3   0x000e0000
#define AR_ChainSel3_S   17
#define AR_RTSCTSRate   0x0ff00000
#define AR_RTSCTSRate_S   20
#define AR_STBC0   0x10000000
#define AR_STBC1   0x20000000
#define AR_STBC2   0x40000000
#define AR_STBC3   0x80000000
#define AR_TxRSSIAnt00   0x000000ff
#define AR_TxRSSIAnt00_S   0
#define AR_TxRSSIAnt01   0x0000ff00
#define AR_TxRSSIAnt01_S   8
#define AR_TxRSSIAnt02   0x00ff0000
#define AR_TxRSSIAnt02_S   16
#define AR_TxStatusRsvd00   0x3f000000
#define AR_TxBaStatus   0x40000000
#define AR_TxStatusRsvd01   0x80000000
#define AR_FrmXmitOK   0x00000001
#define AR_ExcessiveRetries   0x00000002
#define AR_FIFOUnderrun   0x00000004
#define AR_Filtered   0x00000008
#define AR_RTSFailCnt   0x000000f0
#define AR_RTSFailCnt_S   4
#define AR_DataFailCnt   0x00000f00
#define AR_DataFailCnt_S   8
#define AR_VirtRetryCnt   0x0000f000
#define AR_VirtRetryCnt_S   12
#define AR_TxDelimUnderrun   0x00010000
#define AR_TxDataUnderrun   0x00020000
#define AR_DescCfgErr   0x00040000
#define AR_TxTimerExpired   0x00080000
#define AR_TxStatusRsvd10   0xfff00000
#define AR_SendTimestamp   ds_txstatus2
#define AR_BaBitmapLow   ds_txstatus3
#define AR_BaBitmapHigh   ds_txstatus4
#define AR_TxRSSIAnt10   0x000000ff
#define AR_TxRSSIAnt10_S   0
#define AR_TxRSSIAnt11   0x0000ff00
#define AR_TxRSSIAnt11_S   8
#define AR_TxRSSIAnt12   0x00ff0000
#define AR_TxRSSIAnt12_S   16
#define AR_TxRSSICombined   0xff000000
#define AR_TxRSSICombined_S   24
#define AR_TxTid   0xf0000000
#define AR_TxTid_S   28
#define AR_TxEVM0   ds_txstatus5
#define AR_TxEVM1   ds_txstatus6
#define AR_TxEVM2   ds_txstatus7
#define AR_TxDone   0x00000001
#define AR_SeqNum   0x00001ffe
#define AR_SeqNum_S   1
#define AR_TxStatusRsvd80   0x0001e000
#define AR_TxOpExceeded   0x00020000
#define AR_TxStatusRsvd81   0x001c0000
#define AR_FinalTxIdx   0x00600000
#define AR_FinalTxIdx_S   21
#define AR_TxStatusRsvd82   0x01800000
#define AR_PowerMgmt   0x02000000
#define AR_TxStatusRsvd83   0xfc000000
#define AR_RxCTLRsvd00   0xffffffff
#define AR_RxCtlRsvd00   0x00001000
#define AR_RxIntrReq   0x00002000
#define AR_RxCtlRsvd01   0xffffc000
#define AR_RxRSSIAnt00   0x000000ff
#define AR_RxRSSIAnt00_S   0
#define AR_RxRSSIAnt01   0x0000ff00
#define AR_RxRSSIAnt01_S   8
#define AR_RxRSSIAnt02   0x00ff0000
#define AR_RxRSSIAnt02_S   16
#define AR_RxRate   0xff000000
#define AR_RxRate_S   24
#define AR_RxStatusRsvd00   0xff000000
#define AR_DataLen   0x00000fff
#define AR_RxMore   0x00001000
#define AR_NumDelim   0x003fc000
#define AR_NumDelim_S   14
#define AR_RxStatusRsvd10   0xff800000
#define AR_RcvTimestamp   ds_rxstatus2
#define AR_GI   0x00000001
#define AR_2040   0x00000002
#define AR_Parallel40   0x00000004
#define AR_Parallel40_S   2
#define AR_RxStatusRsvd30   0x000000f8
#define AR_RxAntenna   0xffffff00
#define AR_RxAntenna_S   8
#define AR_RxRSSIAnt10   0x000000ff
#define AR_RxRSSIAnt10_S   0
#define AR_RxRSSIAnt11   0x0000ff00
#define AR_RxRSSIAnt11_S   8
#define AR_RxRSSIAnt12   0x00ff0000
#define AR_RxRSSIAnt12_S   16
#define AR_RxRSSICombined   0xff000000
#define AR_RxRSSICombined_S   24
#define AR_RxEVM0   ds_rxstatus4
#define AR_RxEVM1   ds_rxstatus5
#define AR_RxEVM2   ds_rxstatus6
#define AR_RxDone   0x00000001
#define AR_RxFrameOK   0x00000002
#define AR_CRCErr   0x00000004
#define AR_DecryptCRCErr   0x00000008
#define AR_PHYErr   0x00000010
#define AR_MichaelErr   0x00000020
#define AR_PreDelimCRCErr   0x00000040
#define AR_RxStatusRsvd70   0x00000080
#define AR_RxKeyIdxValid   0x00000100
#define AR_KeyIdx   0x0000fe00
#define AR_KeyIdx_S   9
#define AR_PHYErrCode   0x0000ff00
#define AR_PHYErrCode_S   8
#define AR_RxMoreAggr   0x00010000
#define AR_RxAggr   0x00020000
#define AR_PostDelimCRCErr   0x00040000
#define AR_RxStatusRsvd71   0x3ff80000
#define AR_DecryptBusyErr   0x40000000
#define AR_KeyMiss   0x80000000
#define ATH9K_NUM_TX_QUEUES   1
#define ATH9K_WME_UPSD   4
#define ATH9K_TXQ_USEDEFAULT   ((u32) -1)
#define ATH9K_TXQ_USE_LOCKOUT_BKOFF_DIS   0x00000001
#define ATH9K_DECOMP_MASK_SIZE   128
#define ATH9K_READY_TIME_LO_BOUND   50
#define ATH9K_READY_TIME_HI_BOUND   96
#define ATH9K_RATESERIES_RTS_CTS   0x0001
#define ATH9K_RATESERIES_2040   0x0002
#define ATH9K_RATESERIES_HALFGI   0x0004
#define ATH9K_RATESERIES_STBC   0x0008

Enumerations

enum  ath9k_phyerr {
  ATH9K_PHYERR_UNDERRUN = 0 , ATH9K_PHYERR_TIMING = 1 , ATH9K_PHYERR_PARITY = 2 , ATH9K_PHYERR_RATE = 3 ,
  ATH9K_PHYERR_LENGTH = 4 , ATH9K_PHYERR_RADAR = 5 , ATH9K_PHYERR_SERVICE = 6 , ATH9K_PHYERR_TOR = 7 ,
  ATH9K_PHYERR_OFDM_TIMING = 17 , ATH9K_PHYERR_OFDM_SIGNAL_PARITY = 18 , ATH9K_PHYERR_OFDM_RATE_ILLEGAL = 19 , ATH9K_PHYERR_OFDM_LENGTH_ILLEGAL = 20 ,
  ATH9K_PHYERR_OFDM_POWER_DROP = 21 , ATH9K_PHYERR_OFDM_SERVICE = 22 , ATH9K_PHYERR_OFDM_RESTART = 23 , ATH9K_PHYERR_FALSE_RADAR_EXT = 24 ,
  ATH9K_PHYERR_CCK_TIMING = 25 , ATH9K_PHYERR_CCK_HEADER_CRC = 26 , ATH9K_PHYERR_CCK_RATE_ILLEGAL = 27 , ATH9K_PHYERR_CCK_SERVICE = 30 ,
  ATH9K_PHYERR_CCK_RESTART = 31 , ATH9K_PHYERR_CCK_LENGTH_ILLEGAL = 32 , ATH9K_PHYERR_CCK_POWER_DROP = 33 , ATH9K_PHYERR_HT_CRC_ERROR = 34 ,
  ATH9K_PHYERR_HT_LENGTH_ILLEGAL = 35 , ATH9K_PHYERR_HT_RATE_ILLEGAL = 36 , ATH9K_PHYERR_MAX = 37
}
enum  ath9k_tx_queue { ATH9K_TX_QUEUE_INACTIVE = 0 , ATH9K_TX_QUEUE_DATA }
enum  ath9k_tx_queue_flags {
  TXQ_FLAG_TXOKINT_ENABLE = 0x0001 , TXQ_FLAG_TXERRINT_ENABLE = 0x0001 , TXQ_FLAG_TXDESCINT_ENABLE = 0x0002 , TXQ_FLAG_TXEOLINT_ENABLE = 0x0004 ,
  TXQ_FLAG_TXURNINT_ENABLE = 0x0008 , TXQ_FLAG_BACKOFF_DISABLE = 0x0010 , TXQ_FLAG_COMPRESSION_ENABLE = 0x0020 , TXQ_FLAG_RDYTIME_EXP_POLICY_ENABLE = 0x0040 ,
  TXQ_FLAG_FRAG_BURST_BACKOFF_ENABLE = 0x0080
}
enum  ath9k_pkt_type {
  ATH9K_PKT_TYPE_NORMAL = 0 , ATH9K_PKT_TYPE_ATIM , ATH9K_PKT_TYPE_PSPOLL , ATH9K_PKT_TYPE_BEACON ,
  ATH9K_PKT_TYPE_PROBE_RESP , ATH9K_PKT_TYPE_CHIRP , ATH9K_PKT_TYPE_GRP_POLL
}
enum  ath9k_rx_filter {
  ATH9K_RX_FILTER_UCAST = 0x00000001 , ATH9K_RX_FILTER_MCAST = 0x00000002 , ATH9K_RX_FILTER_BCAST = 0x00000004 , ATH9K_RX_FILTER_CONTROL = 0x00000008 ,
  ATH9K_RX_FILTER_BEACON = 0x00000010 , ATH9K_RX_FILTER_PROM = 0x00000020 , ATH9K_RX_FILTER_PROBEREQ = 0x00000080 , ATH9K_RX_FILTER_PHYERR = 0x00000100 ,
  ATH9K_RX_FILTER_MYBEACON = 0x00000200 , ATH9K_RX_FILTER_COMP_BAR = 0x00000400 , ATH9K_RX_FILTER_COMP_BA = 0x00000800 , ATH9K_RX_FILTER_UNCOMP_BA_BAR = 0x00001000 ,
  ATH9K_RX_FILTER_PSPOLL = 0x00004000 , ATH9K_RX_FILTER_PHYRADAR = 0x00002000 , ATH9K_RX_FILTER_MCAST_BCAST_ALL = 0x00008000
}
enum  ath9k_key_type { ATH9K_KEY_TYPE_CLEAR , ATH9K_KEY_TYPE_WEP , ATH9K_KEY_TYPE_AES , ATH9K_KEY_TYPE_TKIP }

Functions

 FILE_LICENCE (BSD2)
 FILE_SECBOOT (FORBIDDEN)
u32 ath9k_hw_gettxbuf (struct ath_hw *ah, u32 q)
void ath9k_hw_puttxbuf (struct ath_hw *ah, u32 q, u32 txdp)
void ath9k_hw_txstart (struct ath_hw *ah, u32 q)
void ath9k_hw_cleartxdesc (struct ath_hw *ah, void *ds)
u32 ath9k_hw_numtxpending (struct ath_hw *ah, u32 q)
int ath9k_hw_updatetxtriglevel (struct ath_hw *ah, int bIncTrigLevel)
 ath9k_hw_updatetxtriglevel - adjusts the frame trigger level
int ath9k_hw_stop_dma_queue (struct ath_hw *ah, u32 q)
void ath9k_hw_abort_tx_dma (struct ath_hw *ah)
void ath9k_hw_gettxintrtxqs (struct ath_hw *ah, u32 *txqs)
int ath9k_hw_set_txq_props (struct ath_hw *ah, int q, const struct ath9k_tx_queue_info *qinfo)
int ath9k_hw_get_txq_props (struct ath_hw *ah, int q, struct ath9k_tx_queue_info *qinfo)
int ath9k_hw_setuptxqueue (struct ath_hw *ah, enum ath9k_tx_queue type, const struct ath9k_tx_queue_info *qinfo)
int ath9k_hw_releasetxqueue (struct ath_hw *ah, u32 q)
int ath9k_hw_resettxqueue (struct ath_hw *ah, u32 q)
int ath9k_hw_rxprocdesc (struct ath_hw *ah, struct ath_desc *ds, struct ath_rx_status *rs, u64 tsf)
void ath9k_hw_setuprxdesc (struct ath_hw *ah, struct ath_desc *ds, u32 size, u32 flags)
int ath9k_hw_setrxabort (struct ath_hw *ah, int set)
void ath9k_hw_putrxbuf (struct ath_hw *ah, u32 rxdp)
void ath9k_hw_startpcureceive (struct ath_hw *ah, int is_scanning)
void ath9k_hw_abortpcurecv (struct ath_hw *ah)
int ath9k_hw_stopdmarecv (struct ath_hw *ah, int *reset)
int ath9k_hw_intrpend (struct ath_hw *ah)
void ath9k_hw_set_interrupts (struct ath_hw *ah, unsigned int ints)
void ath9k_hw_enable_interrupts (struct ath_hw *ah)
void ath9k_hw_disable_interrupts (struct ath_hw *ah)
void ar9002_hw_attach_mac_ops (struct ath_hw *ah)

Macro Definition Documentation

◆ RXSTATUS_RATE

#define RXSTATUS_RATE ( ah,
ads )
Value:
MS(ads->ds_rxstatus0, AR_RxRate) : \
(ads->ds_rxstatus3 >> 2) & 0xFF)
#define AR_SREV_5416_20_OR_LATER(_ah)
Definition reg.h:802
#define AR_RxRate
Definition mac.h:523
#define ds_rxstatus3
Definition mac.h:347
uint8_t ah
Definition registers.h:1

Definition at line 28 of file mac.h.

28#define RXSTATUS_RATE(ah, ads) (AR_SREV_5416_20_OR_LATER(ah) ? \
29 MS(ads->ds_rxstatus0, AR_RxRate) : \
30 (ads->ds_rxstatus3 >> 2) & 0xFF)

Referenced by ath9k_hw_rxprocdesc().

◆ set11nTries

#define set11nTries ( _series,
_index )
Value:
(SM((_series)[_index].Tries, AR_XmitDataTries##_index))
#define SM(_v, _f)
Definition hw.h:102

Definition at line 32 of file mac.h.

32#define set11nTries(_series, _index) \
33 (SM((_series)[_index].Tries, AR_XmitDataTries##_index))

Referenced by ar9002_hw_set11n_ratescenario(), and ar9003_hw_set11n_ratescenario().

◆ set11nRate

#define set11nRate ( _series,
_index )
Value:
(SM((_series)[_index].Rate, AR_XmitRate##_index))

Definition at line 35 of file mac.h.

35#define set11nRate(_series, _index) \
36 (SM((_series)[_index].Rate, AR_XmitRate##_index))

Referenced by ar9002_hw_set11n_ratescenario(), and ar9003_hw_set11n_ratescenario().

◆ set11nPktDurRTSCTS

#define set11nPktDurRTSCTS ( _series,
_index )
Value:
(SM((_series)[_index].PktDuration, AR_PacketDur##_index) | \
((_series)[_index].RateFlags & ATH9K_RATESERIES_RTS_CTS ? \
AR_RTSCTSQual##_index : 0))
#define ATH9K_RATESERIES_RTS_CTS
Definition mac.h:652

Definition at line 38 of file mac.h.

38#define set11nPktDurRTSCTS(_series, _index) \
39 (SM((_series)[_index].PktDuration, AR_PacketDur##_index) | \
40 ((_series)[_index].RateFlags & ATH9K_RATESERIES_RTS_CTS ? \
41 AR_RTSCTSQual##_index : 0))

Referenced by ar9002_hw_set11n_ratescenario(), and ar9003_hw_set11n_ratescenario().

◆ set11nRateFlags

#define set11nRateFlags ( _series,
_index )
Value:
(((_series)[_index].RateFlags & ATH9K_RATESERIES_2040 ? \
AR_2040_##_index : 0) \
|((_series)[_index].RateFlags & ATH9K_RATESERIES_HALFGI ? \
AR_GI##_index : 0) \
|((_series)[_index].RateFlags & ATH9K_RATESERIES_STBC ? \
AR_STBC##_index : 0) \
|SM((_series)[_index].ChSel, AR_ChainSel##_index))
#define ATH9K_RATESERIES_2040
Definition mac.h:653
#define ATH9K_RATESERIES_STBC
Definition mac.h:655
#define AR_GI
Definition mac.h:535
#define ATH9K_RATESERIES_HALFGI
Definition mac.h:654

Definition at line 43 of file mac.h.

43#define set11nRateFlags(_series, _index) \
44 (((_series)[_index].RateFlags & ATH9K_RATESERIES_2040 ? \
45 AR_2040_##_index : 0) \
46 |((_series)[_index].RateFlags & ATH9K_RATESERIES_HALFGI ? \
47 AR_GI##_index : 0) \
48 |((_series)[_index].RateFlags & ATH9K_RATESERIES_STBC ? \
49 AR_STBC##_index : 0) \
50 |SM((_series)[_index].ChSel, AR_ChainSel##_index))

Referenced by ar9002_hw_set11n_ratescenario(), and ar9003_hw_set11n_ratescenario().

◆ CCK_SIFS_TIME

#define CCK_SIFS_TIME   10

Definition at line 52 of file mac.h.

Referenced by ath9k_hw_computetxtime().

◆ CCK_PREAMBLE_BITS

#define CCK_PREAMBLE_BITS   144

Definition at line 53 of file mac.h.

Referenced by ath9k_hw_computetxtime().

◆ CCK_PLCP_BITS

#define CCK_PLCP_BITS   48

Definition at line 54 of file mac.h.

Referenced by ath9k_hw_computetxtime().

◆ OFDM_SIFS_TIME

#define OFDM_SIFS_TIME   16

Definition at line 56 of file mac.h.

Referenced by ath9k_hw_computetxtime().

◆ OFDM_PREAMBLE_TIME

#define OFDM_PREAMBLE_TIME   20

Definition at line 57 of file mac.h.

Referenced by ath9k_hw_computetxtime().

◆ OFDM_PLCP_BITS

#define OFDM_PLCP_BITS   22

Definition at line 58 of file mac.h.

◆ OFDM_SYMBOL_TIME

#define OFDM_SYMBOL_TIME   4

Definition at line 59 of file mac.h.

Referenced by ath9k_hw_computetxtime().

◆ OFDM_SIFS_TIME_HALF

#define OFDM_SIFS_TIME_HALF   32

Definition at line 61 of file mac.h.

Referenced by ath9k_hw_computetxtime().

◆ OFDM_PREAMBLE_TIME_HALF

#define OFDM_PREAMBLE_TIME_HALF   40

Definition at line 62 of file mac.h.

Referenced by ath9k_hw_computetxtime().

◆ OFDM_PLCP_BITS_HALF

#define OFDM_PLCP_BITS_HALF   22

Definition at line 63 of file mac.h.

◆ OFDM_SYMBOL_TIME_HALF

#define OFDM_SYMBOL_TIME_HALF   8

Definition at line 64 of file mac.h.

Referenced by ath9k_hw_computetxtime().

◆ OFDM_SIFS_TIME_QUARTER

#define OFDM_SIFS_TIME_QUARTER   64

Definition at line 66 of file mac.h.

Referenced by ath9k_hw_computetxtime().

◆ OFDM_PREAMBLE_TIME_QUARTER

#define OFDM_PREAMBLE_TIME_QUARTER   80

Definition at line 67 of file mac.h.

Referenced by ath9k_hw_computetxtime().

◆ OFDM_PLCP_BITS_QUARTER

#define OFDM_PLCP_BITS_QUARTER   22

Definition at line 68 of file mac.h.

◆ OFDM_SYMBOL_TIME_QUARTER

#define OFDM_SYMBOL_TIME_QUARTER   16

Definition at line 69 of file mac.h.

Referenced by ath9k_hw_computetxtime().

◆ INIT_AIFS

#define INIT_AIFS   2

Definition at line 71 of file mac.h.

Referenced by ath9k_hw_set_txq_props(), and ath9k_hw_setuptxqueue().

◆ INIT_CWMIN

#define INIT_CWMIN   15

Definition at line 72 of file mac.h.

Referenced by ath9k_hw_resettxqueue().

◆ INIT_CWMIN_11B

#define INIT_CWMIN_11B   31

Definition at line 73 of file mac.h.

Referenced by ath9k_hw_resettxqueue().

◆ INIT_CWMAX

#define INIT_CWMAX   1023

Definition at line 74 of file mac.h.

Referenced by ath9k_hw_set_txq_props(), and ath9k_hw_setuptxqueue().

◆ INIT_SH_RETRY

#define INIT_SH_RETRY   10

Definition at line 75 of file mac.h.

Referenced by ath9k_hw_set_txq_props(), and ath9k_hw_setuptxqueue().

◆ INIT_LG_RETRY

#define INIT_LG_RETRY   10

Definition at line 76 of file mac.h.

Referenced by ath9k_hw_set_txq_props(), and ath9k_hw_setuptxqueue().

◆ INIT_SSH_RETRY

#define INIT_SSH_RETRY   32

Definition at line 77 of file mac.h.

Referenced by ath9k_hw_resettxqueue().

◆ INIT_SLG_RETRY

#define INIT_SLG_RETRY   32

Definition at line 78 of file mac.h.

Referenced by ath9k_hw_resettxqueue().

◆ ATH9K_SLOT_TIME_6

#define ATH9K_SLOT_TIME_6   6

Definition at line 80 of file mac.h.

◆ ATH9K_SLOT_TIME_9

#define ATH9K_SLOT_TIME_9   9

Definition at line 81 of file mac.h.

◆ ATH9K_SLOT_TIME_20

#define ATH9K_SLOT_TIME_20   20

Definition at line 82 of file mac.h.

◆ ATH9K_TXERR_XRETRY

#define ATH9K_TXERR_XRETRY   0x01

Definition at line 84 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), ar9003_hw_proc_txdesc(), and ath_tx_processq().

◆ ATH9K_TXERR_FILT

#define ATH9K_TXERR_FILT   0x02

Definition at line 85 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ ATH9K_TXERR_FIFO

#define ATH9K_TXERR_FIFO   0x04

Definition at line 86 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ ATH9K_TXERR_XTXOP

#define ATH9K_TXERR_XTXOP   0x08

Definition at line 87 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ ATH9K_TXERR_TIMER_EXPIRED

#define ATH9K_TXERR_TIMER_EXPIRED   0x10

Definition at line 88 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ ATH9K_TX_ACKED

#define ATH9K_TX_ACKED   0x20

Definition at line 89 of file mac.h.

Referenced by ar9002_hw_proc_txdesc().

◆ ATH9K_TXERR_MASK

#define ATH9K_TXERR_MASK
Value:
#define ATH9K_TXERR_FIFO
Definition mac.h:86
#define ATH9K_TXERR_FILT
Definition mac.h:85
#define ATH9K_TXERR_XRETRY
Definition mac.h:84
#define ATH9K_TXERR_TIMER_EXPIRED
Definition mac.h:88
#define ATH9K_TXERR_XTXOP
Definition mac.h:87

Definition at line 90 of file mac.h.

90#define ATH9K_TXERR_MASK \
91 (ATH9K_TXERR_XRETRY | ATH9K_TXERR_FILT | ATH9K_TXERR_FIFO | \
92 ATH9K_TXERR_XTXOP | ATH9K_TXERR_TIMER_EXPIRED)

Referenced by ath_tx_complete(), and ath_tx_processq().

◆ ATH9K_TX_BA

#define ATH9K_TX_BA   0x01

Definition at line 94 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ ATH9K_TX_PWRMGMT

#define ATH9K_TX_PWRMGMT   0x02

Definition at line 95 of file mac.h.

◆ ATH9K_TX_DESC_CFG_ERR

#define ATH9K_TX_DESC_CFG_ERR   0x04

Definition at line 96 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ ATH9K_TX_DATA_UNDERRUN

#define ATH9K_TX_DATA_UNDERRUN   0x08

Definition at line 97 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ ATH9K_TX_DELIM_UNDERRUN

#define ATH9K_TX_DELIM_UNDERRUN   0x10

Definition at line 98 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ ATH9K_TX_SW_FILTERED

#define ATH9K_TX_SW_FILTERED   0x80

Definition at line 99 of file mac.h.

◆ MIN_TX_FIFO_THRESHOLD

#define MIN_TX_FIFO_THRESHOLD   0x1

Definition at line 102 of file mac.h.

Referenced by ath9k_hw_updatetxtriglevel().

◆ MAX_TX_FIFO_THRESHOLD

#define MAX_TX_FIFO_THRESHOLD   ((4096 / 64) - 1)

Definition at line 109 of file mac.h.

Referenced by __ath9k_hw_init().

◆ ATH9K_RXERR_CRC

#define ATH9K_RXERR_CRC   0x01

Definition at line 190 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), ath9k_hw_rxprocdesc(), and ath9k_rx_accept().

◆ ATH9K_RXERR_PHY

#define ATH9K_RXERR_PHY   0x02

Definition at line 191 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), ath9k_hw_rxprocdesc(), and ath9k_rx_accept().

◆ ATH9K_RXERR_FIFO

#define ATH9K_RXERR_FIFO   0x04

Definition at line 192 of file mac.h.

◆ ATH9K_RXERR_DECRYPT

#define ATH9K_RXERR_DECRYPT   0x08

Definition at line 193 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), ath9k_hw_rxprocdesc(), and ath9k_rx_accept().

◆ ATH9K_RXERR_MIC

#define ATH9K_RXERR_MIC   0x10

Definition at line 194 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), ath9k_hw_rxprocdesc(), and ath9k_rx_accept().

◆ ATH9K_RX_MORE

#define ATH9K_RX_MORE   0x01

Definition at line 196 of file mac.h.

◆ ATH9K_RX_MORE_AGGR

#define ATH9K_RX_MORE_AGGR   0x02

Definition at line 197 of file mac.h.

◆ ATH9K_RX_GI

#define ATH9K_RX_GI   0x04

Definition at line 198 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ ATH9K_RX_2040

#define ATH9K_RX_2040   0x08

Definition at line 199 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ ATH9K_RX_DELIM_CRC_PRE

#define ATH9K_RX_DELIM_CRC_PRE   0x10

Definition at line 200 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ ATH9K_RX_DELIM_CRC_POST

#define ATH9K_RX_DELIM_CRC_POST   0x20

Definition at line 201 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ ATH9K_RX_DECRYPT_BUSY

#define ATH9K_RX_DECRYPT_BUSY   0x40

Definition at line 202 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ ATH9K_RXKEYIX_INVALID

#define ATH9K_RXKEYIX_INVALID   ((u8)-1)

Definition at line 204 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ ATH9K_TXKEYIX_INVALID

#define ATH9K_TXKEYIX_INVALID   ((u32)-1)

Definition at line 205 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), ar9003_hw_set11n_txdesc(), and ath_tx_setup_buffer().

◆ ATH9K_TXDESC_NOACK

#define ATH9K_TXDESC_NOACK   0x0002

Definition at line 250 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ ATH9K_TXDESC_RTSENA

#define ATH9K_TXDESC_RTSENA   0x0004

◆ ATH9K_TXDESC_CTSENA

#define ATH9K_TXDESC_CTSENA   0x0008

◆ ATH9K_TXDESC_INTREQ

#define ATH9K_TXDESC_INTREQ   0x0010

Definition at line 266 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and setup_tx_flags().

◆ ATH9K_TXDESC_VEOL

#define ATH9K_TXDESC_VEOL   0x0020

Definition at line 267 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ ATH9K_TXDESC_EXT_ONLY

#define ATH9K_TXDESC_EXT_ONLY   0x0040

Definition at line 268 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ ATH9K_TXDESC_EXT_AND_CTL

#define ATH9K_TXDESC_EXT_AND_CTL   0x0080

Definition at line 269 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ ATH9K_TXDESC_VMF

#define ATH9K_TXDESC_VMF   0x0100

Definition at line 270 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ ATH9K_TXDESC_FRAG_IS_ON

#define ATH9K_TXDESC_FRAG_IS_ON   0x0200

Definition at line 271 of file mac.h.

◆ ATH9K_TXDESC_LOWRXCHAIN

#define ATH9K_TXDESC_LOWRXCHAIN   0x0400

Definition at line 272 of file mac.h.

Referenced by ar9003_hw_set11n_txdesc().

◆ ATH9K_TXDESC_LDPC

#define ATH9K_TXDESC_LDPC   0x00010000

Definition at line 273 of file mac.h.

Referenced by ar9003_hw_set11n_txdesc().

◆ ATH9K_RXDESC_INTREQ

#define ATH9K_RXDESC_INTREQ   0x0020

Definition at line 275 of file mac.h.

Referenced by ath9k_hw_setuprxdesc().

◆ AR5416DESC

◆ AR5416DESC_CONST

#define AR5416DESC_CONST ( _ds)
Value:
((const struct ar5416_desc *)(_ds))

Definition at line 320 of file mac.h.

Referenced by ar9002_hw_fill_txdesc().

◆ ds_ctl2

#define ds_ctl2   u.tx.ctl2

Definition at line 322 of file mac.h.

◆ ds_ctl3

#define ds_ctl3   u.tx.ctl3

Definition at line 323 of file mac.h.

◆ ds_ctl4

#define ds_ctl4   u.tx.ctl4

Definition at line 324 of file mac.h.

◆ ds_ctl5

#define ds_ctl5   u.tx.ctl5

Definition at line 325 of file mac.h.

◆ ds_ctl6

#define ds_ctl6   u.tx.ctl6

Definition at line 326 of file mac.h.

◆ ds_ctl7

#define ds_ctl7   u.tx.ctl7

Definition at line 327 of file mac.h.

◆ ds_ctl8

#define ds_ctl8   u.tx.ctl8

Definition at line 328 of file mac.h.

◆ ds_ctl9

#define ds_ctl9   u.tx.ctl9

Definition at line 329 of file mac.h.

◆ ds_ctl10

#define ds_ctl10   u.tx.ctl10

Definition at line 330 of file mac.h.

◆ ds_ctl11

#define ds_ctl11   u.tx.ctl11

Definition at line 331 of file mac.h.

◆ ds_txstatus0

#define ds_txstatus0   u.tx.status0

Definition at line 333 of file mac.h.

◆ ds_txstatus1

#define ds_txstatus1   u.tx.status1

Definition at line 334 of file mac.h.

◆ ds_txstatus2

#define ds_txstatus2   u.tx.status2

Definition at line 335 of file mac.h.

◆ ds_txstatus3

#define ds_txstatus3   u.tx.status3

Definition at line 336 of file mac.h.

◆ ds_txstatus4

#define ds_txstatus4   u.tx.status4

Definition at line 337 of file mac.h.

◆ ds_txstatus5

#define ds_txstatus5   u.tx.status5

Definition at line 338 of file mac.h.

◆ ds_txstatus6

#define ds_txstatus6   u.tx.status6

Definition at line 339 of file mac.h.

◆ ds_txstatus7

#define ds_txstatus7   u.tx.status7

Definition at line 340 of file mac.h.

◆ ds_txstatus8

#define ds_txstatus8   u.tx.status8

Definition at line 341 of file mac.h.

◆ ds_txstatus9

#define ds_txstatus9   u.tx.status9

Definition at line 342 of file mac.h.

◆ ds_rxstatus0

#define ds_rxstatus0   u.rx.status0

Definition at line 344 of file mac.h.

◆ ds_rxstatus1

#define ds_rxstatus1   u.rx.status1

Definition at line 345 of file mac.h.

◆ ds_rxstatus2

#define ds_rxstatus2   u.rx.status2

Definition at line 346 of file mac.h.

◆ ds_rxstatus3

#define ds_rxstatus3   u.rx.status3

Definition at line 347 of file mac.h.

◆ ds_rxstatus4

#define ds_rxstatus4   u.rx.status4

Definition at line 348 of file mac.h.

◆ ds_rxstatus5

#define ds_rxstatus5   u.rx.status5

Definition at line 349 of file mac.h.

◆ ds_rxstatus6

#define ds_rxstatus6   u.rx.status6

Definition at line 350 of file mac.h.

◆ ds_rxstatus7

#define ds_rxstatus7   u.rx.status7

Definition at line 351 of file mac.h.

◆ ds_rxstatus8

#define ds_rxstatus8   u.rx.status8

Definition at line 352 of file mac.h.

◆ AR_FrameLen

#define AR_FrameLen   0x00000fff

Definition at line 354 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ AR_VirtMoreFrag

#define AR_VirtMoreFrag   0x00001000

Definition at line 355 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ AR_TxCtlRsvd00

#define AR_TxCtlRsvd00   0x0000e000

Definition at line 356 of file mac.h.

◆ AR_XmitPower

#define AR_XmitPower   0x003f0000

Definition at line 357 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ AR_XmitPower_S

#define AR_XmitPower_S   16

Definition at line 358 of file mac.h.

◆ AR_RTSEnable

#define AR_RTSEnable   0x00400000

Definition at line 359 of file mac.h.

Referenced by ar9002_hw_set11n_ratescenario(), and ar9003_hw_set11n_ratescenario().

◆ AR_VEOL

#define AR_VEOL   0x00800000

Definition at line 360 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ AR_ClrDestMask

#define AR_ClrDestMask   0x01000000

Definition at line 361 of file mac.h.

Referenced by ar9002_hw_set_clrdmask(), and ar9003_hw_set_clrdmask().

◆ AR_TxCtlRsvd01

#define AR_TxCtlRsvd01   0x1e000000

Definition at line 362 of file mac.h.

◆ AR_TxIntrReq

#define AR_TxIntrReq   0x20000000

Definition at line 363 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc().

◆ AR_DestIdxValid

#define AR_DestIdxValid   0x40000000

Definition at line 364 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ AR_CTSEnable

#define AR_CTSEnable   0x80000000

Definition at line 365 of file mac.h.

Referenced by ar9002_hw_set11n_ratescenario(), and ar9003_hw_set11n_ratescenario().

◆ AR_TxMore

#define AR_TxMore   0x00001000

Definition at line 367 of file mac.h.

Referenced by ar9002_hw_fill_txdesc(), and ar9003_hw_fill_txdesc().

◆ AR_DestIdx

#define AR_DestIdx   0x000fe000

Definition at line 368 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ AR_DestIdx_S

#define AR_DestIdx_S   13

Definition at line 369 of file mac.h.

◆ AR_FrameType

#define AR_FrameType   0x00f00000

Definition at line 370 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ AR_FrameType_S

#define AR_FrameType_S   20

Definition at line 371 of file mac.h.

◆ AR_NoAck

#define AR_NoAck   0x01000000

Definition at line 372 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ AR_InsertTS

#define AR_InsertTS   0x02000000

Definition at line 373 of file mac.h.

◆ AR_CorruptFCS

#define AR_CorruptFCS   0x04000000

Definition at line 374 of file mac.h.

◆ AR_ExtOnly

#define AR_ExtOnly   0x08000000

Definition at line 375 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ AR_ExtAndCtl

#define AR_ExtAndCtl   0x10000000

Definition at line 376 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ AR_MoreAggr

◆ AR_IsAggr

◆ AR_BurstDur

#define AR_BurstDur   0x00007fff

Definition at line 380 of file mac.h.

Referenced by ar9002_hw_set11n_ratescenario(), and ar9003_hw_set11n_ratescenario().

◆ AR_BurstDur_S

#define AR_BurstDur_S   0

Definition at line 381 of file mac.h.

◆ AR_DurUpdateEna

#define AR_DurUpdateEna   0x00008000

Definition at line 382 of file mac.h.

Referenced by ar9002_hw_set11n_ratescenario(), and ar9003_hw_set11n_ratescenario().

◆ AR_XmitDataTries0

#define AR_XmitDataTries0   0x000f0000

Definition at line 383 of file mac.h.

◆ AR_XmitDataTries0_S

#define AR_XmitDataTries0_S   16

Definition at line 384 of file mac.h.

◆ AR_XmitDataTries1

#define AR_XmitDataTries1   0x00f00000

Definition at line 385 of file mac.h.

◆ AR_XmitDataTries1_S

#define AR_XmitDataTries1_S   20

Definition at line 386 of file mac.h.

◆ AR_XmitDataTries2

#define AR_XmitDataTries2   0x0f000000

Definition at line 387 of file mac.h.

◆ AR_XmitDataTries2_S

#define AR_XmitDataTries2_S   24

Definition at line 388 of file mac.h.

◆ AR_XmitDataTries3

#define AR_XmitDataTries3   0xf0000000

Definition at line 389 of file mac.h.

◆ AR_XmitDataTries3_S

#define AR_XmitDataTries3_S   28

Definition at line 390 of file mac.h.

◆ AR_XmitRate0

#define AR_XmitRate0   0x000000ff

Definition at line 392 of file mac.h.

◆ AR_XmitRate0_S

#define AR_XmitRate0_S   0

Definition at line 393 of file mac.h.

◆ AR_XmitRate1

#define AR_XmitRate1   0x0000ff00

Definition at line 394 of file mac.h.

◆ AR_XmitRate1_S

#define AR_XmitRate1_S   8

Definition at line 395 of file mac.h.

◆ AR_XmitRate2

#define AR_XmitRate2   0x00ff0000

Definition at line 396 of file mac.h.

◆ AR_XmitRate2_S

#define AR_XmitRate2_S   16

Definition at line 397 of file mac.h.

◆ AR_XmitRate3

#define AR_XmitRate3   0xff000000

Definition at line 398 of file mac.h.

◆ AR_XmitRate3_S

#define AR_XmitRate3_S   24

Definition at line 399 of file mac.h.

◆ AR_PacketDur0

#define AR_PacketDur0   0x00007fff

Definition at line 401 of file mac.h.

◆ AR_PacketDur0_S

#define AR_PacketDur0_S   0

Definition at line 402 of file mac.h.

◆ AR_RTSCTSQual0

#define AR_RTSCTSQual0   0x00008000

Definition at line 403 of file mac.h.

◆ AR_PacketDur1

#define AR_PacketDur1   0x7fff0000

Definition at line 404 of file mac.h.

◆ AR_PacketDur1_S

#define AR_PacketDur1_S   16

Definition at line 405 of file mac.h.

◆ AR_RTSCTSQual1

#define AR_RTSCTSQual1   0x80000000

Definition at line 406 of file mac.h.

◆ AR_PacketDur2

#define AR_PacketDur2   0x00007fff

Definition at line 408 of file mac.h.

◆ AR_PacketDur2_S

#define AR_PacketDur2_S   0

Definition at line 409 of file mac.h.

◆ AR_RTSCTSQual2

#define AR_RTSCTSQual2   0x00008000

Definition at line 410 of file mac.h.

◆ AR_PacketDur3

#define AR_PacketDur3   0x7fff0000

Definition at line 411 of file mac.h.

◆ AR_PacketDur3_S

#define AR_PacketDur3_S   16

Definition at line 412 of file mac.h.

◆ AR_RTSCTSQual3

#define AR_RTSCTSQual3   0x80000000

Definition at line 413 of file mac.h.

◆ AR_AggrLen

#define AR_AggrLen   0x0000ffff

Definition at line 415 of file mac.h.

Referenced by ar9002_hw_set11n_aggr_first(), and ar9003_hw_set11n_aggr_first().

◆ AR_AggrLen_S

#define AR_AggrLen_S   0

Definition at line 416 of file mac.h.

◆ AR_TxCtlRsvd60

#define AR_TxCtlRsvd60   0x00030000

Definition at line 417 of file mac.h.

◆ AR_PadDelim

◆ AR_PadDelim_S

#define AR_PadDelim_S   18

Definition at line 419 of file mac.h.

◆ AR_EncrType

#define AR_EncrType   0x0c000000

Definition at line 420 of file mac.h.

Referenced by ar9002_hw_set11n_txdesc(), and ar9003_hw_set11n_txdesc().

◆ AR_EncrType_S

#define AR_EncrType_S   26

Definition at line 421 of file mac.h.

◆ AR_TxCtlRsvd61

#define AR_TxCtlRsvd61   0xf0000000

Definition at line 422 of file mac.h.

◆ AR_LDPC

#define AR_LDPC   0x80000000

Definition at line 423 of file mac.h.

Referenced by ar9003_hw_set11n_txdesc().

◆ AR_2040_0

#define AR_2040_0   0x00000001

Definition at line 425 of file mac.h.

◆ AR_GI0

#define AR_GI0   0x00000002

Definition at line 426 of file mac.h.

◆ AR_ChainSel0

#define AR_ChainSel0   0x0000001c

Definition at line 427 of file mac.h.

◆ AR_ChainSel0_S

#define AR_ChainSel0_S   2

Definition at line 428 of file mac.h.

◆ AR_2040_1

#define AR_2040_1   0x00000020

Definition at line 429 of file mac.h.

◆ AR_GI1

#define AR_GI1   0x00000040

Definition at line 430 of file mac.h.

◆ AR_ChainSel1

#define AR_ChainSel1   0x00000380

Definition at line 431 of file mac.h.

◆ AR_ChainSel1_S

#define AR_ChainSel1_S   7

Definition at line 432 of file mac.h.

◆ AR_2040_2

#define AR_2040_2   0x00000400

Definition at line 433 of file mac.h.

◆ AR_GI2

#define AR_GI2   0x00000800

Definition at line 434 of file mac.h.

◆ AR_ChainSel2

#define AR_ChainSel2   0x00007000

Definition at line 435 of file mac.h.

◆ AR_ChainSel2_S

#define AR_ChainSel2_S   12

Definition at line 436 of file mac.h.

◆ AR_2040_3

#define AR_2040_3   0x00008000

Definition at line 437 of file mac.h.

◆ AR_GI3

#define AR_GI3   0x00010000

Definition at line 438 of file mac.h.

◆ AR_ChainSel3

#define AR_ChainSel3   0x000e0000

Definition at line 439 of file mac.h.

◆ AR_ChainSel3_S

#define AR_ChainSel3_S   17

Definition at line 440 of file mac.h.

◆ AR_RTSCTSRate

#define AR_RTSCTSRate   0x0ff00000

Definition at line 441 of file mac.h.

Referenced by ar9002_hw_set11n_ratescenario(), and ar9003_hw_set11n_ratescenario().

◆ AR_RTSCTSRate_S

#define AR_RTSCTSRate_S   20

Definition at line 442 of file mac.h.

◆ AR_STBC0

#define AR_STBC0   0x10000000

Definition at line 443 of file mac.h.

◆ AR_STBC1

#define AR_STBC1   0x20000000

Definition at line 444 of file mac.h.

◆ AR_STBC2

#define AR_STBC2   0x40000000

Definition at line 445 of file mac.h.

◆ AR_STBC3

#define AR_STBC3   0x80000000

Definition at line 446 of file mac.h.

◆ AR_TxRSSIAnt00

#define AR_TxRSSIAnt00   0x000000ff

Definition at line 448 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_TxRSSIAnt00_S

#define AR_TxRSSIAnt00_S   0

Definition at line 449 of file mac.h.

◆ AR_TxRSSIAnt01

#define AR_TxRSSIAnt01   0x0000ff00

Definition at line 450 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_TxRSSIAnt01_S

#define AR_TxRSSIAnt01_S   8

Definition at line 451 of file mac.h.

◆ AR_TxRSSIAnt02

#define AR_TxRSSIAnt02   0x00ff0000

Definition at line 452 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_TxRSSIAnt02_S

#define AR_TxRSSIAnt02_S   16

Definition at line 453 of file mac.h.

◆ AR_TxStatusRsvd00

#define AR_TxStatusRsvd00   0x3f000000

Definition at line 454 of file mac.h.

◆ AR_TxBaStatus

#define AR_TxBaStatus   0x40000000

Definition at line 455 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_TxStatusRsvd01

#define AR_TxStatusRsvd01   0x80000000

Definition at line 456 of file mac.h.

◆ AR_FrmXmitOK

#define AR_FrmXmitOK   0x00000001

Definition at line 463 of file mac.h.

Referenced by ar9002_hw_proc_txdesc().

◆ AR_ExcessiveRetries

#define AR_ExcessiveRetries   0x00000002

Definition at line 464 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_FIFOUnderrun

#define AR_FIFOUnderrun   0x00000004

Definition at line 465 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_Filtered

#define AR_Filtered   0x00000008

Definition at line 466 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_RTSFailCnt

#define AR_RTSFailCnt   0x000000f0

Definition at line 467 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_RTSFailCnt_S

#define AR_RTSFailCnt_S   4

Definition at line 468 of file mac.h.

◆ AR_DataFailCnt

#define AR_DataFailCnt   0x00000f00

Definition at line 469 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_DataFailCnt_S

#define AR_DataFailCnt_S   8

Definition at line 470 of file mac.h.

◆ AR_VirtRetryCnt

#define AR_VirtRetryCnt   0x0000f000

Definition at line 471 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_VirtRetryCnt_S

#define AR_VirtRetryCnt_S   12

Definition at line 472 of file mac.h.

◆ AR_TxDelimUnderrun

#define AR_TxDelimUnderrun   0x00010000

Definition at line 473 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_TxDataUnderrun

#define AR_TxDataUnderrun   0x00020000

Definition at line 474 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_DescCfgErr

#define AR_DescCfgErr   0x00040000

Definition at line 475 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_TxTimerExpired

#define AR_TxTimerExpired   0x00080000

Definition at line 476 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_TxStatusRsvd10

#define AR_TxStatusRsvd10   0xfff00000

Definition at line 477 of file mac.h.

◆ AR_SendTimestamp

#define AR_SendTimestamp   ds_txstatus2

Definition at line 479 of file mac.h.

◆ AR_BaBitmapLow

#define AR_BaBitmapLow   ds_txstatus3

Definition at line 480 of file mac.h.

◆ AR_BaBitmapHigh

#define AR_BaBitmapHigh   ds_txstatus4

Definition at line 481 of file mac.h.

◆ AR_TxRSSIAnt10

#define AR_TxRSSIAnt10   0x000000ff

Definition at line 483 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_TxRSSIAnt10_S

#define AR_TxRSSIAnt10_S   0

Definition at line 484 of file mac.h.

◆ AR_TxRSSIAnt11

#define AR_TxRSSIAnt11   0x0000ff00

Definition at line 485 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_TxRSSIAnt11_S

#define AR_TxRSSIAnt11_S   8

Definition at line 486 of file mac.h.

◆ AR_TxRSSIAnt12

#define AR_TxRSSIAnt12   0x00ff0000

Definition at line 487 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_TxRSSIAnt12_S

#define AR_TxRSSIAnt12_S   16

Definition at line 488 of file mac.h.

◆ AR_TxRSSICombined

#define AR_TxRSSICombined   0xff000000

Definition at line 489 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_TxRSSICombined_S

#define AR_TxRSSICombined_S   24

Definition at line 490 of file mac.h.

◆ AR_TxTid

#define AR_TxTid   0xf0000000

Definition at line 492 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_TxTid_S

#define AR_TxTid_S   28

Definition at line 493 of file mac.h.

◆ AR_TxEVM0

#define AR_TxEVM0   ds_txstatus5

Definition at line 495 of file mac.h.

◆ AR_TxEVM1

#define AR_TxEVM1   ds_txstatus6

Definition at line 496 of file mac.h.

◆ AR_TxEVM2

#define AR_TxEVM2   ds_txstatus7

Definition at line 497 of file mac.h.

◆ AR_TxDone

#define AR_TxDone   0x00000001

Definition at line 499 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_SeqNum

#define AR_SeqNum   0x00001ffe

Definition at line 500 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_SeqNum_S

#define AR_SeqNum_S   1

Definition at line 501 of file mac.h.

◆ AR_TxStatusRsvd80

#define AR_TxStatusRsvd80   0x0001e000

Definition at line 502 of file mac.h.

◆ AR_TxOpExceeded

#define AR_TxOpExceeded   0x00020000

Definition at line 503 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_TxStatusRsvd81

#define AR_TxStatusRsvd81   0x001c0000

Definition at line 504 of file mac.h.

◆ AR_FinalTxIdx

#define AR_FinalTxIdx   0x00600000

Definition at line 505 of file mac.h.

Referenced by ar9002_hw_proc_txdesc(), and ar9003_hw_proc_txdesc().

◆ AR_FinalTxIdx_S

#define AR_FinalTxIdx_S   21

Definition at line 506 of file mac.h.

◆ AR_TxStatusRsvd82

#define AR_TxStatusRsvd82   0x01800000

Definition at line 507 of file mac.h.

◆ AR_PowerMgmt

#define AR_PowerMgmt   0x02000000

Definition at line 508 of file mac.h.

◆ AR_TxStatusRsvd83

#define AR_TxStatusRsvd83   0xfc000000

Definition at line 509 of file mac.h.

◆ AR_RxCTLRsvd00

#define AR_RxCTLRsvd00   0xffffffff

Definition at line 511 of file mac.h.

◆ AR_RxCtlRsvd00

#define AR_RxCtlRsvd00   0x00001000

Definition at line 513 of file mac.h.

◆ AR_RxIntrReq

#define AR_RxIntrReq   0x00002000

Definition at line 514 of file mac.h.

Referenced by ath9k_hw_setuprxdesc().

◆ AR_RxCtlRsvd01

#define AR_RxCtlRsvd01   0xffffc000

Definition at line 515 of file mac.h.

◆ AR_RxRSSIAnt00

#define AR_RxRSSIAnt00   0x000000ff

Definition at line 517 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_RxRSSIAnt00_S

#define AR_RxRSSIAnt00_S   0

Definition at line 518 of file mac.h.

◆ AR_RxRSSIAnt01

#define AR_RxRSSIAnt01   0x0000ff00

Definition at line 519 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_RxRSSIAnt01_S

#define AR_RxRSSIAnt01_S   8

Definition at line 520 of file mac.h.

◆ AR_RxRSSIAnt02

#define AR_RxRSSIAnt02   0x00ff0000

Definition at line 521 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_RxRSSIAnt02_S

#define AR_RxRSSIAnt02_S   16

Definition at line 522 of file mac.h.

◆ AR_RxRate

#define AR_RxRate   0xff000000

Definition at line 523 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma().

◆ AR_RxRate_S

#define AR_RxRate_S   24

Definition at line 524 of file mac.h.

◆ AR_RxStatusRsvd00

#define AR_RxStatusRsvd00   0xff000000

Definition at line 525 of file mac.h.

◆ AR_DataLen

#define AR_DataLen   0x00000fff

Definition at line 527 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_RxMore

#define AR_RxMore   0x00001000

Definition at line 528 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_NumDelim

#define AR_NumDelim   0x003fc000

Definition at line 529 of file mac.h.

◆ AR_NumDelim_S

#define AR_NumDelim_S   14

Definition at line 530 of file mac.h.

◆ AR_RxStatusRsvd10

#define AR_RxStatusRsvd10   0xff800000

Definition at line 531 of file mac.h.

◆ AR_RcvTimestamp

#define AR_RcvTimestamp   ds_rxstatus2

Definition at line 533 of file mac.h.

◆ AR_GI

#define AR_GI   0x00000001

Definition at line 535 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_2040

#define AR_2040   0x00000002

Definition at line 536 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_Parallel40

#define AR_Parallel40   0x00000004

Definition at line 537 of file mac.h.

◆ AR_Parallel40_S

#define AR_Parallel40_S   2

Definition at line 538 of file mac.h.

◆ AR_RxStatusRsvd30

#define AR_RxStatusRsvd30   0x000000f8

Definition at line 539 of file mac.h.

◆ AR_RxAntenna

#define AR_RxAntenna   0xffffff00

Definition at line 540 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_RxAntenna_S

#define AR_RxAntenna_S   8

Definition at line 541 of file mac.h.

◆ AR_RxRSSIAnt10

#define AR_RxRSSIAnt10   0x000000ff

Definition at line 543 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_RxRSSIAnt10_S

#define AR_RxRSSIAnt10_S   0

Definition at line 544 of file mac.h.

◆ AR_RxRSSIAnt11

#define AR_RxRSSIAnt11   0x0000ff00

Definition at line 545 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_RxRSSIAnt11_S

#define AR_RxRSSIAnt11_S   8

Definition at line 546 of file mac.h.

◆ AR_RxRSSIAnt12

#define AR_RxRSSIAnt12   0x00ff0000

Definition at line 547 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_RxRSSIAnt12_S

#define AR_RxRSSIAnt12_S   16

Definition at line 548 of file mac.h.

◆ AR_RxRSSICombined

#define AR_RxRSSICombined   0xff000000

Definition at line 549 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_RxRSSICombined_S

#define AR_RxRSSICombined_S   24

Definition at line 550 of file mac.h.

◆ AR_RxEVM0

#define AR_RxEVM0   ds_rxstatus4

Definition at line 552 of file mac.h.

◆ AR_RxEVM1

#define AR_RxEVM1   ds_rxstatus5

Definition at line 553 of file mac.h.

◆ AR_RxEVM2

#define AR_RxEVM2   ds_rxstatus6

Definition at line 554 of file mac.h.

◆ AR_RxDone

#define AR_RxDone   0x00000001

Definition at line 556 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), ath9k_hw_rxprocdesc(), and ath9k_hw_setuprxdesc().

◆ AR_RxFrameOK

#define AR_RxFrameOK   0x00000002

Definition at line 557 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_CRCErr

#define AR_CRCErr   0x00000004

Definition at line 558 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_DecryptCRCErr

#define AR_DecryptCRCErr   0x00000008

Definition at line 559 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_PHYErr

#define AR_PHYErr   0x00000010

Definition at line 560 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_MichaelErr

#define AR_MichaelErr   0x00000020

Definition at line 561 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_PreDelimCRCErr

#define AR_PreDelimCRCErr   0x00000040

Definition at line 562 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_RxStatusRsvd70

#define AR_RxStatusRsvd70   0x00000080

Definition at line 563 of file mac.h.

◆ AR_RxKeyIdxValid

#define AR_RxKeyIdxValid   0x00000100

Definition at line 564 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_KeyIdx

#define AR_KeyIdx   0x0000fe00

Definition at line 565 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_KeyIdx_S

#define AR_KeyIdx_S   9

Definition at line 566 of file mac.h.

◆ AR_PHYErrCode

#define AR_PHYErrCode   0x0000ff00

Definition at line 567 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_PHYErrCode_S

#define AR_PHYErrCode_S   8

Definition at line 568 of file mac.h.

◆ AR_RxMoreAggr

#define AR_RxMoreAggr   0x00010000

Definition at line 569 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_RxAggr

#define AR_RxAggr   0x00020000

Definition at line 570 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_PostDelimCRCErr

#define AR_PostDelimCRCErr   0x00040000

Definition at line 571 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_RxStatusRsvd71

#define AR_RxStatusRsvd71   0x3ff80000

Definition at line 572 of file mac.h.

◆ AR_DecryptBusyErr

#define AR_DecryptBusyErr   0x40000000

Definition at line 573 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ AR_KeyMiss

#define AR_KeyMiss   0x80000000

Definition at line 574 of file mac.h.

Referenced by ath9k_hw_process_rxdesc_edma(), and ath9k_hw_rxprocdesc().

◆ ATH9K_NUM_TX_QUEUES

◆ ATH9K_WME_UPSD

#define ATH9K_WME_UPSD   4

Definition at line 584 of file mac.h.

◆ ATH9K_TXQ_USEDEFAULT

#define ATH9K_TXQ_USEDEFAULT   ((u32) -1)

◆ ATH9K_TXQ_USE_LOCKOUT_BKOFF_DIS

#define ATH9K_TXQ_USE_LOCKOUT_BKOFF_DIS   0x00000001

Definition at line 599 of file mac.h.

Referenced by ath9k_hw_resettxqueue().

◆ ATH9K_DECOMP_MASK_SIZE

#define ATH9K_DECOMP_MASK_SIZE   128

Definition at line 601 of file mac.h.

◆ ATH9K_READY_TIME_LO_BOUND

#define ATH9K_READY_TIME_LO_BOUND   50

Definition at line 602 of file mac.h.

◆ ATH9K_READY_TIME_HI_BOUND

#define ATH9K_READY_TIME_HI_BOUND   96

Definition at line 603 of file mac.h.

◆ ATH9K_RATESERIES_RTS_CTS

#define ATH9K_RATESERIES_RTS_CTS   0x0001

Definition at line 652 of file mac.h.

Referenced by ath_buf_set_rate().

◆ ATH9K_RATESERIES_2040

#define ATH9K_RATESERIES_2040   0x0002

Definition at line 653 of file mac.h.

◆ ATH9K_RATESERIES_HALFGI

#define ATH9K_RATESERIES_HALFGI   0x0004

Definition at line 654 of file mac.h.

◆ ATH9K_RATESERIES_STBC

#define ATH9K_RATESERIES_STBC   0x0008

Definition at line 655 of file mac.h.

Enumeration Type Documentation

◆ ath9k_phyerr

Enumerator
ATH9K_PHYERR_UNDERRUN 
ATH9K_PHYERR_TIMING 
ATH9K_PHYERR_PARITY 
ATH9K_PHYERR_RATE 
ATH9K_PHYERR_LENGTH 
ATH9K_PHYERR_RADAR 
ATH9K_PHYERR_SERVICE 
ATH9K_PHYERR_TOR 
ATH9K_PHYERR_OFDM_TIMING 
ATH9K_PHYERR_OFDM_SIGNAL_PARITY 
ATH9K_PHYERR_OFDM_RATE_ILLEGAL 
ATH9K_PHYERR_OFDM_LENGTH_ILLEGAL 
ATH9K_PHYERR_OFDM_POWER_DROP 
ATH9K_PHYERR_OFDM_SERVICE 
ATH9K_PHYERR_OFDM_RESTART 
ATH9K_PHYERR_FALSE_RADAR_EXT 
ATH9K_PHYERR_CCK_TIMING 
ATH9K_PHYERR_CCK_HEADER_CRC 
ATH9K_PHYERR_CCK_RATE_ILLEGAL 
ATH9K_PHYERR_CCK_SERVICE 
ATH9K_PHYERR_CCK_RESTART 
ATH9K_PHYERR_CCK_LENGTH_ILLEGAL 
ATH9K_PHYERR_CCK_POWER_DROP 
ATH9K_PHYERR_HT_CRC_ERROR 
ATH9K_PHYERR_HT_LENGTH_ILLEGAL 
ATH9K_PHYERR_HT_RATE_ILLEGAL 
ATH9K_PHYERR_MAX 

Definition at line 207 of file mac.h.

207 {
208 ATH9K_PHYERR_UNDERRUN = 0, /* Transmit underrun */
209 ATH9K_PHYERR_TIMING = 1, /* Timing error */
210 ATH9K_PHYERR_PARITY = 2, /* Illegal parity */
211 ATH9K_PHYERR_RATE = 3, /* Illegal rate */
212 ATH9K_PHYERR_LENGTH = 4, /* Illegal length */
213 ATH9K_PHYERR_RADAR = 5, /* Radar detect */
214 ATH9K_PHYERR_SERVICE = 6, /* Illegal service */
215 ATH9K_PHYERR_TOR = 7, /* Transmit override receive */
216
225
233
237
238 ATH9K_PHYERR_MAX = 37,
239};
@ ATH9K_PHYERR_OFDM_RATE_ILLEGAL
Definition mac.h:219
@ ATH9K_PHYERR_OFDM_POWER_DROP
Definition mac.h:221
@ ATH9K_PHYERR_MAX
Definition mac.h:238
@ ATH9K_PHYERR_SERVICE
Definition mac.h:214
@ ATH9K_PHYERR_CCK_RESTART
Definition mac.h:230
@ ATH9K_PHYERR_CCK_LENGTH_ILLEGAL
Definition mac.h:231
@ ATH9K_PHYERR_HT_RATE_ILLEGAL
Definition mac.h:236
@ ATH9K_PHYERR_CCK_TIMING
Definition mac.h:226
@ ATH9K_PHYERR_CCK_RATE_ILLEGAL
Definition mac.h:228
@ ATH9K_PHYERR_FALSE_RADAR_EXT
Definition mac.h:224
@ ATH9K_PHYERR_TOR
Definition mac.h:215
@ ATH9K_PHYERR_CCK_POWER_DROP
Definition mac.h:232
@ ATH9K_PHYERR_RADAR
Definition mac.h:213
@ ATH9K_PHYERR_CCK_HEADER_CRC
Definition mac.h:227
@ ATH9K_PHYERR_OFDM_TIMING
Definition mac.h:217
@ ATH9K_PHYERR_OFDM_SIGNAL_PARITY
Definition mac.h:218
@ ATH9K_PHYERR_LENGTH
Definition mac.h:212
@ ATH9K_PHYERR_OFDM_RESTART
Definition mac.h:223
@ ATH9K_PHYERR_RATE
Definition mac.h:211
@ ATH9K_PHYERR_HT_CRC_ERROR
Definition mac.h:234
@ ATH9K_PHYERR_TIMING
Definition mac.h:209
@ ATH9K_PHYERR_OFDM_LENGTH_ILLEGAL
Definition mac.h:220
@ ATH9K_PHYERR_UNDERRUN
Definition mac.h:208
@ ATH9K_PHYERR_PARITY
Definition mac.h:210
@ ATH9K_PHYERR_HT_LENGTH_ILLEGAL
Definition mac.h:235
@ ATH9K_PHYERR_CCK_SERVICE
Definition mac.h:229
@ ATH9K_PHYERR_OFDM_SERVICE
Definition mac.h:222

◆ ath9k_tx_queue

Enumerator
ATH9K_TX_QUEUE_INACTIVE 
ATH9K_TX_QUEUE_DATA 

Definition at line 576 of file mac.h.

576 {
579};
@ ATH9K_TX_QUEUE_INACTIVE
Definition mac.h:577
@ ATH9K_TX_QUEUE_DATA
Definition mac.h:578

◆ ath9k_tx_queue_flags

Enumerator
TXQ_FLAG_TXOKINT_ENABLE 
TXQ_FLAG_TXERRINT_ENABLE 
TXQ_FLAG_TXDESCINT_ENABLE 
TXQ_FLAG_TXEOLINT_ENABLE 
TXQ_FLAG_TXURNINT_ENABLE 
TXQ_FLAG_BACKOFF_DISABLE 
TXQ_FLAG_COMPRESSION_ENABLE 
TXQ_FLAG_RDYTIME_EXP_POLICY_ENABLE 
TXQ_FLAG_FRAG_BURST_BACKOFF_ENABLE 

Definition at line 586 of file mac.h.

586 {
596};
@ TXQ_FLAG_COMPRESSION_ENABLE
Definition mac.h:593
@ TXQ_FLAG_RDYTIME_EXP_POLICY_ENABLE
Definition mac.h:594
@ TXQ_FLAG_BACKOFF_DISABLE
Definition mac.h:592
@ TXQ_FLAG_TXERRINT_ENABLE
Definition mac.h:588
@ TXQ_FLAG_TXDESCINT_ENABLE
Definition mac.h:589
@ TXQ_FLAG_FRAG_BURST_BACKOFF_ENABLE
Definition mac.h:595
@ TXQ_FLAG_TXEOLINT_ENABLE
Definition mac.h:590
@ TXQ_FLAG_TXURNINT_ENABLE
Definition mac.h:591
@ TXQ_FLAG_TXOKINT_ENABLE
Definition mac.h:587

◆ ath9k_pkt_type

Enumerator
ATH9K_PKT_TYPE_NORMAL 
ATH9K_PKT_TYPE_ATIM 
ATH9K_PKT_TYPE_PSPOLL 
ATH9K_PKT_TYPE_BEACON 
ATH9K_PKT_TYPE_PROBE_RESP 
ATH9K_PKT_TYPE_CHIRP 
ATH9K_PKT_TYPE_GRP_POLL 

Definition at line 605 of file mac.h.

605 {
613};
@ ATH9K_PKT_TYPE_NORMAL
Definition mac.h:606
@ ATH9K_PKT_TYPE_CHIRP
Definition mac.h:611
@ ATH9K_PKT_TYPE_PSPOLL
Definition mac.h:608
@ ATH9K_PKT_TYPE_GRP_POLL
Definition mac.h:612
@ ATH9K_PKT_TYPE_BEACON
Definition mac.h:609
@ ATH9K_PKT_TYPE_PROBE_RESP
Definition mac.h:610
@ ATH9K_PKT_TYPE_ATIM
Definition mac.h:607

◆ ath9k_rx_filter

Enumerator
ATH9K_RX_FILTER_UCAST 
ATH9K_RX_FILTER_MCAST 
ATH9K_RX_FILTER_BCAST 
ATH9K_RX_FILTER_CONTROL 
ATH9K_RX_FILTER_BEACON 
ATH9K_RX_FILTER_PROM 
ATH9K_RX_FILTER_PROBEREQ 
ATH9K_RX_FILTER_PHYERR 
ATH9K_RX_FILTER_MYBEACON 
ATH9K_RX_FILTER_COMP_BAR 
ATH9K_RX_FILTER_COMP_BA 
ATH9K_RX_FILTER_UNCOMP_BA_BAR 
ATH9K_RX_FILTER_PSPOLL 
ATH9K_RX_FILTER_PHYRADAR 
ATH9K_RX_FILTER_MCAST_BCAST_ALL 

Definition at line 634 of file mac.h.

634 {
635 ATH9K_RX_FILTER_UCAST = 0x00000001,
636 ATH9K_RX_FILTER_MCAST = 0x00000002,
637 ATH9K_RX_FILTER_BCAST = 0x00000004,
638 ATH9K_RX_FILTER_CONTROL = 0x00000008,
639 ATH9K_RX_FILTER_BEACON = 0x00000010,
640 ATH9K_RX_FILTER_PROM = 0x00000020,
641 ATH9K_RX_FILTER_PROBEREQ = 0x00000080,
642 ATH9K_RX_FILTER_PHYERR = 0x00000100,
643 ATH9K_RX_FILTER_MYBEACON = 0x00000200,
644 ATH9K_RX_FILTER_COMP_BAR = 0x00000400,
645 ATH9K_RX_FILTER_COMP_BA = 0x00000800,
647 ATH9K_RX_FILTER_PSPOLL = 0x00004000,
648 ATH9K_RX_FILTER_PHYRADAR = 0x00002000,
650};
@ ATH9K_RX_FILTER_BCAST
Definition mac.h:637
@ ATH9K_RX_FILTER_MCAST
Definition mac.h:636
@ ATH9K_RX_FILTER_UCAST
Definition mac.h:635
@ ATH9K_RX_FILTER_CONTROL
Definition mac.h:638
@ ATH9K_RX_FILTER_BEACON
Definition mac.h:639
@ ATH9K_RX_FILTER_PROBEREQ
Definition mac.h:641
@ ATH9K_RX_FILTER_COMP_BA
Definition mac.h:645
@ ATH9K_RX_FILTER_PROM
Definition mac.h:640
@ ATH9K_RX_FILTER_COMP_BAR
Definition mac.h:644
@ ATH9K_RX_FILTER_MYBEACON
Definition mac.h:643
@ ATH9K_RX_FILTER_MCAST_BCAST_ALL
Definition mac.h:649
@ ATH9K_RX_FILTER_PSPOLL
Definition mac.h:647
@ ATH9K_RX_FILTER_PHYRADAR
Definition mac.h:648
@ ATH9K_RX_FILTER_PHYERR
Definition mac.h:642
@ ATH9K_RX_FILTER_UNCOMP_BA_BAR
Definition mac.h:646

◆ ath9k_key_type

Enumerator
ATH9K_KEY_TYPE_CLEAR 
ATH9K_KEY_TYPE_WEP 
ATH9K_KEY_TYPE_AES 
ATH9K_KEY_TYPE_TKIP 

Definition at line 665 of file mac.h.

665 {
670};
@ ATH9K_KEY_TYPE_TKIP
Definition mac.h:669
@ ATH9K_KEY_TYPE_CLEAR
Definition mac.h:666
@ ATH9K_KEY_TYPE_AES
Definition mac.h:668
@ ATH9K_KEY_TYPE_WEP
Definition mac.h:667

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( BSD2 )

◆ FILE_SECBOOT()

FILE_SECBOOT ( FORBIDDEN )

◆ ath9k_hw_gettxbuf()

u32 ath9k_hw_gettxbuf ( struct ath_hw * ah,
u32 q )

References ah, txdp, and u32.

Referenced by ath_tx_processq().

◆ ath9k_hw_puttxbuf()

void ath9k_hw_puttxbuf ( struct ath_hw * ah,
u32 q,
u32 txdp )

Definition at line 52 of file ath9k_mac.c.

53{
55}
#define AR_QTXDP(_i)
Definition reg.h:382
#define REG_WRITE(_ah, _reg, _val)
Definition hw.h:78
@ txdp
Definition sis900.h:30

References ah, AR_QTXDP, REG_WRITE, txdp, and u32.

Referenced by ath_tx_txqaddbuf().

◆ ath9k_hw_txstart()

void ath9k_hw_txstart ( struct ath_hw * ah,
u32 q )

Definition at line 57 of file ath9k_mac.c.

58{
59 DBG2("ath9k: "
60 "Enable TXE on queue: %d\n", q);
61 REG_WRITE(ah, AR_Q_TXE, 1 << q);
62}
#define AR_Q_TXE
Definition reg.h:387
#define DBG2(...)
Definition compiler.h:515

References ah, AR_Q_TXE, DBG2, REG_WRITE, and u32.

Referenced by ath_tx_txqaddbuf().

◆ ath9k_hw_cleartxdesc()

void ath9k_hw_cleartxdesc ( struct ath_hw * ah,
void * ds )

References ah, ds, and u32.

◆ ath9k_hw_numtxpending()

u32 ath9k_hw_numtxpending ( struct ath_hw * ah,
u32 q )

Definition at line 64 of file ath9k_mac.c.

65{
66 u32 npend;
67
69 if (npend == 0) {
70
71 if (REG_READ(ah, AR_Q_TXE) & (1 << q))
72 npend = 1;
73 }
74
75 return npend;
76}
#define AR_QSTS(_i)
Definition reg.h:470
#define AR_Q_STS_PEND_FR_CNT
Definition reg.h:471
#define REG_READ(_ah, _reg)
Definition hw.h:81
#define u32
Definition vga.h:21

References ah, AR_Q_STS_PEND_FR_CNT, AR_Q_TXE, AR_QSTS, REG_READ, and u32.

Referenced by ath9k_hw_abort_tx_dma(), ath9k_hw_channel_change(), and ath_drain_all_txq().

◆ ath9k_hw_updatetxtriglevel()

int ath9k_hw_updatetxtriglevel ( struct ath_hw * ah,
int bIncTrigLevel )

ath9k_hw_updatetxtriglevel - adjusts the frame trigger level

@ah: atheros hardware struct @bIncTrigLevel: whether or not the frame trigger level should be updated

The frame trigger level specifies the minimum number of bytes, in units of 64 bytes, that must be DMA'ed into the PCU TX FIFO before the PCU will initiate sending the frame on the air. This can mean we initiate transmit before a full frame is on the PCU TX FIFO. Resets to 0x1 (meaning 64 bytes or a full frame, whichever occurs first)

Caution must be taken to ensure to set the frame trigger level based on the DMA request size. For example if the DMA request size is set to 128 bytes the trigger level cannot exceed 6 * 64 = 384. This is because there need to be enough space in the tx FIFO for the requested transfer size. Hence the tx FIFO will stop with 512 - 128 = 384 bytes. If we set the threshold to a value beyond 6, then the transmit will hang.

Current dual stream devices have a PCU TX FIFO size of 8 KB. Current single stream devices have a PCU TX FIFO size of 4 KB, however, there is a hardware issue which forces us to use 2 KB instead so the frame trigger level must not exceed 2 KB for these chipsets.

Definition at line 103 of file ath9k_mac.c.

104{
105 u32 txcfg, curLevel, newLevel;
106
107 if (ah->tx_trig_level >= ah->config.max_txtrig_level)
108 return 0;
109
111
113 curLevel = MS(txcfg, AR_FTRIG);
114 newLevel = curLevel;
115 if (bIncTrigLevel) {
116 if (curLevel < ah->config.max_txtrig_level)
117 newLevel++;
118 } else if (curLevel > MIN_TX_FIFO_THRESHOLD)
119 newLevel--;
120 if (newLevel != curLevel)
122 (txcfg & ~AR_FTRIG) | SM(newLevel, AR_FTRIG));
123
125
126 ah->tx_trig_level = newLevel;
127
128 return newLevel != curLevel;
129}
#define AR_FTRIG
Definition reg.h:90
#define AR_TXCFG
Definition reg.h:80
void ath9k_hw_enable_interrupts(struct ath_hw *ah)
Definition ath9k_mac.c:618
void ath9k_hw_disable_interrupts(struct ath_hw *ah)
Definition ath9k_mac.c:604
#define MS(_v, _f)
Definition hw.h:103
#define MIN_TX_FIFO_THRESHOLD
Definition mac.h:102
@ txcfg
Definition sis900.h:31

References ah, AR_FTRIG, AR_TXCFG, ath9k_hw_disable_interrupts(), ath9k_hw_enable_interrupts(), MIN_TX_FIFO_THRESHOLD, MS, REG_READ, REG_WRITE, SM, txcfg, and u32.

Referenced by ar9002_hw_proc_txdesc(), ar9003_hw_proc_txdesc(), and ath_isr().

◆ ath9k_hw_stop_dma_queue()

int ath9k_hw_stop_dma_queue ( struct ath_hw * ah,
u32 q )

References ah, and u32.

◆ ath9k_hw_abort_tx_dma()

void ath9k_hw_abort_tx_dma ( struct ath_hw * ah)

Definition at line 131 of file ath9k_mac.c.

132{
133 int i, q;
134
136
140
141 for (q = 0; q < AR_NUM_QCU; q++) {
142 for (i = 0; i < 1000; i++) {
143 if (i)
144 udelay(5);
145
146 if (!ath9k_hw_numtxpending(ah, q))
147 break;
148 }
149 }
150
154
155 REG_WRITE(ah, AR_Q_TXD, 0);
156}
#define AR_PCU_CLEAR_VMF
Definition reg.h:1652
#define AR_D_GBL_IFS_MISC_IGNORE_BACKOFF
Definition reg.h:637
#define AR_DIAG_FORCE_CH_IDLE_HIGH
Definition reg.h:1522
#define AR_NUM_QCU
Definition reg.h:360
#define AR_D_GBL_IFS_MISC
Definition reg.h:629
#define AR_Q_TXD_M
Definition reg.h:391
#define AR_PCU_MISC
Definition reg.h:1641
#define AR_PCU_FORCE_QUIET_COLL
Definition reg.h:1650
#define AR_DIAG_SW
Definition reg.h:1505
#define AR_Q_TXD
Definition reg.h:390
u32 ath9k_hw_numtxpending(struct ath_hw *ah, u32 q)
Definition ath9k_mac.c:64
#define REG_CLR_BIT(_a, _r, _f)
Definition hw.h:110
#define REG_SET_BIT(_a, _r, _f)
Definition hw.h:108
void udelay(unsigned long usecs)
Delay for a fixed number of microseconds.
Definition timer.c:61

References ah, AR_D_GBL_IFS_MISC, AR_D_GBL_IFS_MISC_IGNORE_BACKOFF, AR_DIAG_FORCE_CH_IDLE_HIGH, AR_DIAG_SW, AR_NUM_QCU, AR_PCU_CLEAR_VMF, AR_PCU_FORCE_QUIET_COLL, AR_PCU_MISC, AR_Q_TXD, AR_Q_TXD_M, ath9k_hw_numtxpending(), REG_CLR_BIT, REG_SET_BIT, REG_WRITE, and udelay().

Referenced by ath_drain_all_txq().

◆ ath9k_hw_gettxintrtxqs()

void ath9k_hw_gettxintrtxqs ( struct ath_hw * ah,
u32 * txqs )

Definition at line 158 of file ath9k_mac.c.

159{
160 *txqs &= ah->intr_txqs;
161 ah->intr_txqs &= ~(*txqs);
162}

References ah, and u32.

Referenced by ath_tx_tasklet().

◆ ath9k_hw_set_txq_props()

int ath9k_hw_set_txq_props ( struct ath_hw * ah,
int q,
const struct ath9k_tx_queue_info * qinfo )

Definition at line 164 of file ath9k_mac.c.

166{
167 u32 cw;
168 struct ath9k_tx_queue_info *qi;
169
170 qi = &ah->txq[q];
172 DBG("ath9k: "
173 "Set TXQ properties, inactive queue: %d\n", q);
174 return 0;
175 }
176
177 DBG2("ath9k: Set queue properties for: %d\n", q);
178
179 qi->tqi_ver = qinfo->tqi_ver;
180 qi->tqi_subtype = qinfo->tqi_subtype;
181 qi->tqi_qflags = qinfo->tqi_qflags;
182 qi->tqi_priority = qinfo->tqi_priority;
183 if (qinfo->tqi_aifs != ATH9K_TXQ_USEDEFAULT)
184 qi->tqi_aifs = min(qinfo->tqi_aifs, 255U);
185 else
186 qi->tqi_aifs = INIT_AIFS;
187 if (qinfo->tqi_cwmin != ATH9K_TXQ_USEDEFAULT) {
188 cw = min(qinfo->tqi_cwmin, 1024U);
189 qi->tqi_cwmin = 1;
190 while (qi->tqi_cwmin < cw)
191 qi->tqi_cwmin = (qi->tqi_cwmin << 1) | 1;
192 } else
193 qi->tqi_cwmin = qinfo->tqi_cwmin;
194 if (qinfo->tqi_cwmax != ATH9K_TXQ_USEDEFAULT) {
195 cw = min(qinfo->tqi_cwmax, 1024U);
196 qi->tqi_cwmax = 1;
197 while (qi->tqi_cwmax < cw)
198 qi->tqi_cwmax = (qi->tqi_cwmax << 1) | 1;
199 } else
200 qi->tqi_cwmax = INIT_CWMAX;
201
202 if (qinfo->tqi_shretry != 0)
203 qi->tqi_shretry = min((u32) qinfo->tqi_shretry, 15U);
204 else
206 if (qinfo->tqi_lgretry != 0)
207 qi->tqi_lgretry = min((u32) qinfo->tqi_lgretry, 15U);
208 else
210 qi->tqi_cbrPeriod = qinfo->tqi_cbrPeriod;
212 qi->tqi_burstTime = qinfo->tqi_burstTime;
213 qi->tqi_readyTime = qinfo->tqi_readyTime;
214
215 return 1;
216}
#define min(x, y)
Definition ath.h:36
#define DBG(...)
Print a debugging message.
Definition compiler.h:498
#define ATH9K_TXQ_USEDEFAULT
Definition mac.h:598
#define INIT_SH_RETRY
Definition mac.h:75
#define INIT_AIFS
Definition mac.h:71
#define INIT_LG_RETRY
Definition mac.h:76
#define INIT_CWMAX
Definition mac.h:74
u32 tqi_cbrOverflowLimit
Definition mac.h:627
enum ath9k_tx_queue_flags tqi_qflags
Definition mac.h:619
enum ath9k_tx_queue tqi_type
Definition mac.h:617

References ah, ATH9K_TX_QUEUE_INACTIVE, ATH9K_TXQ_USEDEFAULT, DBG, DBG2, INIT_AIFS, INIT_CWMAX, INIT_LG_RETRY, INIT_SH_RETRY, min, ath9k_tx_queue_info::tqi_aifs, ath9k_tx_queue_info::tqi_burstTime, ath9k_tx_queue_info::tqi_cbrOverflowLimit, ath9k_tx_queue_info::tqi_cbrPeriod, ath9k_tx_queue_info::tqi_cwmax, ath9k_tx_queue_info::tqi_cwmin, ath9k_tx_queue_info::tqi_lgretry, ath9k_tx_queue_info::tqi_priority, ath9k_tx_queue_info::tqi_qflags, ath9k_tx_queue_info::tqi_readyTime, ath9k_tx_queue_info::tqi_shretry, ath9k_tx_queue_info::tqi_subtype, ath9k_tx_queue_info::tqi_type, ath9k_tx_queue_info::tqi_ver, and u32.

Referenced by ath9k_hw_setuptxqueue().

◆ ath9k_hw_get_txq_props()

int ath9k_hw_get_txq_props ( struct ath_hw * ah,
int q,
struct ath9k_tx_queue_info * qinfo )

References ah, ds, flags, rxdp, set, size, type, and u32.

◆ ath9k_hw_setuptxqueue()

int ath9k_hw_setuptxqueue ( struct ath_hw * ah,
enum ath9k_tx_queue type,
const struct ath9k_tx_queue_info * qinfo )

Definition at line 218 of file ath9k_mac.c.

220{
221 struct ath9k_tx_queue_info *qi;
222 int q;
223
224 for (q = 0; q < ATH9K_NUM_TX_QUEUES; q++)
225 if (ah->txq[q].tqi_type ==
227 break;
228 if (q == ATH9K_NUM_TX_QUEUES) {
229 DBG("No available TX queue\n");
230 return -1;
231 }
232
233 DBG2("ath9K: Setup TX queue: %d\n", q);
234
235 qi = &ah->txq[q];
237 DBG("ath9k: TX queue: %d already active\n", q);
238 return -1;
239 }
240 memset(qi, 0, sizeof(struct ath9k_tx_queue_info));
241 qi->tqi_type = type;
242 if (qinfo == NULL) {
243 qi->tqi_qflags =
247 qi->tqi_aifs = INIT_AIFS;
249 qi->tqi_cwmax = INIT_CWMAX;
252 qi->tqi_physCompBuf = 0;
253 } else {
254 qi->tqi_physCompBuf = qinfo->tqi_physCompBuf;
255 (void) ath9k_hw_set_txq_props(ah, q, qinfo);
256 }
257
258 return q;
259}
#define NULL
NULL pointer (VOID *)
Definition Base.h:322
int ath9k_hw_set_txq_props(struct ath_hw *ah, int q, const struct ath9k_tx_queue_info *qinfo)
Definition ath9k_mac.c:164
uint32_t type
Operating system type.
Definition ena.h:1
void * memset(void *dest, int character, size_t len) __nonnull
#define ATH9K_NUM_TX_QUEUES
Definition mac.h:581
u32 tqi_physCompBuf
Definition mac.h:630

References ah, ath9k_hw_set_txq_props(), ATH9K_NUM_TX_QUEUES, ATH9K_TX_QUEUE_INACTIVE, ATH9K_TXQ_USEDEFAULT, DBG, DBG2, INIT_AIFS, INIT_CWMAX, INIT_LG_RETRY, INIT_SH_RETRY, memset(), NULL, ath9k_tx_queue_info::tqi_aifs, ath9k_tx_queue_info::tqi_cwmax, ath9k_tx_queue_info::tqi_cwmin, ath9k_tx_queue_info::tqi_lgretry, ath9k_tx_queue_info::tqi_physCompBuf, ath9k_tx_queue_info::tqi_qflags, ath9k_tx_queue_info::tqi_shretry, ath9k_tx_queue_info::tqi_type, TXQ_FLAG_TXDESCINT_ENABLE, TXQ_FLAG_TXERRINT_ENABLE, TXQ_FLAG_TXOKINT_ENABLE, TXQ_FLAG_TXURNINT_ENABLE, and type.

Referenced by ath_txq_setup().

◆ ath9k_hw_releasetxqueue()

int ath9k_hw_releasetxqueue ( struct ath_hw * ah,
u32 q )

Definition at line 261 of file ath9k_mac.c.

262{
263 struct ath9k_tx_queue_info *qi;
264
265 qi = &ah->txq[q];
267 DBG("ath9k: "
268 "Release TXQ, inactive queue: %d\n", q);
269 return 0;
270 }
271
272 DBG2("ath9k: Release TX queue: %d\n", q);
273
275 ah->txok_interrupt_mask &= ~(1 << q);
276 ah->txerr_interrupt_mask &= ~(1 << q);
277 ah->txdesc_interrupt_mask &= ~(1 << q);
278 ah->txeol_interrupt_mask &= ~(1 << q);
279 ah->txurn_interrupt_mask &= ~(1 << q);
281
282 return 1;
283}
static void ath9k_hw_set_txq_interrupts(struct ath_hw *ah, struct ath9k_tx_queue_info *qi __unused)
Definition ath9k_mac.c:27

References ah, ath9k_hw_set_txq_interrupts(), ATH9K_TX_QUEUE_INACTIVE, DBG, DBG2, ath9k_tx_queue_info::tqi_type, and u32.

Referenced by ath_tx_cleanupq(), and ath_txq_setup().

◆ ath9k_hw_resettxqueue()

int ath9k_hw_resettxqueue ( struct ath_hw * ah,
u32 q )

Definition at line 285 of file ath9k_mac.c.

286{
287 struct ath9k_channel *chan = ah->curchan;
288 struct ath9k_tx_queue_info *qi;
289 u32 cwMin, chanCwMin, value __unused;
290
291 qi = &ah->txq[q];
293 DBG("ath9k: "
294 "Reset TXQ, inactive queue: %d\n", q);
295 return 1;
296 }
297
298 DBG2("ath9k: Reset TX queue: %d\n", q);
299
300 if (qi->tqi_cwmin == ATH9K_TXQ_USEDEFAULT) {
301 if (chan && IS_CHAN_B(chan))
302 chanCwMin = INIT_CWMIN_11B;
303 else
304 chanCwMin = INIT_CWMIN;
305
306 for (cwMin = 1; cwMin < chanCwMin; cwMin = (cwMin << 1) | 1);
307 } else
308 cwMin = qi->tqi_cwmin;
309
311
313 SM(cwMin, AR_D_LCL_IFS_CWMIN) |
316
321
323
324 if (AR_SREV_9340(ah))
327 else
330
331 if (qi->tqi_cbrPeriod) {
338 }
339 if (qi->tqi_readyTime) {
343 }
344
347 (qi->tqi_burstTime ? AR_D_CHNTIME_EN : 0));
348
349 if (qi->tqi_burstTime
352
355
357
360
366 }
367
370
372 ah->txok_interrupt_mask |= 1 << q;
373 else
374 ah->txok_interrupt_mask &= ~(1 << q);
376 ah->txerr_interrupt_mask |= 1 << q;
377 else
378 ah->txerr_interrupt_mask &= ~(1 << q);
380 ah->txdesc_interrupt_mask |= 1 << q;
381 else
382 ah->txdesc_interrupt_mask &= ~(1 << q);
384 ah->txeol_interrupt_mask |= 1 << q;
385 else
386 ah->txeol_interrupt_mask &= ~(1 << q);
388 ah->txurn_interrupt_mask |= 1 << q;
389 else
390 ah->txurn_interrupt_mask &= ~(1 << q);
392
393 return 1;
394}
pseudo_bit_t value[0x00020]
Definition arbel.h:2
#define IS_CHAN_B(_c)
Definition ath5k.h:660
#define AR_D_CHNTIME_DUR
Definition reg.h:563
#define AR_D_MISC_ARB_LOCKOUT_CNTRL
Definition reg.h:590
#define AR_D_LCL_IFS_CWMIN
Definition reg.h:524
#define AR_D_MISC_FRAG_BKOFF_EN
Definition reg.h:583
#define AR_Q_MISC_FSP_CBR
Definition reg.h:445
#define AR_QMISC(_i)
Definition reg.h:442
#define AR_DRETRY_LIMIT(_i)
Definition reg.h:543
#define AR_D_MISC_ARB_LOCKOUT_CNTRL_GLOBAL
Definition reg.h:594
#define AR_D_MISC_FRAG_WAIT_EN
Definition reg.h:582
#define AR_Q_DESC_CRCCHK
Definition reg.h:480
#define AR_DLCL_IFS(_i)
Definition reg.h:523
#define AR_QRDYTIMECFG(_i)
Definition reg.h:419
#define AR_D_MISC_CW_BKOFF_EN
Definition reg.h:584
#define AR_D_LCL_IFS_CWMAX
Definition reg.h:526
#define AR_Q_DESC_CRCCHK_EN
Definition reg.h:482
#define AR_D_CHNTIME_EN
Definition reg.h:565
#define AR_Q_MISC_RDYTIME_EXP_POLICY
Definition reg.h:455
#define AR_DMISC(_i)
Definition reg.h:578
#define AR_Q_MISC_CBR_EXP_CNTR_LIMIT_EN
Definition reg.h:454
#define AR_Q_CBRCFG_INTERVAL
Definition reg.h:404
#define AR_Q_RDYTIMECFG_DURATION
Definition reg.h:420
#define AR_D_RETRY_LIMIT_FR_SH
Definition reg.h:544
#define AR_D_LCL_IFS_AIFS
Definition reg.h:528
#define AR_DCHNTIME(_i)
Definition reg.h:562
#define AR_D_RETRY_LIMIT_STA_SH
Definition reg.h:546
#define AR_D_RETRY_LIMIT_STA_LG
Definition reg.h:548
#define AR_Q_CBRCFG_OVF_THRESH
Definition reg.h:406
#define AR_Q_MISC_DCU_EARLY_TERM_REQ
Definition reg.h:457
#define AR_D_MISC_POST_FR_BKOFF_DIS
Definition reg.h:597
#define AR_Q_RDYTIMECFG_EN
Definition reg.h:422
#define AR_QCBRCFG(_i)
Definition reg.h:403
#define AR_SREV_9340(_ah)
Definition reg.h:879
#define AR_SREV_9300_20_OR_LATER(_ah)
Definition reg.h:865
#define __unused
Declare a variable or data structure as unused.
Definition compiler.h:573
#define REGWRITE_BUFFER_FLUSH(_ah)
Definition hw.h:96
#define ENABLE_REGWRITE_BUFFER(_ah)
Definition hw.h:90
#define INIT_CWMIN_11B
Definition mac.h:73
#define ATH9K_TXQ_USE_LOCKOUT_BKOFF_DIS
Definition mac.h:599
#define INIT_SSH_RETRY
Definition mac.h:77
#define INIT_CWMIN
Definition mac.h:72
#define INIT_SLG_RETRY
Definition mac.h:78
struct net80211_channel * chan
Definition hw.h:348

References __unused, ah, AR_D_CHNTIME_DUR, AR_D_CHNTIME_EN, AR_D_LCL_IFS_AIFS, AR_D_LCL_IFS_CWMAX, AR_D_LCL_IFS_CWMIN, AR_D_MISC_ARB_LOCKOUT_CNTRL, AR_D_MISC_ARB_LOCKOUT_CNTRL_GLOBAL, AR_D_MISC_CW_BKOFF_EN, AR_D_MISC_FRAG_BKOFF_EN, AR_D_MISC_FRAG_WAIT_EN, AR_D_MISC_POST_FR_BKOFF_DIS, AR_D_RETRY_LIMIT_FR_SH, AR_D_RETRY_LIMIT_STA_LG, AR_D_RETRY_LIMIT_STA_SH, AR_DCHNTIME, AR_DLCL_IFS, AR_DMISC, AR_DRETRY_LIMIT, AR_Q_CBRCFG_INTERVAL, AR_Q_CBRCFG_OVF_THRESH, AR_Q_DESC_CRCCHK, AR_Q_DESC_CRCCHK_EN, AR_Q_MISC_CBR_EXP_CNTR_LIMIT_EN, AR_Q_MISC_DCU_EARLY_TERM_REQ, AR_Q_MISC_FSP_CBR, AR_Q_MISC_RDYTIME_EXP_POLICY, AR_Q_RDYTIMECFG_DURATION, AR_Q_RDYTIMECFG_EN, AR_QCBRCFG, AR_QMISC, AR_QRDYTIMECFG, AR_SREV_9300_20_OR_LATER, AR_SREV_9340, ath9k_hw_set_txq_interrupts(), ATH9K_TX_QUEUE_INACTIVE, ATH9K_TXQ_USE_LOCKOUT_BKOFF_DIS, ATH9K_TXQ_USEDEFAULT, ath9k_channel::chan, DBG, DBG2, ENABLE_REGWRITE_BUFFER, INIT_CWMIN, INIT_CWMIN_11B, INIT_SLG_RETRY, INIT_SSH_RETRY, IS_CHAN_B, REG_SET_BIT, REG_WRITE, REGWRITE_BUFFER_FLUSH, SM, ath9k_tx_queue_info::tqi_aifs, ath9k_tx_queue_info::tqi_burstTime, ath9k_tx_queue_info::tqi_cbrOverflowLimit, ath9k_tx_queue_info::tqi_cbrPeriod, ath9k_tx_queue_info::tqi_cwmax, ath9k_tx_queue_info::tqi_cwmin, ath9k_tx_queue_info::tqi_intFlags, ath9k_tx_queue_info::tqi_qflags, ath9k_tx_queue_info::tqi_readyTime, ath9k_tx_queue_info::tqi_shretry, ath9k_tx_queue_info::tqi_type, TXQ_FLAG_BACKOFF_DISABLE, TXQ_FLAG_FRAG_BURST_BACKOFF_ENABLE, TXQ_FLAG_RDYTIME_EXP_POLICY_ENABLE, TXQ_FLAG_TXDESCINT_ENABLE, TXQ_FLAG_TXEOLINT_ENABLE, TXQ_FLAG_TXERRINT_ENABLE, TXQ_FLAG_TXOKINT_ENABLE, TXQ_FLAG_TXURNINT_ENABLE, u32, and value.

Referenced by ath9k_hw_reset().

◆ ath9k_hw_rxprocdesc()

int ath9k_hw_rxprocdesc ( struct ath_hw * ah,
struct ath_desc * ds,
struct ath_rx_status * rs,
u64 tsf )

Definition at line 396 of file ath9k_mac.c.

398{
399 struct ar5416_desc ads;
400 struct ar5416_desc *adsp = AR5416DESC(ds);
401 u32 phyerr;
402
403 if ((adsp->ds_rxstatus8 & AR_RxDone) == 0)
404 return -EINPROGRESS;
405
406 ads.u.rx = adsp->u.rx;
407
408 rs->rs_status = 0;
409 rs->rs_flags = 0;
410
411 rs->rs_datalen = ads.ds_rxstatus1 & AR_DataLen;
412 rs->rs_tstamp = ads.AR_RcvTimestamp;
413
414 if (ads.ds_rxstatus8 & AR_PostDelimCRCErr) {
422 } else {
423 rs->rs_rssi = MS(ads.ds_rxstatus4, AR_RxRSSICombined);
424 rs->rs_rssi_ctl0 = MS(ads.ds_rxstatus0,
426 rs->rs_rssi_ctl1 = MS(ads.ds_rxstatus0,
428 rs->rs_rssi_ctl2 = MS(ads.ds_rxstatus0,
430 rs->rs_rssi_ext0 = MS(ads.ds_rxstatus4,
432 rs->rs_rssi_ext1 = MS(ads.ds_rxstatus4,
434 rs->rs_rssi_ext2 = MS(ads.ds_rxstatus4,
436 }
437 if (ads.ds_rxstatus8 & AR_RxKeyIdxValid)
438 rs->rs_keyix = MS(ads.ds_rxstatus8, AR_KeyIdx);
439 else
441
442 rs->rs_rate = RXSTATUS_RATE(ah, (&ads));
443 rs->rs_more = (ads.ds_rxstatus1 & AR_RxMore) ? 1 : 0;
444
445 rs->rs_isaggr = (ads.ds_rxstatus8 & AR_RxAggr) ? 1 : 0;
446 rs->rs_moreaggr =
447 (ads.ds_rxstatus8 & AR_RxMoreAggr) ? 1 : 0;
448 rs->rs_antenna = MS(ads.ds_rxstatus3, AR_RxAntenna);
449 rs->rs_flags =
450 (ads.ds_rxstatus3 & AR_GI) ? ATH9K_RX_GI : 0;
451 rs->rs_flags |=
452 (ads.ds_rxstatus3 & AR_2040) ? ATH9K_RX_2040 : 0;
453
454 if (ads.ds_rxstatus8 & AR_PreDelimCRCErr)
456 if (ads.ds_rxstatus8 & AR_PostDelimCRCErr)
458 if (ads.ds_rxstatus8 & AR_DecryptBusyErr)
460
461 if ((ads.ds_rxstatus8 & AR_RxFrameOK) == 0) {
462 /*
463 * Treat these errors as mutually exclusive to avoid spurious
464 * extra error reports from the hardware. If a CRC error is
465 * reported, then decryption and MIC errors are irrelevant,
466 * the frame is going to be dropped either way
467 */
468 if (ads.ds_rxstatus8 & AR_CRCErr)
470 else if (ads.ds_rxstatus8 & AR_PHYErr) {
472 phyerr = MS(ads.ds_rxstatus8, AR_PHYErrCode);
473 rs->rs_phyerr = phyerr;
474 } else if (ads.ds_rxstatus8 & AR_DecryptCRCErr)
476 else if (ads.ds_rxstatus8 & AR_MichaelErr)
478 else if (ads.ds_rxstatus8 & AR_KeyMiss)
480 }
481
482 return 0;
483}
#define EINPROGRESS
Operation in progress.
Definition errno.h:419
#define ATH9K_RSSI_BAD
Definition hw.h:73
uint32_t ds
Definition librm.h:5
#define AR_RxKeyIdxValid
Definition mac.h:564
#define AR_KeyIdx
Definition mac.h:565
#define AR_RxAntenna
Definition mac.h:540
#define ATH9K_RXERR_DECRYPT
Definition mac.h:193
#define AR_RxRSSIAnt10
Definition mac.h:543
#define AR_PHYErr
Definition mac.h:560
#define AR_RxMore
Definition mac.h:528
#define ATH9K_RX_DELIM_CRC_POST
Definition mac.h:201
#define AR_DecryptBusyErr
Definition mac.h:573
#define AR_2040
Definition mac.h:536
#define AR_RxMoreAggr
Definition mac.h:569
#define AR_RxRSSIAnt01
Definition mac.h:519
#define AR_RxRSSICombined
Definition mac.h:549
#define ATH9K_RXERR_MIC
Definition mac.h:194
#define AR_KeyMiss
Definition mac.h:574
#define AR_RxAggr
Definition mac.h:570
#define ATH9K_RX_GI
Definition mac.h:198
#define AR_RxRSSIAnt12
Definition mac.h:547
#define AR_CRCErr
Definition mac.h:558
#define AR5416DESC(_ds)
Definition mac.h:319
#define AR_RxRSSIAnt02
Definition mac.h:521
#define RXSTATUS_RATE(ah, ads)
Definition mac.h:28
#define ATH9K_RXERR_CRC
Definition mac.h:190
#define AR_MichaelErr
Definition mac.h:561
#define AR_RxRSSIAnt11
Definition mac.h:545
#define AR_PostDelimCRCErr
Definition mac.h:571
#define AR_PHYErrCode
Definition mac.h:567
#define AR_DecryptCRCErr
Definition mac.h:559
#define AR_DataLen
Definition mac.h:527
#define ATH9K_RXKEYIX_INVALID
Definition mac.h:204
#define ATH9K_RXERR_PHY
Definition mac.h:191
#define AR_RxDone
Definition mac.h:556
#define AR_RxRSSIAnt00
Definition mac.h:517
#define AR_RxFrameOK
Definition mac.h:557
#define ATH9K_RX_DECRYPT_BUSY
Definition mac.h:202
#define ATH9K_RX_DELIM_CRC_PRE
Definition mac.h:200
#define AR_PreDelimCRCErr
Definition mac.h:562
#define ATH9K_RX_2040
Definition mac.h:199
struct ar5416_desc::@121210011246275171146040323047134135046230216042::@153207345350322213010257355102112176136022331213 rx
union ar5416_desc::@121210011246275171146040323047134135046230216042 u
u8 rs_flags
Definition mac.h:156
int8_t rs_rssi_ext1
Definition mac.h:151
u8 rs_rate
Definition mac.h:144
u8 rs_more
Definition mac.h:146
int8_t rs_rssi_ctl1
Definition mac.h:148
u8 rs_status
Definition mac.h:140
int8_t rs_rssi_ext2
Definition mac.h:152
u8 rs_moreaggr
Definition mac.h:154
int8_t rs_rssi_ext0
Definition mac.h:150
int8_t rs_rssi_ctl0
Definition mac.h:147
u8 rs_phyerr
Definition mac.h:141
u8 rs_antenna
Definition mac.h:145
u8 rs_isaggr
Definition mac.h:153
u16 rs_datalen
Definition mac.h:139
u8 rs_keyix
Definition mac.h:143
int8_t rs_rssi_ctl2
Definition mac.h:149
u32 rs_tstamp
Definition mac.h:138
int8_t rs_rssi
Definition mac.h:142

References __unused, ah, AR5416DESC, AR_2040, AR_CRCErr, AR_DataLen, AR_DecryptBusyErr, AR_DecryptCRCErr, AR_GI, AR_KeyIdx, AR_KeyMiss, AR_MichaelErr, AR_PHYErr, AR_PHYErrCode, AR_PostDelimCRCErr, AR_PreDelimCRCErr, AR_RxAggr, AR_RxAntenna, AR_RxDone, AR_RxFrameOK, AR_RxKeyIdxValid, AR_RxMore, AR_RxMoreAggr, AR_RxRSSIAnt00, AR_RxRSSIAnt01, AR_RxRSSIAnt02, AR_RxRSSIAnt10, AR_RxRSSIAnt11, AR_RxRSSIAnt12, AR_RxRSSICombined, ATH9K_RSSI_BAD, ATH9K_RX_2040, ATH9K_RX_DECRYPT_BUSY, ATH9K_RX_DELIM_CRC_POST, ATH9K_RX_DELIM_CRC_PRE, ATH9K_RX_GI, ATH9K_RXERR_CRC, ATH9K_RXERR_DECRYPT, ATH9K_RXERR_MIC, ATH9K_RXERR_PHY, ATH9K_RXKEYIX_INVALID, ds, EINPROGRESS, MS, ath_rx_status::rs_antenna, ath_rx_status::rs_datalen, ath_rx_status::rs_flags, ath_rx_status::rs_isaggr, ath_rx_status::rs_keyix, ath_rx_status::rs_more, ath_rx_status::rs_moreaggr, ath_rx_status::rs_phyerr, ath_rx_status::rs_rate, ath_rx_status::rs_rssi, ath_rx_status::rs_rssi_ctl0, ath_rx_status::rs_rssi_ctl1, ath_rx_status::rs_rssi_ctl2, ath_rx_status::rs_rssi_ext0, ath_rx_status::rs_rssi_ext1, ath_rx_status::rs_rssi_ext2, ath_rx_status::rs_status, ath_rx_status::rs_tstamp, ar5416_desc::rx, RXSTATUS_RATE, ar5416_desc::u, and u32.

Referenced by ath_get_next_rx_buf().

◆ ath9k_hw_setuprxdesc()

void ath9k_hw_setuprxdesc ( struct ath_hw * ah,
struct ath_desc * ds,
u32 size,
u32 flags )

Definition at line 424 of file ath9k_ar9002_mac.c.

426{
427 struct ar5416_desc *ads = AR5416DESC(ds);
428 struct ath9k_hw_capabilities *pCap = &ah->caps;
429
430 ads->ds_ctl1 = size & AR_BufLen;
432 ads->ds_ctl1 |= AR_RxIntrReq;
433
434 ads->ds_rxstatus8 &= ~AR_RxDone;
435 if (!(pCap->hw_caps & ATH9K_HW_CAP_AUTOSLEEP))
436 memset(&(ads->u), 0, sizeof(ads->u));
437}
#define AR_BufLen
Definition ar9003_mac.h:34
uint8_t flags
Flags.
Definition ena.h:7
uint16_t size
Buffer size.
Definition dwmac.h:3
@ ATH9K_HW_CAP_AUTOSLEEP
Definition hw.h:185
#define AR_RxIntrReq
Definition mac.h:514
#define ATH9K_RXDESC_INTREQ
Definition mac.h:275
u32 ds_ctl1
Definition mac.h:281

References ah, AR5416DESC, AR_BufLen, AR_RxDone, AR_RxIntrReq, ATH9K_HW_CAP_AUTOSLEEP, ATH9K_RXDESC_INTREQ, ds, ar5416_desc::ds_ctl1, flags, ath9k_hw_capabilities::hw_caps, memset(), size, ar5416_desc::u, and u32.

Referenced by ath_rx_buf_link().

◆ ath9k_hw_setrxabort()

int ath9k_hw_setrxabort ( struct ath_hw * ah,
int set )

Definition at line 492 of file ath9k_mac.c.

493{
494 u32 reg;
495
496 if (set) {
499
501 0, AH_WAIT_TIMEOUT)) {
505
507 DBG("ath9k: "
508 "RX failed to go idle in 10 ms RXSM=0x%x\n",
509 reg);
510
511 return 0;
512 }
513 } else {
516 }
517
518 return 1;
519}
#define AR_OBS_BUS_1
Definition reg.h:1559
#define AR_DIAG_RX_ABORT
Definition reg.h:1525
#define AR_OBS_BUS_1_RX_STATE
Definition reg.h:1574
#define AR_DIAG_RX_DIS
Definition reg.h:1511
int ath9k_hw_wait(struct ath_hw *ah, u32 reg, u32 mask, u32 val, u32 timeout)
Definition ath9k_hw.c:95
#define AH_WAIT_TIMEOUT
Definition hw.h:146
static unsigned int unsigned int reg
Definition myson.h:162
struct option_descriptor set[0]
Definition nvo_cmd.c:112

References ah, AH_WAIT_TIMEOUT, AR_DIAG_RX_ABORT, AR_DIAG_RX_DIS, AR_DIAG_SW, AR_OBS_BUS_1, AR_OBS_BUS_1_RX_STATE, ath9k_hw_wait(), DBG, reg, REG_CLR_BIT, REG_READ, REG_SET_BIT, set, and u32.

Referenced by ath_isr().

◆ ath9k_hw_putrxbuf()

void ath9k_hw_putrxbuf ( struct ath_hw * ah,
u32 rxdp )

Definition at line 521 of file ath9k_mac.c.

522{
524}
#define AR_RXDP
Definition reg.h:30
@ rxdp
Definition sis900.h:32

References ah, AR_RXDP, REG_WRITE, rxdp, and u32.

Referenced by ath_rx_buf_link(), and ath_startrecv().

◆ ath9k_hw_startpcureceive()

void ath9k_hw_startpcureceive ( struct ath_hw * ah,
int is_scanning )

Definition at line 526 of file ath9k_mac.c.

527{
528 ath9k_ani_reset(ah, is_scanning);
529
531}
void ath9k_ani_reset(struct ath_hw *ah, int is_scanning)
Definition ath9k_ani.c:468

References ah, AR_DIAG_RX_ABORT, AR_DIAG_RX_DIS, AR_DIAG_SW, ath9k_ani_reset(), and REG_CLR_BIT.

Referenced by ath_startrecv().

◆ ath9k_hw_abortpcurecv()

void ath9k_hw_abortpcurecv ( struct ath_hw * ah)

Definition at line 533 of file ath9k_mac.c.

References ah, AR_DIAG_RX_ABORT, AR_DIAG_RX_DIS, AR_DIAG_SW, and REG_SET_BIT.

Referenced by ath_stoprecv().

◆ ath9k_hw_stopdmarecv()

int ath9k_hw_stopdmarecv ( struct ath_hw * ah,
int * reset )

Definition at line 538 of file ath9k_mac.c.

539{
540#define AH_RX_STOP_DMA_TIMEOUT 10000 /* usec */
541 u32 mac_status, last_mac_status = 0;
542 int i;
543
544 /* Enable access to the DMA observation bus */
549
551
552 /* Wait for rx enable bit to go low */
553 for (i = AH_RX_STOP_DMA_TIMEOUT / AH_TIME_QUANTUM; i != 0; i--) {
554 if ((REG_READ(ah, AR_CR) & AR_CR_RXE) == 0)
555 break;
556
558 mac_status = REG_READ(ah, AR_DMADBG_7) & 0x7f0;
559 if (mac_status == 0x1c0 && mac_status == last_mac_status) {
560 *reset = 1;
561 break;
562 }
563
564 last_mac_status = mac_status;
565 }
566
568 }
569
570 if (i == 0) {
571 DBG("ath9k: "
572 "DMA failed to stop in %d ms AR_CR=0x%08x AR_DIAG_SW=0x%08x DMADBG_7=0x%08x\n",
574 REG_READ(ah, AR_CR),
577 return 0;
578 } else {
579 return 1;
580 }
581
582#undef AH_RX_STOP_DMA_TIMEOUT
583}
#define AR_MACMISC_MISC_OBS_BUS_1
Definition reg.h:148
#define AR_MACMISC
Definition reg.h:129
#define AR_MACMISC_DMA_OBS_LINE_8
Definition reg.h:141
#define AR_CR_RXD
Definition reg.h:27
#define AR_MACMISC_MISC_OBS_BUS_MSB_S
Definition reg.h:147
#define AR_CR
Definition reg.h:25
#define AR_CR_RXE
Definition reg.h:26
#define AR_MACMISC_DMA_OBS_S
Definition reg.h:132
#define AR_DMADBG_7
Definition reg.h:358
#define AH_RX_STOP_DMA_TIMEOUT
#define AH_TIME_QUANTUM
Definition hw.h:148

References ah, AH_RX_STOP_DMA_TIMEOUT, AH_TIME_QUANTUM, AR_CR, AR_CR_RXD, AR_CR_RXE, AR_DIAG_SW, AR_DMADBG_7, AR_MACMISC, AR_MACMISC_DMA_OBS_LINE_8, AR_MACMISC_DMA_OBS_S, AR_MACMISC_MISC_OBS_BUS_1, AR_MACMISC_MISC_OBS_BUS_MSB_S, AR_SREV_9300_20_OR_LATER, DBG, REG_READ, REG_WRITE, u32, and udelay().

Referenced by ath_stoprecv().

◆ ath9k_hw_intrpend()

int ath9k_hw_intrpend ( struct ath_hw * ah)

Definition at line 585 of file ath9k_mac.c.

586{
587 u32 host_isr;
588
589 if (AR_SREV_9100(ah) || !(ah->ah_ier & AR_IER_ENABLE))
590 return 1;
591
592 host_isr = REG_READ(ah, AR_INTR_ASYNC_CAUSE);
593 if ((host_isr & AR_INTR_MAC_IRQ) && (host_isr != AR_INTR_SPURIOUS))
594 return 1;
595
596 host_isr = REG_READ(ah, AR_INTR_SYNC_CAUSE);
597 if ((host_isr & AR_INTR_SYNC_DEFAULT)
598 && (host_isr != AR_INTR_SPURIOUS))
599 return 1;
600
601 return 0;
602}
#define AR_INTR_MAC_IRQ
Definition reg.h:916
#define AR_IER_ENABLE
Definition reg.h:56
#define AR_SREV_9100(ah)
Definition reg.h:811
#define AR_INTR_SPURIOUS
Definition reg.h:920
#define AR_INTR_ASYNC_CAUSE
Definition reg.h:976
#define AR_INTR_SYNC_CAUSE
Definition reg.h:923
@ AR_INTR_SYNC_DEFAULT
Definition reg.h:953

References ah, AR_IER_ENABLE, AR_INTR_ASYNC_CAUSE, AR_INTR_MAC_IRQ, AR_INTR_SPURIOUS, AR_INTR_SYNC_CAUSE, AR_INTR_SYNC_DEFAULT, AR_SREV_9100, REG_READ, and u32.

Referenced by ath_isr().

◆ ath9k_hw_set_interrupts()

void ath9k_hw_set_interrupts ( struct ath_hw * ah,
unsigned int ints )

Definition at line 643 of file ath9k_mac.c.

644{
645 enum ath9k_int omask = ah->imask;
646 u32 mask, mask2;
647 struct ath9k_hw_capabilities *pCap = &ah->caps;
648
649 if (!(ints & ATH9K_INT_GLOBAL))
651
652 DBG2("ath9k: 0x%x => 0x%x\n", omask, ints);
653
654 /* TODO: global int Ref count */
655 mask = ints & ATH9K_INT_COMMON;
656 mask2 = 0;
657
658 if (ints & ATH9K_INT_TX) {
659 if (ah->config.tx_intr_mitigation)
661 else {
662 if (ah->txok_interrupt_mask)
663 mask |= AR_IMR_TXOK;
664 if (ah->txdesc_interrupt_mask)
665 mask |= AR_IMR_TXDESC;
666 }
667 if (ah->txerr_interrupt_mask)
668 mask |= AR_IMR_TXERR;
669 if (ah->txeol_interrupt_mask)
670 mask |= AR_IMR_TXEOL;
671 }
672 if (ints & ATH9K_INT_RX) {
675 if (ah->config.rx_intr_mitigation) {
676 mask &= ~AR_IMR_RXOK_LP;
678 } else {
679 mask |= AR_IMR_RXOK_LP;
680 }
681 } else {
682 if (ah->config.rx_intr_mitigation)
684 else
685 mask |= AR_IMR_RXOK | AR_IMR_RXDESC;
686 }
687 if (!(pCap->hw_caps & ATH9K_HW_CAP_AUTOSLEEP))
688 mask |= AR_IMR_GENTMR;
689 }
690
691 if (ints & ATH9K_INT_GENTIMER)
692 mask |= AR_IMR_GENTMR;
693
694 if (ints & (ATH9K_INT_BMISC)) {
695 mask |= AR_IMR_BCNMISC;
696 if (ints & ATH9K_INT_TIM)
697 mask2 |= AR_IMR_S2_TIM;
698 if (ints & ATH9K_INT_DTIM)
699 mask2 |= AR_IMR_S2_DTIM;
700 if (ints & ATH9K_INT_DTIMSYNC)
701 mask2 |= AR_IMR_S2_DTIMSYNC;
702 if (ints & ATH9K_INT_CABEND)
703 mask2 |= AR_IMR_S2_CABEND;
704 if (ints & ATH9K_INT_TSFOOR)
705 mask2 |= AR_IMR_S2_TSFOOR;
706 }
707
708 if (ints & (ATH9K_INT_GTT | ATH9K_INT_CST)) {
709 mask |= AR_IMR_BCNMISC;
710 if (ints & ATH9K_INT_GTT)
711 mask2 |= AR_IMR_S2_GTT;
712 if (ints & ATH9K_INT_CST)
713 mask2 |= AR_IMR_S2_CST;
714 }
715
716 DBG2("ath9k: new IMR 0x%x\n", mask);
717 REG_WRITE(ah, AR_IMR, mask);
721 ah->imrs2_reg |= mask2;
722 REG_WRITE(ah, AR_IMR_S2, ah->imrs2_reg);
723
724 if (!(pCap->hw_caps & ATH9K_HW_CAP_AUTOSLEEP)) {
725 if (ints & ATH9K_INT_TIM_TIMER)
727 else
729 }
730
731 if (ints & ATH9K_INT_GLOBAL)
733
734 return;
735}
#define AR_IMR_TXERR
Definition reg.h:270
#define AR_IMR_S2_TSFOOR
Definition reg.h:318
#define AR_IMR_RXERR
Definition reg.h:264
#define AR_IMR_BCNMISC
Definition reg.h:283
#define AR_IMR_RXOK_HP
Definition reg.h:262
#define AR_IMR_S5
Definition reg.h:247
#define AR_IMR_TXEOL
Definition reg.h:272
#define AR_IMR_S2
Definition reg.h:307
#define AR_IMR_TXMINTR
Definition reg.h:290
#define AR_IMR_S2_GTT
Definition reg.h:311
#define AR_IMR_S2_CST
Definition reg.h:310
#define AR_IMR_RXOK_LP
Definition reg.h:263
#define AR_IMR
Definition reg.h:259
#define AR_IMR_S2_CABTO
Definition reg.h:316
#define AR_IMR_S5_TIM_TIMER
Definition reg.h:248
#define AR_IMR_S2_DTIM
Definition reg.h:317
#define AR_IMR_S2_TIM
Definition reg.h:312
#define AR_IMR_RXDESC
Definition reg.h:261
#define AR_IMR_TXDESC
Definition reg.h:269
#define AR_IMR_TXINTM
Definition reg.h:292
#define AR_IMR_TXOK
Definition reg.h:268
#define AR_IMR_S2_CABEND
Definition reg.h:313
#define AR_IMR_GENTMR
Definition reg.h:288
#define AR_IMR_RXINTM
Definition reg.h:293
#define AR_IMR_RXMINTR
Definition reg.h:291
#define AR_IMR_S2_DTIMSYNC
Definition reg.h:314
#define AR_IMR_RXOK
Definition reg.h:260
ath9k_int
Definition hw.h:252
@ ATH9K_INT_CST
Definition hw.h:278
@ ATH9K_INT_GENTIMER
Definition hw.h:277
@ ATH9K_INT_RX
Definition hw.h:253
@ ATH9K_INT_GTT
Definition hw.h:279
@ ATH9K_INT_COMMON
Definition hw.h:287
@ ATH9K_INT_CABEND
Definition hw.h:275
@ ATH9K_INT_TX
Definition hw.h:260
@ ATH9K_INT_DTIM
Definition hw.h:272
@ ATH9K_INT_DTIMSYNC
Definition hw.h:273
@ ATH9K_INT_TIM
Definition hw.h:271
@ ATH9K_INT_BMISC
Definition hw.h:282
@ ATH9K_INT_TSFOOR
Definition hw.h:276
@ ATH9K_INT_TIM_TIMER
Definition hw.h:262
@ ATH9K_INT_GLOBAL
Definition hw.h:281

References ah, AR_IMR, AR_IMR_BCNMISC, AR_IMR_GENTMR, AR_IMR_RXDESC, AR_IMR_RXERR, AR_IMR_RXINTM, AR_IMR_RXMINTR, AR_IMR_RXOK, AR_IMR_RXOK_HP, AR_IMR_RXOK_LP, AR_IMR_S2, AR_IMR_S2_CABEND, AR_IMR_S2_CABTO, AR_IMR_S2_CST, AR_IMR_S2_DTIM, AR_IMR_S2_DTIMSYNC, AR_IMR_S2_GTT, AR_IMR_S2_TIM, AR_IMR_S2_TSFOOR, AR_IMR_S5, AR_IMR_S5_TIM_TIMER, AR_IMR_TXDESC, AR_IMR_TXEOL, AR_IMR_TXERR, AR_IMR_TXINTM, AR_IMR_TXMINTR, AR_IMR_TXOK, AR_SREV_9300_20_OR_LATER, ATH9K_HW_CAP_AUTOSLEEP, ath9k_hw_disable_interrupts(), ath9k_hw_enable_interrupts(), ATH9K_INT_BMISC, ATH9K_INT_CABEND, ATH9K_INT_COMMON, ATH9K_INT_CST, ATH9K_INT_DTIM, ATH9K_INT_DTIMSYNC, ATH9K_INT_GENTIMER, ATH9K_INT_GLOBAL, ATH9K_INT_GTT, ATH9K_INT_RX, ATH9K_INT_TIM, ATH9K_INT_TIM_TIMER, ATH9K_INT_TSFOOR, ATH9K_INT_TX, DBG2, ath9k_hw_capabilities::hw_caps, REG_CLR_BIT, REG_SET_BIT, REG_WRITE, and u32.

Referenced by ath9k_irq(), ath9k_start(), ath_reset(), and ath_set_channel().

◆ ath9k_hw_enable_interrupts()

void ath9k_hw_enable_interrupts ( struct ath_hw * ah)

Definition at line 618 of file ath9k_mac.c.

619{
620 u32 sync_default = AR_INTR_SYNC_DEFAULT;
621
622 if (!(ah->imask & ATH9K_INT_GLOBAL))
623 return;
624
625 if (AR_SREV_9340(ah))
626 sync_default &= ~AR_INTR_SYNC_HOST1_FATAL;
627
628 DBG2("ath9k: enable IER\n");
629 REG_WRITE(ah, AR_IER, ah->ah_ier);
630 if (!AR_SREV_9100(ah)) {
634
635
636 REG_WRITE(ah, AR_INTR_SYNC_ENABLE, sync_default);
637 REG_WRITE(ah, AR_INTR_SYNC_MASK, sync_default);
638 }
639 DBG2("ath9k: AR_IMR 0x%x IER 0x%x\n",
641}
#define AR_INTR_ASYNC_ENABLE
Definition reg.h:978
#define AR_INTR_SYNC_MASK
Definition reg.h:971
#define AR_INTR_ASYNC_MASK
Definition reg.h:967
@ AR_INTR_SYNC_HOST1_FATAL
Definition reg.h:937
#define AR_INTR_SYNC_ENABLE
Definition reg.h:927
#define AR_IER
Definition reg.h:55

References ah, AR_IER, AR_IMR, AR_INTR_ASYNC_ENABLE, AR_INTR_ASYNC_MASK, AR_INTR_MAC_IRQ, AR_INTR_SYNC_DEFAULT, AR_INTR_SYNC_ENABLE, AR_INTR_SYNC_HOST1_FATAL, AR_INTR_SYNC_MASK, AR_SREV_9100, AR_SREV_9340, ATH9K_INT_GLOBAL, DBG2, REG_READ, REG_WRITE, and u32.

Referenced by ath9k_hw_set_interrupts(), ath9k_hw_updatetxtriglevel(), and ath9k_tasklet().

◆ ath9k_hw_disable_interrupts()

void ath9k_hw_disable_interrupts ( struct ath_hw * ah)

◆ ar9002_hw_attach_mac_ops()

void ar9002_hw_attach_mac_ops ( struct ath_hw * ah)

Definition at line 439 of file ath9k_ar9002_mac.c.

440{
441 struct ath_hw_ops *ops = ath9k_hw_ops(ah);
442
456}
static int ar9002_hw_proc_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_status *ts)
static void ar9002_hw_get_desc_link(void *ds, u32 **ds_link)
static void ar9002_hw_set11n_aggr_first(struct ath_hw *ah __unused, void *ds, u32 aggrLen)
static void ar9002_hw_fill_txdesc(struct ath_hw *ah __unused, void *ds, u32 seglen, int is_firstseg, int is_lastseg, const void *ds0, u32 buf_addr, unsigned int qcu __unused)
static void ar9002_hw_set11n_ratescenario(struct ath_hw *ah __unused, void *ds, void *lastds, u32 durUpdateEn, u32 rtsctsRate, u32 rtsctsDuration __unused, struct ath9k_11n_rate_series series[], u32 nseries __unused, u32 flags)
static void ar9002_hw_set_clrdmask(struct ath_hw *ah __unused, void *ds, int val)
static void ar9002_hw_set11n_aggr_last(struct ath_hw *ah __unused, void *ds)
static void ar9002_hw_rx_enable(struct ath_hw *ah)
static void ar9002_hw_set11n_aggr_middle(struct ath_hw *ah __unused, void *ds, u32 numDelims)
static void ar9002_hw_clr11n_aggr(struct ath_hw *ah __unused, void *ds)
static void ar9002_hw_set_desc_link(void *ds, u32 ds_link)
static int ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
static void ar9002_hw_set11n_txdesc(struct ath_hw *ah, void *ds, u32 pktLen, enum ath9k_pkt_type type, u32 txPower, u32 keyIx, enum ath9k_key_type keyType, u32 flags)
static struct ath_hw_ops * ath9k_hw_ops(struct ath_hw *ah)
Definition hw.h:885
struct ath_hw_ops - callbacks used by hardware code and driver code
Definition hw.h:604
void(* set11n_aggr_first)(struct ath_hw *ah, void *ds, u32 aggrLen)
Definition hw.h:633
int(* proc_txdesc)(struct ath_hw *ah, void *ds, struct ath_tx_status *ts)
Definition hw.h:620
void(* rx_enable)(struct ath_hw *ah)
Definition hw.h:608
void(* set_desc_link)(void *ds, u32 link)
Definition hw.h:609
void(* set11n_ratescenario)(struct ath_hw *ah, void *ds, void *lastds, u32 durUpdateEn, u32 rtsctsRate, u32 rtsctsDuration, struct ath9k_11n_rate_series series[], u32 nseries, u32 flags)
Definition hw.h:627
void(* clr11n_aggr)(struct ath_hw *ah, void *ds)
Definition hw.h:638
void(* set11n_txdesc)(struct ath_hw *ah, void *ds, u32 pktLen, enum ath9k_pkt_type type, u32 txPower, u32 keyIx, enum ath9k_key_type keyType, u32 flags)
Definition hw.h:622
void(* set_clrdmask)(struct ath_hw *ah, void *ds, int val)
Definition hw.h:639
void(* set11n_aggr_last)(struct ath_hw *ah, void *ds)
Definition hw.h:637
void(* fill_txdesc)(struct ath_hw *ah, void *ds, u32 seglen, int is_firstseg, int is_is_lastseg, const void *ds0, u32 buf_addr, unsigned int qcu)
Definition hw.h:616
int(* get_isr)(struct ath_hw *ah, enum ath9k_int *masked)
Definition hw.h:615
void(* get_desc_link)(void *ds, u32 **link)
Definition hw.h:610
void(* set11n_aggr_middle)(struct ath_hw *ah, void *ds, u32 numDelims)
Definition hw.h:635

References ah, ar9002_hw_clr11n_aggr(), ar9002_hw_fill_txdesc(), ar9002_hw_get_desc_link(), ar9002_hw_get_isr(), ar9002_hw_proc_txdesc(), ar9002_hw_rx_enable(), ar9002_hw_set11n_aggr_first(), ar9002_hw_set11n_aggr_last(), ar9002_hw_set11n_aggr_middle(), ar9002_hw_set11n_ratescenario(), ar9002_hw_set11n_txdesc(), ar9002_hw_set_clrdmask(), ar9002_hw_set_desc_link(), ath9k_hw_ops(), ath_hw_ops::clr11n_aggr, ath_hw_ops::fill_txdesc, ath_hw_ops::get_desc_link, ath_hw_ops::get_isr, ath_hw_ops::proc_txdesc, ath_hw_ops::rx_enable, ath_hw_ops::set11n_aggr_first, ath_hw_ops::set11n_aggr_last, ath_hw_ops::set11n_aggr_middle, ath_hw_ops::set11n_ratescenario, ath_hw_ops::set11n_txdesc, ath_hw_ops::set_clrdmask, and ath_hw_ops::set_desc_link.

Referenced by ar9002_hw_attach_ops().