Lines Matching refs:tx_buf

256 	struct tx_buf *tx_buf = (struct tx_buf *) urb->context;  in hif_usb_tx_cb()  local
260 if (!tx_buf || !tx_buf->hif_dev) in hif_usb_tx_cb()
263 hif_dev = tx_buf->hif_dev; in hif_usb_tx_cb()
281 ath9k_skb_queue_purge(hif_dev, &tx_buf->skb_queue); in hif_usb_tx_cb()
292 ath9k_skb_queue_complete(hif_dev, &tx_buf->skb_queue, txok); in hif_usb_tx_cb()
295 tx_buf->len = tx_buf->offset = 0; in hif_usb_tx_cb()
296 __skb_queue_head_init(&tx_buf->skb_queue); in hif_usb_tx_cb()
300 list_move_tail(&tx_buf->list, &hif_dev->tx.tx_buf); in hif_usb_tx_cb()
311 struct tx_buf *tx_buf = NULL; in __hif_usb_tx() local
322 if (list_empty(&hif_dev->tx.tx_buf)) in __hif_usb_tx()
325 tx_buf = list_first_entry(&hif_dev->tx.tx_buf, struct tx_buf, list); in __hif_usb_tx()
326 list_move_tail(&tx_buf->list, &hif_dev->tx.tx_pending); in __hif_usb_tx()
339 buf = tx_buf->buf; in __hif_usb_tx()
340 buf += tx_buf->offset; in __hif_usb_tx()
346 tx_buf->len = nskb->len + 4; in __hif_usb_tx()
349 tx_buf->offset += (((tx_buf->len - 1) / 4) + 1) * 4; in __hif_usb_tx()
352 tx_buf->len += tx_buf->offset; in __hif_usb_tx()
354 __skb_queue_tail(&tx_buf->skb_queue, nskb); in __hif_usb_tx()
358 usb_fill_bulk_urb(tx_buf->urb, hif_dev->udev, in __hif_usb_tx()
360 tx_buf->buf, tx_buf->len, in __hif_usb_tx()
361 hif_usb_tx_cb, tx_buf); in __hif_usb_tx()
363 ret = usb_submit_urb(tx_buf->urb, GFP_ATOMIC); in __hif_usb_tx()
365 tx_buf->len = tx_buf->offset = 0; in __hif_usb_tx()
366 ath9k_skb_queue_complete(hif_dev, &tx_buf->skb_queue, false); in __hif_usb_tx()
367 __skb_queue_head_init(&tx_buf->skb_queue); in __hif_usb_tx()
368 list_move_tail(&tx_buf->list, &hif_dev->tx.tx_buf); in __hif_usb_tx()
441 struct tx_buf *tx_buf = NULL, *tx_buf_tmp = NULL; in hif_usb_stop() local
451 list_for_each_entry_safe(tx_buf, tx_buf_tmp, in hif_usb_stop()
453 usb_kill_urb(tx_buf->urb); in hif_usb_stop()
752 struct tx_buf *tx_buf = NULL, *tx_buf_tmp = NULL; in ath9k_hif_usb_dealloc_tx_urbs() local
755 list_for_each_entry_safe(tx_buf, tx_buf_tmp, in ath9k_hif_usb_dealloc_tx_urbs()
756 &hif_dev->tx.tx_buf, list) { in ath9k_hif_usb_dealloc_tx_urbs()
757 usb_kill_urb(tx_buf->urb); in ath9k_hif_usb_dealloc_tx_urbs()
758 list_del(&tx_buf->list); in ath9k_hif_usb_dealloc_tx_urbs()
759 usb_free_urb(tx_buf->urb); in ath9k_hif_usb_dealloc_tx_urbs()
760 kfree(tx_buf->buf); in ath9k_hif_usb_dealloc_tx_urbs()
761 kfree(tx_buf); in ath9k_hif_usb_dealloc_tx_urbs()
768 list_for_each_entry_safe(tx_buf, tx_buf_tmp, in ath9k_hif_usb_dealloc_tx_urbs()
770 usb_kill_urb(tx_buf->urb); in ath9k_hif_usb_dealloc_tx_urbs()
771 list_del(&tx_buf->list); in ath9k_hif_usb_dealloc_tx_urbs()
772 usb_free_urb(tx_buf->urb); in ath9k_hif_usb_dealloc_tx_urbs()
773 kfree(tx_buf->buf); in ath9k_hif_usb_dealloc_tx_urbs()
774 kfree(tx_buf); in ath9k_hif_usb_dealloc_tx_urbs()
782 struct tx_buf *tx_buf; in ath9k_hif_usb_alloc_tx_urbs() local
785 INIT_LIST_HEAD(&hif_dev->tx.tx_buf); in ath9k_hif_usb_alloc_tx_urbs()
792 tx_buf = kzalloc(sizeof(struct tx_buf), GFP_KERNEL); in ath9k_hif_usb_alloc_tx_urbs()
793 if (!tx_buf) in ath9k_hif_usb_alloc_tx_urbs()
796 tx_buf->buf = kzalloc(MAX_TX_BUF_SIZE, GFP_KERNEL); in ath9k_hif_usb_alloc_tx_urbs()
797 if (!tx_buf->buf) in ath9k_hif_usb_alloc_tx_urbs()
800 tx_buf->urb = usb_alloc_urb(0, GFP_KERNEL); in ath9k_hif_usb_alloc_tx_urbs()
801 if (!tx_buf->urb) in ath9k_hif_usb_alloc_tx_urbs()
804 tx_buf->hif_dev = hif_dev; in ath9k_hif_usb_alloc_tx_urbs()
805 __skb_queue_head_init(&tx_buf->skb_queue); in ath9k_hif_usb_alloc_tx_urbs()
807 list_add_tail(&tx_buf->list, &hif_dev->tx.tx_buf); in ath9k_hif_usb_alloc_tx_urbs()
814 if (tx_buf) { in ath9k_hif_usb_alloc_tx_urbs()
815 kfree(tx_buf->buf); in ath9k_hif_usb_alloc_tx_urbs()
816 kfree(tx_buf); in ath9k_hif_usb_alloc_tx_urbs()