Lines Matching defs:txwd
509 struct rtw89_pci_tx_wd *txwd;
514 txwd = list_first_entry_or_null(&tx_ring->busy_pages, struct rtw89_pci_tx_wd, list);
515 if (!txwd) {
516 rtw89_warn(rtwdev, "No busy txwd pages available\n");
520 list_del_init(&txwd->list);
523 if (skb_queue_len(&txwd->queue) == 0)
524 rtw89_pci_enqueue_txwd(tx_ring, txwd);
532 struct rtw89_pci_tx_wd *txwd;
536 txwd = list_first_entry_or_null(&tx_ring->busy_pages, struct rtw89_pci_tx_wd, list);
537 if (!txwd)
540 list_del_init(&txwd->list);
546 struct rtw89_pci_tx_wd *txwd, u16 seq,
554 if (!list_empty(&txwd->list)) {
559 if (!rtwpci->low_power && !list_empty(&txwd->list))
560 rtw89_warn(rtwdev, "queue %d txwd %d is not idle\n",
564 skb_queue_walk_safe(&txwd->queue, skb, tmp) {
565 skb_unlink(skb, &txwd->queue);
574 if (list_empty(&txwd->list))
575 rtw89_pci_enqueue_txwd(tx_ring, txwd);
584 struct rtw89_pci_tx_wd *txwd;
600 txwd = &wd_ring->pages[seq];
602 rtw89_pci_release_txwd_skb(rtwdev, tx_ring, txwd, seq, tx_status);
609 struct rtw89_pci_tx_wd *txwd;
613 txwd = &wd_ring->pages[i];
615 if (!list_empty(&txwd->list))
618 rtw89_pci_release_txwd_skb(rtwdev, tx_ring, txwd, i, RTW89_TX_MACID_DROP);
1370 struct rtw89_pci_tx_wd *txwd,
1404 txwp_info = txwd->vaddr + txwd_len;
1406 txwp_info = (struct rtw89_pci_tx_wp_info *)((u8 *)txwd->vaddr + txwd_len);
1408 txwp_info->seq0 = cpu_to_le16(txwd->seq | RTW89_PCI_TXWP_VALID);
1415 txaddr_info_addr = txwd->vaddr + txwd_len + txwp_len;
1417 txaddr_info_addr = (u8 *)txwd->vaddr + txwd_len + txwp_len;
1423 txwd->len = txwd_len + txwp_len + txaddr_info_len;
1425 rtw89_chip_fill_txdesc(rtwdev, desc_info, txwd->vaddr);
1427 skb_queue_tail(&txwd->queue, skb);
1479 struct rtw89_pci_tx_wd *txwd;
1490 txwd = rtw89_pci_dequeue_txwd(tx_ring);
1491 if (!txwd) {
1497 ret = rtw89_pci_txwd_submit(rtwdev, tx_ring, txwd, tx_req);
1499 rtw89_err(rtwdev, "failed to submit TXWD %d\n", txwd->seq);
1503 list_add_tail(&txwd->list, &tx_ring->busy_pages);
1506 opt |= le16_encode_bits(upper_32_bits(txwd->paddr), RTW89_PCI_TXBD_OPT_DMA_HI);
1508 txbd->length = cpu_to_le16(txwd->len);
1509 txbd->dma = cpu_to_le32(txwd->paddr);
1516 rtw89_pci_enqueue_txwd(tx_ring, txwd);
3387 struct rtw89_pci_tx_wd *txwd;
3398 /* FWCMD queue doesn't use txwd as pages */
3414 txwd = &wd_ring->pages[i];
3418 skb_queue_head_init(&txwd->queue);
3419 INIT_LIST_HEAD(&txwd->list);
3420 txwd->paddr = cur_paddr;
3421 txwd->vaddr = cur_vaddr;
3422 txwd->len = page_size;
3423 txwd->seq = i;
3424 rtw89_pci_enqueue_txwd(tx_ring, txwd);
3446 rtw89_err(rtwdev, "failed to alloc txwd ring of txch %d\n", txch);