aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2x00queue.c
diff options
context:
space:
mode:
authorIvo van Doorn <ivdoorn@gmail.com>2008-06-16 13:56:54 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-06-26 16:49:16 -0400
commitd74f5ba473b915e5d4ea1ed391984bb62d9de8b1 (patch)
tree93e1a847c61b053096657b132034c7df86a13bfa /drivers/net/wireless/rt2x00/rt2x00queue.c
parentc4da004857056e6ee034c4110ccdcba659077b7e (diff)
rt2x00: Cleanup symbol exports
With a bit of code moving to rt2x00lib within the TX and RX paths we can now remove a lot of EXPORT_SYMBOL_GPL() statements. This cleans up the interface between rt2x00lib and the drivers and has the additional benefit that rt2x00pci and rt2x00usb are trimmed down in size as well since they have less to do. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00queue.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00queue.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
index 29d2b9128533..49d3bb84ab6b 100644
--- a/drivers/net/wireless/rt2x00/rt2x00queue.c
+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
@@ -77,7 +77,6 @@ struct sk_buff *rt2x00queue_alloc_rxskb(struct rt2x00_dev *rt2x00dev,
77 77
78 return skb; 78 return skb;
79} 79}
80EXPORT_SYMBOL_GPL(rt2x00queue_alloc_rxskb);
81 80
82void rt2x00queue_map_txskb(struct rt2x00_dev *rt2x00dev, struct sk_buff *skb) 81void rt2x00queue_map_txskb(struct rt2x00_dev *rt2x00dev, struct sk_buff *skb)
83{ 82{
@@ -105,7 +104,6 @@ void rt2x00queue_unmap_skb(struct rt2x00_dev *rt2x00dev, struct sk_buff *skb)
105 skbdesc->flags &= ~SKBDESC_DMA_MAPPED_TX; 104 skbdesc->flags &= ~SKBDESC_DMA_MAPPED_TX;
106 } 105 }
107} 106}
108EXPORT_SYMBOL_GPL(rt2x00queue_unmap_skb);
109 107
110void rt2x00queue_free_skb(struct rt2x00_dev *rt2x00dev, struct sk_buff *skb) 108void rt2x00queue_free_skb(struct rt2x00_dev *rt2x00dev, struct sk_buff *skb)
111{ 109{
@@ -123,7 +121,6 @@ void rt2x00queue_free_skb(struct rt2x00_dev *rt2x00dev, struct sk_buff *skb)
123 121
124 dev_kfree_skb_any(skb); 122 dev_kfree_skb_any(skb);
125} 123}
126EXPORT_SYMBOL_GPL(rt2x00queue_free_skb);
127 124
128void rt2x00queue_create_tx_descriptor(struct queue_entry *entry, 125void rt2x00queue_create_tx_descriptor(struct queue_entry *entry,
129 struct txentry_desc *txdesc) 126 struct txentry_desc *txdesc)
@@ -289,6 +286,7 @@ int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb)
289{ 286{
290 struct queue_entry *entry = rt2x00queue_get_entry(queue, Q_INDEX); 287 struct queue_entry *entry = rt2x00queue_get_entry(queue, Q_INDEX);
291 struct txentry_desc txdesc; 288 struct txentry_desc txdesc;
289 struct skb_frame_desc *skbdesc;
292 290
293 if (unlikely(rt2x00queue_full(queue))) 291 if (unlikely(rt2x00queue_full(queue)))
294 return -EINVAL; 292 return -EINVAL;
@@ -309,11 +307,21 @@ int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb)
309 entry->skb = skb; 307 entry->skb = skb;
310 rt2x00queue_create_tx_descriptor(entry, &txdesc); 308 rt2x00queue_create_tx_descriptor(entry, &txdesc);
311 309
310 /*
311 * skb->cb array is now ours and we are free to use it.
312 */
313 skbdesc = get_skb_frame_desc(entry->skb);
314 memset(skbdesc, 0, sizeof(*skbdesc));
315 skbdesc->entry = entry;
316
312 if (unlikely(queue->rt2x00dev->ops->lib->write_tx_data(entry))) { 317 if (unlikely(queue->rt2x00dev->ops->lib->write_tx_data(entry))) {
313 __clear_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags); 318 __clear_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags);
314 return -EIO; 319 return -EIO;
315 } 320 }
316 321
322 if (test_bit(DRIVER_REQUIRE_DMA, &queue->rt2x00dev->flags))
323 rt2x00queue_map_txskb(queue->rt2x00dev, skb);
324
317 __set_bit(ENTRY_DATA_PENDING, &entry->flags); 325 __set_bit(ENTRY_DATA_PENDING, &entry->flags);
318 326
319 rt2x00queue_index_inc(queue, Q_INDEX); 327 rt2x00queue_index_inc(queue, Q_INDEX);
@@ -389,7 +397,6 @@ void rt2x00queue_index_inc(struct data_queue *queue, enum queue_index index)
389 397
390 spin_unlock_irqrestore(&queue->lock, irqflags); 398 spin_unlock_irqrestore(&queue->lock, irqflags);
391} 399}
392EXPORT_SYMBOL_GPL(rt2x00queue_index_inc);
393 400
394static void rt2x00queue_reset(struct data_queue *queue) 401static void rt2x00queue_reset(struct data_queue *queue)
395{ 402{