44 unsigned int tx_power
__unused,
unsigned int tx_rate0,
unsigned int tx_tries0,
45 unsigned int key_index
__unused,
unsigned int antenna_mode,
unsigned int flags,
46 unsigned int rtscts_rate
__unused,
unsigned int rtscts_duration)
50 unsigned int frame_len;
61 DBG(
"ath5k: zero retries\n");
65 DBG(
"ath5k: zero rate\n");
128 #define _TX_FLAGS(_c, _flag) \ 129 if (flags & AR5K_TXDESC_##_flag) { \ 130 tx_ctl->tx_control_##_c |= \ 131 AR5K_2W_TX_DESC_CTL##_c##_##_flag; \ 159 unsigned int tx_tries0,
unsigned int key_index
__unused,
160 unsigned int antenna_mode,
unsigned int flags,
161 unsigned int rtscts_rate,
162 unsigned int rtscts_duration)
165 unsigned int frame_len;
175 if (tx_tries0 == 0) {
176 DBG(
"ath5k: zero retries\n");
180 DBG(
"ath5k: zero rate\n");
184 tx_power +=
ah->ah_txpower.txp_offset;
218 #define _TX_FLAGS(_c, _flag) \ 219 if (flags & AR5K_TXDESC_##_flag) { \ 220 tx_ctl->tx_control_##_c |= \ 221 AR5K_4W_TX_DESC_CTL##_c##_##_flag; \ 240 tx_ctl->tx_control_2 |= rtscts_duration &
259 tx_status = &
desc->ud.ds_tx5210.tx_stat;
311 tx_status = &
desc->ud.ds_tx5212.tx_stat;
400 rx_status = &
desc->ud.ds_rx.u.rx_stat;
463 rx_status = &
desc->ud.ds_rx.u.rx_stat;
#define AR5K_2W_TX_DESC_CTL1_BUF_LEN
#define AR5K_5212_RX_DESC_STATUS1_MIC_ERROR
#define EINVAL
Invalid argument.
#define AR5K_AR5210_TX_DESC_FRAME_TYPE_PIFS
struct ath5k_hw_rx_error rx_err
static int ath5k_hw_setup_2word_tx_desc(struct ath5k_hw *ah, struct ath5k_desc *desc, unsigned int pkt_len, unsigned int hdr_len, enum ath5k_pkt_type type, unsigned int tx_power __unused, unsigned int tx_rate0, unsigned int tx_tries0, unsigned int key_index __unused, unsigned int antenna_mode, unsigned int flags, unsigned int rtscts_rate __unused, unsigned int rtscts_duration)
#define AR5K_5210_RX_DESC_STATUS1_DECRYPT_CRC_ERROR
#define AR5K_5210_RX_DESC_STATUS0_RECEIVE_SIGNAL
#define AR5K_RXDESC_INTREQ
#define AR5K_5212_RX_DESC_STATUS1_RECEIVE_TIMESTAMP
#define AR5K_5210_RX_DESC_STATUS0_RECEIVE_ANTENNA
#define AR5K_4W_TX_DESC_CTL1_FRAME_TYPE
#define AR5K_5212_RX_DESC_STATUS1_FRAME_RECEIVE_OK
uint32_t type
Operating system type.
#define AR5K_2W_TX_DESC_CTL1_FRAME_TYPE
uint8_t size
Entry size (in 32-bit words)
uint64_t desc
Microcode descriptor list physical address.
int ath5k_hw_init_desc_functions(struct ath5k_hw *ah)
#define AR5K_DESC_TX_STATUS1_SEQ_NUM
#define AR5K_2W_TX_DESC_CTL0_FRAME_TYPE
#define AR5K_DESC_TX_STATUS0_FILTERED
#define AR5K_DESC_TX_STATUS0_LONG_RETRY_COUNT
#define AR5K_5212_RX_DESC_STATUS1_DECRYPT_CRC_ERROR
#define AR5K_4W_TX_DESC_CTL0_FRAME_LEN
#define AR5K_REG_MS(_val, _flags)
struct ath5k_hw_rx_ctl rx_ctl
#define AR5K_2W_TX_DESC_CTL0_XMIT_RATE
#define AR5K_DESC_TX_STATUS0_FIFO_UNDERRUN
#define AR5K_5210_RX_DESC_STATUS0_RECEIVE_RATE
#define AR5K_5212_RX_DESC_STATUS1_CRC_ERROR
#define AR5K_DESC_TX_STATUS1_ACK_SIG_STRENGTH
ath5k_hw_get_isr - Get interrupt status
#define ENOTSUP
Operation not supported.
#define AR5K_RXERR_DECRYPT
#define _TX_FLAGS(_c, _flag)
#define AR5K_RXKEYIX_INVALID
#define AR5K_2W_TX_DESC_CTL1_RTS_DURATION
#define AR5K_5210_RX_DESC_STATUS1_CRC_ERROR
#define AR5K_DESC_TX_STATUS0_SEND_TIMESTAMP
#define AR5K_TXDESC_RTSENA
#define AR5K_TXERR_XRETRY
#define AR5K_AR5210_TX_DESC_FRAME_TYPE_NO_DELAY
#define __unused
Declare a variable or data structure as unused.
#define AR5K_5212_RX_DESC_STATUS0_MORE
#define AR5K_5210_RX_DESC_STATUS1_FIFO_OVERRUN
#define AR5K_5210_RX_DESC_STATUS0_DATA_LEN
#define AR5K_DESC_RX_CTL1_INTREQ
static int ath5k_hw_proc_5210_rx_status(struct ath5k_hw *ah __unused, struct ath5k_desc *desc, struct ath5k_rx_status *rs)
#define AR5K_DESC_TX_STATUS0_EXCESSIVE_RETRIES
#define AR5K_5212_RX_DESC_STATUS0_RECEIVE_RATE
#define EINPROGRESS
Operation in progress.
static int ath5k_hw_setup_4word_tx_desc(struct ath5k_hw *ah, struct ath5k_desc *desc, unsigned int pkt_len, unsigned int hdr_len __unused, enum ath5k_pkt_type type, unsigned int tx_power, unsigned int tx_rate0, unsigned int tx_tries0, unsigned int key_index __unused, unsigned int antenna_mode, unsigned int flags, unsigned int rtscts_rate, unsigned int rtscts_duration)
struct ath5k_hw_2w_tx_ctl tx_ctl
#define AR5K_4W_TX_DESC_CTL3_RTS_CTS_RATE
#define AR5K_4W_TX_DESC_CTL3_XMIT_RATE0
#define AR5K_5210_RX_DESC_STATUS1_FRAME_RECEIVE_OK
#define AR5K_DESC_TX_STATUS1_XMIT_ANTENNA
#define AR5K_5212_RX_DESC_STATUS0_DATA_LEN
static int ath5k_hw_proc_5212_rx_status(struct ath5k_hw *ah __unused, struct ath5k_desc *desc, struct ath5k_rx_status *rs)
#define AR5K_DESC_TX_STATUS0_FRAME_XMIT_OK
#define AR5K_5210_RX_DESC_STATUS1_RECEIVE_TIMESTAMP
#define AR5K_5210_RX_DESC_STATUS0_MORE
#define AR5K_TUNE_HWTXTRIES
#define AR5K_5212_RX_DESC_STATUS1_PHY_ERROR
#define AR5K_4W_TX_DESC_CTL0_XMIT_POWER
#define AR5K_4W_TX_DESC_CTL1_BUF_LEN
#define AR5K_4W_TX_DESC_CTL2_RTS_DURATION
static int ath5k_hw_proc_4word_tx_status(struct ath5k_hw *ah __unused, struct ath5k_desc *desc, struct ath5k_tx_status *ts)
#define AR5K_TXDESC_CTSENA
#define AR5K_5212_RX_DESC_STATUS1_DONE
#define AR5K_4W_TX_DESC_CTL2_XMIT_TRIES0
#define AR5K_2W_TX_DESC_CTL0_ANT_MODE_XMIT
#define AR5K_5212_RX_DESC_STATUS0_RECEIVE_ANTENNA
#define AR5K_DESC_TX_STATUS1_FINAL_TS_INDEX
#define AR5K_5212_RX_DESC_STATUS0_RECEIVE_SIGNAL
#define AR5K_RX_DESC_ERROR1_PHY_ERROR_CODE
#define DBG(...)
Print a debugging message.
#define AR5K_2W_TX_DESC_CTL0_FRAME_LEN
#define AR5K_5210_RX_DESC_STATUS1_DONE
#define AR5K_2W_TX_DESC_CTL0_HEADER_LEN
#define AR5K_DESC_RX_CTL1_BUF_LEN
#define AR5K_4W_TX_DESC_CTL0_ANT_MODE_XMIT
#define AR5K_5210_RX_DESC_STATUS1_PHY_ERROR
static int ath5k_hw_proc_2word_tx_status(struct ath5k_hw *ah __unused, struct ath5k_desc *desc, struct ath5k_tx_status *ts)
#define AR5K_TUNE_MAX_TXPOWER
#define AR5K_DESC_TX_STATUS0_SHORT_RETRY_COUNT
void * memset(void *dest, int character, size_t len) __nonnull
static int ath5k_hw_setup_rx_desc(struct ath5k_hw *ah __unused, struct ath5k_desc *desc, u32 size, unsigned int flags)
#define AR5K_REG_SM(_val, _flags)
#define AR5K_DESC_TX_STATUS1_DONE