Linux Kernel
3.7.1
|
Go to the source code of this file.
Macros | |
#define | ATH9K_TX_STOP_DMA_TIMEOUT 1000 /* usec */ |
#define | ATH9K_TIME_QUANTUM 100 /* usec */ |
#define | AH_RX_STOP_DMA_TIMEOUT 10000 /* usec */ |
#define AH_RX_STOP_DMA_TIMEOUT 10000 /* usec */ |
#define ATH9K_TIME_QUANTUM 100 /* usec */ |
#define ATH9K_TX_STOP_DMA_TIMEOUT 1000 /* usec */ |
int ath9k_hw_setuptxqueue | ( | struct ath_hw * | ah, |
enum ath9k_tx_queue | type, | ||
const struct ath9k_tx_queue_info * | qinfo | ||
) |
ath9k_hw_updatetxtriglevel - adjusts the frame trigger level
: atheros hardware struct : 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.
EXPORT_SYMBOL | ( | ath9k_hw_gettxbuf | ) |
EXPORT_SYMBOL | ( | ath9k_hw_puttxbuf | ) |
EXPORT_SYMBOL | ( | ath9k_hw_txstart | ) |
EXPORT_SYMBOL | ( | ath9k_hw_numtxpending | ) |
EXPORT_SYMBOL | ( | ath9k_hw_updatetxtriglevel | ) |
EXPORT_SYMBOL | ( | ath9k_hw_abort_tx_dma | ) |
EXPORT_SYMBOL | ( | ath9k_hw_stop_dma_queue | ) |
EXPORT_SYMBOL | ( | ath9k_hw_set_txq_props | ) |
EXPORT_SYMBOL | ( | ath9k_hw_get_txq_props | ) |
EXPORT_SYMBOL | ( | ath9k_hw_setuptxqueue | ) |
EXPORT_SYMBOL | ( | ath9k_hw_releasetxqueue | ) |
EXPORT_SYMBOL | ( | ath9k_hw_resettxqueue | ) |
EXPORT_SYMBOL | ( | ath9k_hw_rxprocdesc | ) |
EXPORT_SYMBOL | ( | ath9k_hw_setrxabort | ) |
EXPORT_SYMBOL | ( | ath9k_hw_putrxbuf | ) |
EXPORT_SYMBOL | ( | ath9k_hw_startpcureceive | ) |
EXPORT_SYMBOL | ( | ath9k_hw_abortpcurecv | ) |
EXPORT_SYMBOL | ( | ath9k_hw_stopdmarecv | ) |
EXPORT_SYMBOL | ( | ath9k_hw_beaconq_setup | ) |
EXPORT_SYMBOL | ( | ath9k_hw_intrpend | ) |
EXPORT_SYMBOL | ( | ath9k_hw_kill_interrupts | ) |
EXPORT_SYMBOL | ( | ath9k_hw_disable_interrupts | ) |
EXPORT_SYMBOL | ( | ath9k_hw_enable_interrupts | ) |
EXPORT_SYMBOL | ( | ath9k_hw_set_interrupts | ) |