Lines Matching defs:rt2x00dev

38 	struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
63 if (test_bit(CAPABILITY_HW_CRYPTO, &rt2x00dev->cap_flags)) {
89 if (test_bit(REQUIRE_DMA, &rt2x00dev->cap_flags)) {
90 skbdesc->skb_dma = dma_map_single(rt2x00dev->dev,
102 struct device *dev = entry->queue->rt2x00dev->dev;
113 struct device *dev = entry->queue->rt2x00dev->dev;
203 static void rt2x00queue_create_tx_descriptor_seq(struct rt2x00_dev *rt2x00dev,
217 if (!test_bit(REQUIRE_SW_SEQNO, &rt2x00dev->cap_flags))
240 static void rt2x00queue_create_tx_descriptor_plcp(struct rt2x00_dev *rt2x00dev,
263 data_length += rt2x00crypto_tx_overhead(rt2x00dev, skb);
304 static void rt2x00queue_create_tx_descriptor_ht(struct rt2x00_dev *rt2x00dev,
389 static void rt2x00queue_create_tx_descriptor(struct rt2x00_dev *rt2x00dev,
425 ieee80211_get_rts_cts_rate(rt2x00dev->hw, tx_info);
432 if (txdesc->retry_limit >= rt2x00dev->long_retry)
469 rate = ieee80211_get_tx_rate(rt2x00dev->hw, tx_info);
480 rt2x00crypto_create_tx_descriptor(rt2x00dev, skb, txdesc);
481 rt2x00queue_create_tx_descriptor_seq(rt2x00dev, skb, txdesc);
483 if (test_bit(REQUIRE_HT_TX_DESC, &rt2x00dev->cap_flags))
484 rt2x00queue_create_tx_descriptor_ht(rt2x00dev, skb, txdesc,
487 rt2x00queue_create_tx_descriptor_plcp(rt2x00dev, skb, txdesc,
494 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
501 if (unlikely(rt2x00dev->ops->lib->get_entry_state &&
502 rt2x00dev->ops->lib->get_entry_state(entry))) {
503 ERROR(rt2x00dev,
513 skb_push(entry->skb, rt2x00dev->ops->extra_tx_headroom);
514 memset(entry->skb->data, 0, rt2x00dev->ops->extra_tx_headroom);
519 if (rt2x00dev->ops->lib->write_tx_data)
520 rt2x00dev->ops->lib->write_tx_data(entry, txdesc);
525 if (test_bit(REQUIRE_DMA, &rt2x00dev->cap_flags))
536 queue->rt2x00dev->ops->lib->write_tx_desc(entry, txdesc);
542 rt2x00debug_dump_frame(queue->rt2x00dev, DUMP_FRAME_TX, entry->skb);
559 queue->rt2x00dev->ops->lib->kick_queue(queue);
577 rt2x00queue_create_tx_descriptor(queue->rt2x00dev, skb, &txdesc);
602 if (test_bit(REQUIRE_COPY_IV, &queue->rt2x00dev->cap_flags))
616 if (test_bit(REQUIRE_L2PAD, &queue->rt2x00dev->cap_flags))
618 else if (test_bit(REQUIRE_DMA, &queue->rt2x00dev->cap_flags))
627 ERROR(queue->rt2x00dev,
637 ERROR(queue->rt2x00dev,
671 int rt2x00queue_clear_beacon(struct rt2x00_dev *rt2x00dev,
690 if (rt2x00dev->ops->lib->clear_beacon)
691 rt2x00dev->ops->lib->clear_beacon(intf->beacon);
698 int rt2x00queue_update_beacon_locked(struct rt2x00_dev *rt2x00dev,
713 intf->beacon->skb = ieee80211_beacon_get(rt2x00dev->hw, vif);
722 rt2x00queue_create_tx_descriptor(rt2x00dev, intf->beacon->skb, &txdesc);
734 rt2x00dev->ops->lib->write_beacon(intf->beacon, &txdesc);
740 int rt2x00queue_update_beacon(struct rt2x00_dev *rt2x00dev,
747 ret = rt2x00queue_update_beacon_locked(rt2x00dev, vif);
766 ERROR(queue->rt2x00dev,
815 ERROR(queue->rt2x00dev,
836 ERROR(queue->rt2x00dev,
861 if (!test_bit(DEVICE_STATE_PRESENT, &queue->rt2x00dev->flags) ||
875 ieee80211_stop_queue(queue->rt2x00dev->hw, queue->qid);
885 if (!test_bit(DEVICE_STATE_PRESENT, &queue->rt2x00dev->flags) ||
899 ieee80211_wake_queue(queue->rt2x00dev->hw, queue->qid);
906 queue->rt2x00dev->ops->lib->kick_queue(queue);
917 if (!test_bit(DEVICE_STATE_PRESENT, &queue->rt2x00dev->flags) ||
925 queue->rt2x00dev->ops->lib->start_queue(queue);
944 queue->rt2x00dev->ops->lib->stop_queue(queue);
982 queue->rt2x00dev->ops->lib->kick_queue(queue);
990 if (likely(queue->rt2x00dev->ops->lib->flush_queue))
991 queue->rt2x00dev->ops->lib->flush_queue(queue, drop);
997 WARNING(queue->rt2x00dev, "Queue %d failed to flush\n", queue->qid);
1009 void rt2x00queue_start_queues(struct rt2x00_dev *rt2x00dev)
1017 tx_queue_for_each(rt2x00dev, queue)
1020 rt2x00queue_start_queue(rt2x00dev->rx);
1024 void rt2x00queue_stop_queues(struct rt2x00_dev *rt2x00dev)
1034 ieee80211_stop_queues(rt2x00dev->hw);
1036 tx_queue_for_each(rt2x00dev, queue)
1039 rt2x00queue_stop_queue(rt2x00dev->rx);
1043 void rt2x00queue_flush_queues(struct rt2x00_dev *rt2x00dev, bool drop)
1047 tx_queue_for_each(rt2x00dev, queue)
1050 rt2x00queue_flush_queue(rt2x00dev->rx, drop);
1070 void rt2x00queue_init_queues(struct rt2x00_dev *rt2x00dev)
1075 queue_for_each(rt2x00dev, queue) {
1079 rt2x00dev->ops->lib->clear_entry(&queue->entries[i]);
1153 int rt2x00queue_initialize(struct rt2x00_dev *rt2x00dev)
1158 status = rt2x00queue_alloc_entries(rt2x00dev->rx, rt2x00dev->ops->rx);
1162 tx_queue_for_each(rt2x00dev, queue) {
1163 status = rt2x00queue_alloc_entries(queue, rt2x00dev->ops->tx);
1168 status = rt2x00queue_alloc_entries(rt2x00dev->bcn, rt2x00dev->ops->bcn);
1172 if (test_bit(REQUIRE_ATIM_QUEUE, &rt2x00dev->cap_flags)) {
1173 status = rt2x00queue_alloc_entries(rt2x00dev->atim,
1174 rt2x00dev->ops->atim);
1179 status = rt2x00queue_alloc_rxskbs(rt2x00dev->rx);
1186 ERROR(rt2x00dev, "Queue entries allocation failed.\n");
1188 rt2x00queue_uninitialize(rt2x00dev);
1193 void rt2x00queue_uninitialize(struct rt2x00_dev *rt2x00dev)
1197 rt2x00queue_free_skbs(rt2x00dev->rx);
1199 queue_for_each(rt2x00dev, queue) {
1205 static void rt2x00queue_init(struct rt2x00_dev *rt2x00dev,
1212 queue->rt2x00dev = rt2x00dev;
1220 int rt2x00queue_allocate(struct rt2x00_dev *rt2x00dev)
1225 !!test_bit(REQUIRE_ATIM_QUEUE, &rt2x00dev->cap_flags);
1234 rt2x00dev->data_queues = 2 + rt2x00dev->ops->tx_queues + req_atim;
1236 queue = kcalloc(rt2x00dev->data_queues, sizeof(*queue), GFP_KERNEL);
1238 ERROR(rt2x00dev, "Queue allocation failed.\n");
1245 rt2x00dev->rx = queue;
1246 rt2x00dev->tx = &queue[1];
1247 rt2x00dev->bcn = &queue[1 + rt2x00dev->ops->tx_queues];
1248 rt2x00dev->atim = req_atim ? &queue[2 + rt2x00dev->ops->tx_queues] : NULL;
1259 rt2x00queue_init(rt2x00dev, rt2x00dev->rx, QID_RX);
1262 tx_queue_for_each(rt2x00dev, queue)
1263 rt2x00queue_init(rt2x00dev, queue, qid++);
1265 rt2x00queue_init(rt2x00dev, rt2x00dev->bcn, QID_BEACON);
1267 rt2x00queue_init(rt2x00dev, rt2x00dev->atim, QID_ATIM);
1272 void rt2x00queue_free(struct rt2x00_dev *rt2x00dev)
1274 kfree(rt2x00dev->rx);
1275 rt2x00dev->rx = NULL;
1276 rt2x00dev->tx = NULL;
1277 rt2x00dev->bcn = NULL;