rt2x00: Replace statically allocated DMA buffers with mapped skb's.
The current PCI drivers require a lot of pre-allocated DMA buffers. Reduce this by using dynamically mapped skb's (using pci_map_single) instead of the pre- allocated DMA buffers that are allocated at device start-up time. At the same time move common RX path code into rt2x00lib from rt2x00pci and rt2x00usb, as the RX paths now are now almost the same. Signed-off-by: Gertjan van Wingerde <gwingerde@kpnplanet.nl> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

parent
30caa6e3d5
commit
c4da004857
@@ -83,9 +83,10 @@ enum data_queue_qid {
|
||||
* enum skb_frame_desc_flags: Flags for &struct skb_frame_desc
|
||||
*
|
||||
*/
|
||||
//enum skb_frame_desc_flags {
|
||||
// TEMPORARILY EMPTY
|
||||
//};
|
||||
enum skb_frame_desc_flags {
|
||||
SKBDESC_DMA_MAPPED_RX = (1 << 0),
|
||||
SKBDESC_DMA_MAPPED_TX = (1 << 1),
|
||||
};
|
||||
|
||||
/**
|
||||
* struct skb_frame_desc: Descriptor information for the skb buffer
|
||||
@@ -94,19 +95,20 @@ enum data_queue_qid {
|
||||
* this structure should not exceed the size of that array (40 bytes).
|
||||
*
|
||||
* @flags: Frame flags, see &enum skb_frame_desc_flags.
|
||||
* @data: Pointer to data part of frame (Start of ieee80211 header).
|
||||
* @desc_len: Length of the frame descriptor.
|
||||
* @desc: Pointer to descriptor part of the frame.
|
||||
* Note that this pointer could point to something outside
|
||||
* of the scope of the skb->data pointer.
|
||||
* @data_len: Length of the frame data.
|
||||
* @desc_len: Length of the frame descriptor.
|
||||
* @skb_dma: (PCI-only) the DMA address associated with the sk buffer.
|
||||
* @entry: The entry to which this sk buffer belongs.
|
||||
*/
|
||||
struct skb_frame_desc {
|
||||
unsigned int flags;
|
||||
|
||||
void *desc;
|
||||
unsigned int desc_len;
|
||||
void *desc;
|
||||
|
||||
dma_addr_t skb_dma;
|
||||
|
||||
struct queue_entry *entry;
|
||||
};
|
||||
|
Reference in New Issue
Block a user