Lines Matching refs:tx_buf
252 struct tx_buf *tx_buf = (struct tx_buf *) urb->context; in hif_usb_tx_cb() local
256 if (!tx_buf || !tx_buf->hif_dev) in hif_usb_tx_cb()
259 hif_dev = tx_buf->hif_dev; in hif_usb_tx_cb()
277 ath9k_skb_queue_purge(hif_dev, &tx_buf->skb_queue); in hif_usb_tx_cb()
288 ath9k_skb_queue_complete(hif_dev, &tx_buf->skb_queue, txok); in hif_usb_tx_cb()
291 tx_buf->len = tx_buf->offset = 0; in hif_usb_tx_cb()
292 __skb_queue_head_init(&tx_buf->skb_queue); in hif_usb_tx_cb()
296 list_move_tail(&tx_buf->list, &hif_dev->tx.tx_buf); in hif_usb_tx_cb()
307 struct tx_buf *tx_buf = NULL; in __hif_usb_tx() local
318 if (list_empty(&hif_dev->tx.tx_buf)) in __hif_usb_tx()
321 tx_buf = list_first_entry(&hif_dev->tx.tx_buf, struct tx_buf, list); in __hif_usb_tx()
322 list_move_tail(&tx_buf->list, &hif_dev->tx.tx_pending); in __hif_usb_tx()
335 buf = tx_buf->buf; in __hif_usb_tx()
336 buf += tx_buf->offset; in __hif_usb_tx()
342 tx_buf->len = nskb->len + 4; in __hif_usb_tx()
345 tx_buf->offset += (((tx_buf->len - 1) / 4) + 1) * 4; in __hif_usb_tx()
348 tx_buf->len += tx_buf->offset; in __hif_usb_tx()
350 __skb_queue_tail(&tx_buf->skb_queue, nskb); in __hif_usb_tx()
354 usb_fill_bulk_urb(tx_buf->urb, hif_dev->udev, in __hif_usb_tx()
356 tx_buf->buf, tx_buf->len, in __hif_usb_tx()
357 hif_usb_tx_cb, tx_buf); in __hif_usb_tx()
359 ret = usb_submit_urb(tx_buf->urb, GFP_ATOMIC); in __hif_usb_tx()
361 tx_buf->len = tx_buf->offset = 0; in __hif_usb_tx()
362 ath9k_skb_queue_complete(hif_dev, &tx_buf->skb_queue, false); in __hif_usb_tx()
363 __skb_queue_head_init(&tx_buf->skb_queue); in __hif_usb_tx()
364 list_move_tail(&tx_buf->list, &hif_dev->tx.tx_buf); in __hif_usb_tx()
437 struct tx_buf *tx_buf = NULL, *tx_buf_tmp = NULL; in hif_usb_stop() local
447 list_for_each_entry_safe(tx_buf, tx_buf_tmp, in hif_usb_stop()
449 usb_kill_urb(tx_buf->urb); in hif_usb_stop()
748 struct tx_buf *tx_buf = NULL, *tx_buf_tmp = NULL; in ath9k_hif_usb_dealloc_tx_urbs() local
751 list_for_each_entry_safe(tx_buf, tx_buf_tmp, in ath9k_hif_usb_dealloc_tx_urbs()
752 &hif_dev->tx.tx_buf, list) { in ath9k_hif_usb_dealloc_tx_urbs()
753 usb_kill_urb(tx_buf->urb); in ath9k_hif_usb_dealloc_tx_urbs()
754 list_del(&tx_buf->list); in ath9k_hif_usb_dealloc_tx_urbs()
755 usb_free_urb(tx_buf->urb); in ath9k_hif_usb_dealloc_tx_urbs()
756 kfree(tx_buf->buf); in ath9k_hif_usb_dealloc_tx_urbs()
757 kfree(tx_buf); in ath9k_hif_usb_dealloc_tx_urbs()
764 list_for_each_entry_safe(tx_buf, tx_buf_tmp, in ath9k_hif_usb_dealloc_tx_urbs()
766 usb_kill_urb(tx_buf->urb); in ath9k_hif_usb_dealloc_tx_urbs()
767 list_del(&tx_buf->list); in ath9k_hif_usb_dealloc_tx_urbs()
768 usb_free_urb(tx_buf->urb); in ath9k_hif_usb_dealloc_tx_urbs()
769 kfree(tx_buf->buf); in ath9k_hif_usb_dealloc_tx_urbs()
770 kfree(tx_buf); in ath9k_hif_usb_dealloc_tx_urbs()
778 struct tx_buf *tx_buf; in ath9k_hif_usb_alloc_tx_urbs() local
781 INIT_LIST_HEAD(&hif_dev->tx.tx_buf); in ath9k_hif_usb_alloc_tx_urbs()
788 tx_buf = kzalloc(sizeof(struct tx_buf), GFP_KERNEL); in ath9k_hif_usb_alloc_tx_urbs()
789 if (!tx_buf) in ath9k_hif_usb_alloc_tx_urbs()
792 tx_buf->buf = kzalloc(MAX_TX_BUF_SIZE, GFP_KERNEL); in ath9k_hif_usb_alloc_tx_urbs()
793 if (!tx_buf->buf) in ath9k_hif_usb_alloc_tx_urbs()
796 tx_buf->urb = usb_alloc_urb(0, GFP_KERNEL); in ath9k_hif_usb_alloc_tx_urbs()
797 if (!tx_buf->urb) in ath9k_hif_usb_alloc_tx_urbs()
800 tx_buf->hif_dev = hif_dev; in ath9k_hif_usb_alloc_tx_urbs()
801 __skb_queue_head_init(&tx_buf->skb_queue); in ath9k_hif_usb_alloc_tx_urbs()
803 list_add_tail(&tx_buf->list, &hif_dev->tx.tx_buf); in ath9k_hif_usb_alloc_tx_urbs()
810 if (tx_buf) { in ath9k_hif_usb_alloc_tx_urbs()
811 kfree(tx_buf->buf); in ath9k_hif_usb_alloc_tx_urbs()
812 kfree(tx_buf); in ath9k_hif_usb_alloc_tx_urbs()