aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/ath9k.h
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-10-11 17:30:52 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-10-14 13:39:58 -0400
commit1a04d59d3ec982689552077172893b6836def984 (patch)
tree7973659757e31fa83614ac2c503a984876548fbe /drivers/net/wireless/ath/ath9k/ath9k.h
parent50d60c6322f14e32bc11635732c54db1447fd3f5 (diff)
ath9k: use a separate data structure for rx buffers
There's no shared code for handling both rx and tx buffers, and tx buffers require a lot more metadata than rx buffers. Using a separate data structure for rx reduces memory usage and improves cache footprint. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/ath9k.h')
-rw-r--r--drivers/net/wireless/ath/ath9k/ath9k.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index 8878f2dada2d..83c045549db4 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -207,6 +207,14 @@ struct ath_frame_info {
207 u8 baw_tracked : 1; 207 u8 baw_tracked : 1;
208}; 208};
209 209
210struct ath_rxbuf {
211 struct list_head list;
212 struct sk_buff *bf_mpdu;
213 void *bf_desc;
214 dma_addr_t bf_daddr;
215 dma_addr_t bf_buf_addr;
216};
217
210struct ath_buf_state { 218struct ath_buf_state {
211 u8 bf_type; 219 u8 bf_type;
212 u8 bfs_paprd; 220 u8 bfs_paprd;
@@ -307,7 +315,7 @@ struct ath_rx {
307 struct ath_descdma rxdma; 315 struct ath_descdma rxdma;
308 struct ath_rx_edma rx_edma[ATH9K_RX_QUEUE_MAX]; 316 struct ath_rx_edma rx_edma[ATH9K_RX_QUEUE_MAX];
309 317
310 struct ath_buf *buf_hold; 318 struct ath_rxbuf *buf_hold;
311 struct sk_buff *frag; 319 struct sk_buff *frag;
312 320
313 u32 ampdu_ref; 321 u32 ampdu_ref;