Lines Matching refs:tx_buf
257 struct tx_buf *tx_buf = (struct tx_buf *) urb->context; in hif_usb_tx_cb() local
261 if (!tx_buf || !tx_buf->hif_dev) in hif_usb_tx_cb()
264 hif_dev = tx_buf->hif_dev; in hif_usb_tx_cb()
282 ath9k_skb_queue_purge(hif_dev, &tx_buf->skb_queue); in hif_usb_tx_cb()
293 ath9k_skb_queue_complete(hif_dev, &tx_buf->skb_queue, txok); in hif_usb_tx_cb()
296 tx_buf->len = tx_buf->offset = 0; in hif_usb_tx_cb()
297 __skb_queue_head_init(&tx_buf->skb_queue); in hif_usb_tx_cb()
301 list_move_tail(&tx_buf->list, &hif_dev->tx.tx_buf); in hif_usb_tx_cb()
312 struct tx_buf *tx_buf = NULL; in __hif_usb_tx() local
323 if (list_empty(&hif_dev->tx.tx_buf)) in __hif_usb_tx()
326 tx_buf = list_first_entry(&hif_dev->tx.tx_buf, struct tx_buf, list); in __hif_usb_tx()
327 list_move_tail(&tx_buf->list, &hif_dev->tx.tx_pending); in __hif_usb_tx()
340 buf = tx_buf->buf; in __hif_usb_tx()
341 buf += tx_buf->offset; in __hif_usb_tx()
347 tx_buf->len = nskb->len + 4; in __hif_usb_tx()
350 tx_buf->offset += (((tx_buf->len - 1) / 4) + 1) * 4; in __hif_usb_tx()
353 tx_buf->len += tx_buf->offset; in __hif_usb_tx()
355 __skb_queue_tail(&tx_buf->skb_queue, nskb); in __hif_usb_tx()
359 usb_fill_bulk_urb(tx_buf->urb, hif_dev->udev, in __hif_usb_tx()
361 tx_buf->buf, tx_buf->len, in __hif_usb_tx()
362 hif_usb_tx_cb, tx_buf); in __hif_usb_tx()
364 ret = usb_submit_urb(tx_buf->urb, GFP_ATOMIC); in __hif_usb_tx()
366 tx_buf->len = tx_buf->offset = 0; in __hif_usb_tx()
367 ath9k_skb_queue_complete(hif_dev, &tx_buf->skb_queue, false); in __hif_usb_tx()
368 __skb_queue_head_init(&tx_buf->skb_queue); in __hif_usb_tx()
369 list_move_tail(&tx_buf->list, &hif_dev->tx.tx_buf); in __hif_usb_tx()
442 struct tx_buf *tx_buf = NULL, *tx_buf_tmp = NULL; in hif_usb_stop() local
452 list_for_each_entry_safe(tx_buf, tx_buf_tmp, in hif_usb_stop()
454 usb_kill_urb(tx_buf->urb); in hif_usb_stop()
753 struct tx_buf *tx_buf = NULL, *tx_buf_tmp = NULL; in ath9k_hif_usb_dealloc_tx_urbs() local
756 list_for_each_entry_safe(tx_buf, tx_buf_tmp, in ath9k_hif_usb_dealloc_tx_urbs()
757 &hif_dev->tx.tx_buf, list) { in ath9k_hif_usb_dealloc_tx_urbs()
758 usb_kill_urb(tx_buf->urb); in ath9k_hif_usb_dealloc_tx_urbs()
759 list_del(&tx_buf->list); in ath9k_hif_usb_dealloc_tx_urbs()
760 usb_free_urb(tx_buf->urb); in ath9k_hif_usb_dealloc_tx_urbs()
761 kfree(tx_buf->buf); in ath9k_hif_usb_dealloc_tx_urbs()
762 kfree(tx_buf); in ath9k_hif_usb_dealloc_tx_urbs()
769 list_for_each_entry_safe(tx_buf, tx_buf_tmp, in ath9k_hif_usb_dealloc_tx_urbs()
771 usb_kill_urb(tx_buf->urb); in ath9k_hif_usb_dealloc_tx_urbs()
772 list_del(&tx_buf->list); in ath9k_hif_usb_dealloc_tx_urbs()
773 usb_free_urb(tx_buf->urb); in ath9k_hif_usb_dealloc_tx_urbs()
774 kfree(tx_buf->buf); in ath9k_hif_usb_dealloc_tx_urbs()
775 kfree(tx_buf); in ath9k_hif_usb_dealloc_tx_urbs()
783 struct tx_buf *tx_buf; in ath9k_hif_usb_alloc_tx_urbs() local
786 INIT_LIST_HEAD(&hif_dev->tx.tx_buf); in ath9k_hif_usb_alloc_tx_urbs()
793 tx_buf = kzalloc(sizeof(struct tx_buf), GFP_KERNEL); in ath9k_hif_usb_alloc_tx_urbs()
794 if (!tx_buf) in ath9k_hif_usb_alloc_tx_urbs()
797 tx_buf->buf = kzalloc(MAX_TX_BUF_SIZE, GFP_KERNEL); in ath9k_hif_usb_alloc_tx_urbs()
798 if (!tx_buf->buf) in ath9k_hif_usb_alloc_tx_urbs()
801 tx_buf->urb = usb_alloc_urb(0, GFP_KERNEL); in ath9k_hif_usb_alloc_tx_urbs()
802 if (!tx_buf->urb) in ath9k_hif_usb_alloc_tx_urbs()
805 tx_buf->hif_dev = hif_dev; in ath9k_hif_usb_alloc_tx_urbs()
806 __skb_queue_head_init(&tx_buf->skb_queue); in ath9k_hif_usb_alloc_tx_urbs()
808 list_add_tail(&tx_buf->list, &hif_dev->tx.tx_buf); in ath9k_hif_usb_alloc_tx_urbs()
815 if (tx_buf) { in ath9k_hif_usb_alloc_tx_urbs()
816 kfree(tx_buf->buf); in ath9k_hif_usb_alloc_tx_urbs()
817 kfree(tx_buf); in ath9k_hif_usb_alloc_tx_urbs()