Lines Matching refs:tfd
83 struct iwl_tfh_tfd *tfd) in iwl_txq_gen2_get_num_tbs() argument
85 return le16_to_cpu(tfd->num_tbs) & 0x1f; in iwl_txq_gen2_get_num_tbs()
88 int iwl_txq_gen2_set_tb(struct iwl_trans *trans, struct iwl_tfh_tfd *tfd, in iwl_txq_gen2_set_tb() argument
91 int idx = iwl_txq_gen2_get_num_tbs(trans, tfd); in iwl_txq_gen2_set_tb()
106 tb = &tfd->tbs[idx]; in iwl_txq_gen2_set_tb()
109 if (le16_to_cpu(tfd->num_tbs) >= trans->txqs.tfd.max_tbs) { in iwl_txq_gen2_set_tb()
111 trans->txqs.tfd.max_tbs); in iwl_txq_gen2_set_tb()
118 tfd->num_tbs = cpu_to_le16(idx + 1); in iwl_txq_gen2_set_tb()
124 struct iwl_tfh_tfd *tfd) in iwl_txq_set_tfd_invalid_gen2() argument
126 tfd->num_tbs = 0; in iwl_txq_set_tfd_invalid_gen2()
128 iwl_txq_gen2_set_tb(trans, tfd, trans->invalid_tx_cmd.dma, in iwl_txq_set_tfd_invalid_gen2()
133 struct iwl_tfh_tfd *tfd) in iwl_txq_gen2_tfd_unmap() argument
138 num_tbs = iwl_txq_gen2_get_num_tbs(trans, tfd); in iwl_txq_gen2_tfd_unmap()
140 if (num_tbs > trans->txqs.tfd.max_tbs) { in iwl_txq_gen2_tfd_unmap()
149 le64_to_cpu(tfd->tbs[i].addr), in iwl_txq_gen2_tfd_unmap()
150 le16_to_cpu(tfd->tbs[i].tb_len), in iwl_txq_gen2_tfd_unmap()
154 le64_to_cpu(tfd->tbs[i].addr), in iwl_txq_gen2_tfd_unmap()
155 le16_to_cpu(tfd->tbs[i].tb_len), in iwl_txq_gen2_tfd_unmap()
159 iwl_txq_set_tfd_invalid_gen2(trans, tfd); in iwl_txq_gen2_tfd_unmap()
217 struct iwl_tfh_tfd *tfd, in iwl_txq_gen2_set_tb_with_wa() argument
229 ret = iwl_txq_gen2_set_tb(trans, tfd, phys, len); in iwl_txq_gen2_set_tb_with_wa()
267 ret = iwl_txq_gen2_set_tb(trans, tfd, phys, len); in iwl_txq_gen2_set_tb_with_wa()
338 struct iwl_tfh_tfd *tfd, int start_len, in iwl_txq_gen2_build_amsdu() argument
352 trace_iwlwifi_dev_tx(trans->dev, skb, tfd, sizeof(*tfd), in iwl_txq_gen2_build_amsdu()
426 iwl_txq_gen2_set_tb(trans, tfd, tb_phys, tb_len); in iwl_txq_gen2_build_amsdu()
442 ret = iwl_txq_gen2_set_tb_with_wa(trans, skb, tfd, in iwl_txq_gen2_build_amsdu()
473 struct iwl_tfh_tfd *tfd = iwl_txq_get_tfd(trans, txq, idx); in iwl_txq_gen2_build_tx_amsdu() local
485 iwl_txq_gen2_set_tb(trans, tfd, tb_phys, IWL_FIRST_TB_SIZE); in iwl_txq_gen2_build_tx_amsdu()
507 iwl_txq_gen2_set_tb(trans, tfd, tb_phys, len); in iwl_txq_gen2_build_tx_amsdu()
509 if (iwl_txq_gen2_build_amsdu(trans, skb, tfd, len + IWL_FIRST_TB_SIZE, in iwl_txq_gen2_build_tx_amsdu()
515 return tfd; in iwl_txq_gen2_build_tx_amsdu()
518 iwl_txq_gen2_tfd_unmap(trans, out_meta, tfd); in iwl_txq_gen2_build_tx_amsdu()
524 struct iwl_tfh_tfd *tfd, in iwl_txq_gen2_tx_add_frags() argument
540 ret = iwl_txq_gen2_set_tb_with_wa(trans, skb, tfd, tb_phys, in iwl_txq_gen2_tx_add_frags()
561 struct iwl_tfh_tfd *tfd = iwl_txq_get_tfd(trans, txq, idx); in iwl_txq_gen2_build_tx() local
577 iwl_txq_gen2_set_tb(trans, tfd, tb_phys, IWL_FIRST_TB_SIZE); in iwl_txq_gen2_build_tx()
602 iwl_txq_gen2_set_tb(trans, tfd, tb_phys, tb1_len); in iwl_txq_gen2_build_tx()
603 trace_iwlwifi_dev_tx(trans->dev, skb, tfd, sizeof(*tfd), &dev_cmd->hdr, in iwl_txq_gen2_build_tx()
614 ret = iwl_txq_gen2_set_tb_with_wa(trans, skb, tfd, tb_phys, in iwl_txq_gen2_build_tx()
621 if (iwl_txq_gen2_tx_add_frags(trans, skb, tfd, out_meta)) in iwl_txq_gen2_build_tx()
629 ret = iwl_txq_gen2_set_tb_with_wa(trans, skb, tfd, tb_phys, in iwl_txq_gen2_build_tx()
634 if (iwl_txq_gen2_tx_add_frags(trans, frag, tfd, out_meta)) in iwl_txq_gen2_build_tx()
638 return tfd; in iwl_txq_gen2_build_tx()
641 iwl_txq_gen2_tfd_unmap(trans, out_meta, tfd); in iwl_txq_gen2_build_tx()
654 struct iwl_tfh_tfd *tfd = iwl_txq_get_tfd(trans, txq, idx); in iwl_txq_gen2_build_tfd() local
668 memset(tfd, 0, sizeof(*tfd)); in iwl_txq_gen2_build_tfd()
729 void *tfd; in iwl_txq_gen2_tx() local
777 tfd = iwl_txq_gen2_build_tfd(trans, txq, dev_cmd, skb, out_meta); in iwl_txq_gen2_tx()
778 if (!tfd) { in iwl_txq_gen2_tx()
797 iwl_txq_gen2_get_num_tbs(trans, tfd)); in iwl_txq_gen2_tx()
859 trans->txqs.tfd.size * txq->n_window, in iwl_txq_gen2_free_memory()
1039 struct iwl_tfd *tfd) in iwl_txq_set_tfd_invalid_gen1() argument
1041 tfd->num_tbs = 0; in iwl_txq_set_tfd_invalid_gen1()
1043 iwl_pcie_gen1_tfd_set_tb(trans, tfd, 0, trans->invalid_tx_cmd.dma, in iwl_txq_set_tfd_invalid_gen1()
1062 tfd_sz = trans->txqs.tfd.size * num_entries; in iwl_txq_alloc()
1103 void *tfd = iwl_txq_get_tfd(trans, txq, i); in iwl_txq_alloc() local
1106 iwl_txq_set_tfd_invalid_gen2(trans, tfd); in iwl_txq_alloc()
1108 iwl_txq_set_tfd_invalid_gen1(trans, tfd); in iwl_txq_alloc()
1370 struct iwl_tfd *tfd, u8 idx) in iwl_txq_gen1_tfd_tb_get_addr() argument
1372 struct iwl_tfd_tb *tb = &tfd->tbs[idx]; in iwl_txq_gen1_tfd_tb_get_addr()
1396 struct iwl_tfd *tfd = iwl_txq_get_tfd(trans, txq, index); in iwl_txq_gen1_tfd_unmap() local
1399 num_tbs = iwl_txq_gen1_tfd_get_num_tbs(trans, tfd); in iwl_txq_gen1_tfd_unmap()
1401 if (num_tbs > trans->txqs.tfd.max_tbs) { in iwl_txq_gen1_tfd_unmap()
1413 tfd, i), in iwl_txq_gen1_tfd_unmap()
1415 tfd, i), in iwl_txq_gen1_tfd_unmap()
1420 tfd, i), in iwl_txq_gen1_tfd_unmap()
1422 tfd, i), in iwl_txq_gen1_tfd_unmap()
1428 iwl_txq_set_tfd_invalid_gen1(trans, tfd); in iwl_txq_gen1_tfd_unmap()