ath5k: Implement per-queue interrupts
PATCH 4/9 ath5k: Implement per-queue interrupts
* Implement per-queue interrupt handling. For now treat TXDESC and TXEOL as INT_TX so we can handle them in base.c.
Changes-licensed-under: ISC
Signed-off-by Nick Kossifidis <[email protected]>
---
drivers/net/wireless/ath5k/ath5k.h +16 -12
@@ -339,17 +339,17 @@ enum ath5k_tx_queue_id {/* * Flags to set hw queue's parameters... -* TODO: Implement missing stuff (almost there, -* probably have to tweak with SISR). */ -#define AR5K_TXQ_FLAG_TXINT_ENABLE 0x0001/* Enable TXOK and TXERR interrupts -not used- */ -#define AR5K_TXQ_FLAG_TXDESCINT_ENABLE 0x0002/* Enable TXDESC interrupt -not implemented- */ -#define AR5K_TXQ_FLAG_BACKOFF_DISABLE 0x0004/* Disable random post-backoff */ -#define AR5K_TXQ_FLAG_COMPRESSION_ENABLE 0x0008/* Enable hw compression -not implemented-*/ -#define AR5K_TXQ_FLAG_RDYTIME_EXP_POLICY_ENABLE 0x0010/* Enable ready time expiry policy (?)*/ -#define AR5K_TXQ_FLAG_FRAG_BURST_BACKOFF_ENABLE 0x0020/* Enable backoff while bursting */ -#define AR5K_TXQ_FLAG_POST_FR_BKOFF_DIS 0x0040/* Disable backoff while bursting */ -#define AR5K_TXQ_FLAG_TXEOLINT_ENABLE 0x0080/* Enable TXEOL interrupt -not implemented-*/ +#define AR5K_TXQ_FLAG_TXOKINT_ENABLE 0x0001/* Enable TXOK interrupt */ +#define AR5K_TXQ_FLAG_TXERRINT_ENABLE 0x0002/* Enable TXERR interrupt */ +#define AR5K_TXQ_FLAG_TXEOLINT_ENABLE 0x0004/* Enable TXEOL interrupt -not used- */ +#define AR5K_TXQ_FLAG_TXDESCINT_ENABLE 0x0008/* Enable TXDESC interrupt -not used- */ +#define AR5K_TXQ_FLAG_TXURNINT_ENABLE 0x0010/* Enable TXURN interrupt */ +#define AR5K_TXQ_FLAG_BACKOFF_DISABLE 0x0020/* Disable random post-backoff */ +#define AR5K_TXQ_FLAG_RDYTIME_EXP_POLICY_ENABLE 0x0040/* Enable ready time expiry policy (?)*/ +#define AR5K_TXQ_FLAG_FRAG_BURST_BACKOFF_ENABLE 0x0080/* Enable backoff while bursting */ +#define AR5K_TXQ_FLAG_POST_FR_BKOFF_DIS 0x0100/* Disable backoff while bursting */ +#define AR5K_TXQ_FLAG_COMPRESSION_ENABLE 0x0200/* Enable hw compression -not implemented-*/ /* * A struct to hold tx queue's parameters
@@ -981,8 +981,12 @@ struct ath5k_hw {struct ath5k_capabilities ah_capabilities;struct ath5k_txq_info ah_txq[AR5K_NUM_TX_QUEUES ]; -u32 ah_txq_interrupts; - +u32 ah_txq_status; +u32 ah_txq_imr_txok; +u32 ah_txq_imr_txerr; +u32 ah_txq_imr_txurn; +u32 ah_txq_imr_txdesc; +u32 ah_txq_imr_txeol;u32 *ah_rf_banks;size_t ah_rf_banks_size;struct ath5k_gain ah_gain;
drivers/net/wireless/ath5k/hw.c +37 -10
77 lines not on this page · raw message