aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2x00queue.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00queue.h')
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00queue.h35
1 files changed, 21 insertions, 14 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.h b/drivers/net/wireless/rt2x00/rt2x00queue.h
index fcf52520b016..5dd9cca3c62c 100644
--- a/drivers/net/wireless/rt2x00/rt2x00queue.h
+++ b/drivers/net/wireless/rt2x00/rt2x00queue.h
@@ -42,15 +42,18 @@
42/** 42/**
43 * DOC: Number of entries per queue 43 * DOC: Number of entries per queue
44 * 44 *
45 * After research it was concluded that 12 entries in a RX and TX 45 * Under normal load without fragmentation 12 entries are sufficient
46 * queue would be sufficient. Although this is almost one third of 46 * without the queue being filled up to the maximum. When using fragmentation
47 * the amount the legacy driver allocated, the queues aren't getting 47 * and the queue threshold code we need to add some additional margins to
48 * filled to the maximum even when working with the maximum rate. 48 * make sure the queue will never (or only under extreme load) fill up
49 * completely.
50 * Since we don't use preallocated DMA having a large number of queue entries
51 * will have only minimal impact on the memory requirements for the queue.
49 */ 52 */
50#define RX_ENTRIES 12 53#define RX_ENTRIES 24
51#define TX_ENTRIES 12 54#define TX_ENTRIES 24
52#define BEACON_ENTRIES 1 55#define BEACON_ENTRIES 1
53#define ATIM_ENTRIES 1 56#define ATIM_ENTRIES 8
54 57
55/** 58/**
56 * enum data_queue_qid: Queue identification 59 * enum data_queue_qid: Queue identification
@@ -82,10 +85,13 @@ enum data_queue_qid {
82/** 85/**
83 * enum skb_frame_desc_flags: Flags for &struct skb_frame_desc 86 * enum skb_frame_desc_flags: Flags for &struct skb_frame_desc
84 * 87 *
88 * @SKBDESC_DMA_MAPPED_RX: &skb_dma field has been mapped for RX
89 * @SKBDESC_DMA_MAPPED_TX: &skb_dma field has been mapped for TX
85 */ 90 */
86//enum skb_frame_desc_flags { 91enum skb_frame_desc_flags {
87// TEMPORARILY EMPTY 92 SKBDESC_DMA_MAPPED_RX = (1 << 0),
88//}; 93 SKBDESC_DMA_MAPPED_TX = (1 << 1),
94};
89 95
90/** 96/**
91 * struct skb_frame_desc: Descriptor information for the skb buffer 97 * struct skb_frame_desc: Descriptor information for the skb buffer
@@ -94,19 +100,20 @@ enum data_queue_qid {
94 * this structure should not exceed the size of that array (40 bytes). 100 * this structure should not exceed the size of that array (40 bytes).
95 * 101 *
96 * @flags: Frame flags, see &enum skb_frame_desc_flags. 102 * @flags: Frame flags, see &enum skb_frame_desc_flags.
97 * @data: Pointer to data part of frame (Start of ieee80211 header). 103 * @desc_len: Length of the frame descriptor.
98 * @desc: Pointer to descriptor part of the frame. 104 * @desc: Pointer to descriptor part of the frame.
99 * Note that this pointer could point to something outside 105 * Note that this pointer could point to something outside
100 * of the scope of the skb->data pointer. 106 * of the scope of the skb->data pointer.
101 * @data_len: Length of the frame data. 107 * @skb_dma: (PCI-only) the DMA address associated with the sk buffer.
102 * @desc_len: Length of the frame descriptor.
103 * @entry: The entry to which this sk buffer belongs. 108 * @entry: The entry to which this sk buffer belongs.
104 */ 109 */
105struct skb_frame_desc { 110struct skb_frame_desc {
106 unsigned int flags; 111 unsigned int flags;
107 112
108 void *desc;
109 unsigned int desc_len; 113 unsigned int desc_len;
114 void *desc;
115
116 dma_addr_t skb_dma;
110 117
111 struct queue_entry *entry; 118 struct queue_entry *entry;
112}; 119};