b43: Convert usage of b43_radio_maskset()
[safe/jmp/linux-2.6] / drivers / net / wireless / b43 / dma.h
index ea27085..05dde64 100644 (file)
@@ -1,14 +1,12 @@
 #ifndef B43_DMA_H_
 #define B43_DMA_H_
 
-#include <linux/list.h>
+#include <linux/ieee80211.h>
 #include <linux/spinlock.h>
-#include <linux/workqueue.h>
-#include <linux/linkage.h>
-#include <asm/atomic.h>
 
 #include "b43.h"
 
+
 /* DMA-Interrupt reasons. */
 #define B43_DMAIRQ_FATALMASK   ((1 << 10) | (1 << 11) | (1 << 12) \
                                         | (1 << 14) | (1 << 15))
@@ -161,14 +159,13 @@ struct b43_dmadesc_generic {
 
 /* Misc DMA constants */
 #define B43_DMA_RINGMEMSIZE            PAGE_SIZE
-#define B43_DMA0_RX_FRAMEOFFSET        30
-#define B43_DMA3_RX_FRAMEOFFSET        0
+#define B43_DMA0_RX_FRAMEOFFSET                30
 
 /* DMA engine tuning knobs */
-#define B43_TXRING_SLOTS               128
+#define B43_TXRING_SLOTS               256
 #define B43_RXRING_SLOTS               64
-#define B43_DMA0_RX_BUFFERSIZE (2304 + 100)
-#define B43_DMA3_RX_BUFFERSIZE 16
+#define B43_DMA0_RX_BUFFERSIZE         IEEE80211_MAX_FRAME_LEN
+
 
 struct sk_buff;
 struct b43_private;
@@ -181,7 +178,6 @@ struct b43_dmadesc_meta {
        dma_addr_t dmaaddr;
        /* ieee80211 TX status. Only used once per 802.11 frag. */
        bool is_last_fragment;
-       struct ieee80211_tx_status txstat;
 };
 
 struct b43_dmaring;
@@ -216,7 +212,7 @@ struct b43_dmaring {
        void *descbase;
        /* Meta data about all descriptors. */
        struct b43_dmadesc_meta *meta;
-       /* Cache of TX headers for each slot.
+       /* Cache of TX headers for each TX frame.
         * This is to avoid an allocation on each TX.
         * This is NULL for an RX ring.
         */
@@ -285,10 +281,13 @@ void b43_dma_get_tx_stats(struct b43_wldev *dev,
                          struct ieee80211_tx_queue_stats *stats);
 
 int b43_dma_tx(struct b43_wldev *dev,
-              struct sk_buff *skb, struct ieee80211_tx_control *ctl);
+              struct sk_buff *skb);
 void b43_dma_handle_txstatus(struct b43_wldev *dev,
                             const struct b43_txstatus *status);
 
 void b43_dma_rx(struct b43_dmaring *ring);
 
+void b43_dma_direct_fifo_rx(struct b43_wldev *dev,
+                           unsigned int engine_index, bool enable);
+
 #endif /* B43_DMA_H_ */