Lines Matching refs:txq

146 			struct qlnx_tx_queue *txq);
148 struct qlnx_tx_queue *txq);
474 struct qlnx_tx_queue *txq)
480 hw_bd_cons = le16toh(*txq->hw_cons_ptr);
482 ecore_cons_idx = ecore_chain_get_cons_idx(&txq->tx_pbl);
1494 if (fp->txq[0]->handle != NULL) {
1496 (uint16_t)usecs, fp->txq[0]->handle);
2963 struct qlnx_tx_queue *txq)
2973 idx = txq->sw_tx_cons;
2974 mp = txq->sw_tx_ring[idx].mp;
2975 map = txq->sw_tx_ring[idx].map;
2989 ecore_chain_get_prod_idx(&txq->tx_pbl),
2990 ecore_chain_get_cons_idx(&txq->tx_pbl),
2991 le16toh(*txq->hw_cons_ptr),
2992 txq->tx_db.raw,
2993 ecore_chain_get_elem_left(&txq->tx_pbl));
3015 first_bd = (struct eth_tx_1st_bd *)ecore_chain_consume(&txq->tx_pbl);
3021 tx_data_bd = ecore_chain_consume(&txq->tx_pbl);
3024 txq->sw_tx_ring[idx].flags = 0;
3025 txq->sw_tx_ring[idx].mp = NULL;
3026 txq->sw_tx_ring[idx].map = (bus_dmamap_t)0;
3033 struct qlnx_tx_queue *txq)
3040 hw_bd_cons = le16toh(*txq->hw_cons_ptr);
3043 (ecore_cons_idx = ecore_chain_get_cons_idx(&txq->tx_pbl))) {
3064 ecore_chain_get_prod_idx(&txq->tx_pbl),
3065 ecore_chain_get_cons_idx(&txq->tx_pbl),
3066 le16toh(*txq->hw_cons_ptr),
3067 txq->tx_db.raw,
3068 ecore_chain_get_elem_left(&txq->tx_pbl));
3076 idx = (txq->sw_tx_cons + 1) & (TX_RING_SIZE - 1);
3077 idx2 = (txq->sw_tx_cons + 2) & (TX_RING_SIZE - 1);
3078 prefetch(txq->sw_tx_ring[idx].mp);
3079 prefetch(txq->sw_tx_ring[idx2].mp);
3081 qlnx_free_tx_pkt(ha, fp, txq);
3083 txq->sw_tx_cons = (txq->sw_tx_cons + 1) & (TX_RING_SIZE - 1);
3092 struct qlnx_tx_queue *txq;
3096 txq = fp->txq[0];
3133 if((qlnx_num_tx_compl(ha,fp, fp->txq[0]) > QLNX_TX_COMPL_THRESH) ||
3134 ((int)(elem_left = ecore_chain_get_elem_left(&txq->tx_pbl))
3136 (void)qlnx_tx_int(ha, fp, fp->txq[0]);
3371 struct qlnx_tx_queue *txq;
3396 txq = fp->txq[0];
3398 if ((int)(elem_left = ecore_chain_get_elem_left(&txq->tx_pbl)) <
3407 idx = txq->sw_tx_prod;
3409 map = txq->sw_tx_ring[idx].map;
3410 segs = txq->segs;
3572 elem_left = ecore_chain_get_elem_left(&txq->tx_pbl);
3614 (int)(elem_left = ecore_chain_get_elem_left(&txq->tx_pbl))) {
3622 (void)qlnx_tx_int(ha, fp, txq);
3625 ecore_chain_get_elem_left(&txq->tx_pbl))) {
3641 txq->sw_tx_ring[idx].mp = m_head;
3643 first_bd = (struct eth_tx_1st_bd *)ecore_chain_produce(&txq->tx_pbl);
3686 ecore_chain_produce(&txq->tx_pbl);
3698 ecore_chain_produce(&txq->tx_pbl);
3714 ecore_chain_produce(&txq->tx_pbl);
3727 ecore_chain_produce(&txq->tx_pbl);
3736 ecore_chain_produce(&txq->tx_pbl);
3750 ecore_chain_produce(&txq->tx_pbl);
3769 ecore_chain_produce(&txq->tx_pbl);
3785 ecore_chain_produce(&txq->tx_pbl);
3814 ecore_chain_produce(&txq->tx_pbl);
3827 ecore_chain_produce(&txq->tx_pbl);
3853 txq->sw_tx_ring[idx].nsegs = nsegs;
3854 txq->sw_tx_prod = (txq->sw_tx_prod + 1) & (TX_RING_SIZE - 1);
3856 txq->tx_db.data.bd_prod =
3857 htole16(ecore_chain_get_prod_idx(&txq->tx_pbl));
3859 qlnx_txq_doorbell_wr32(ha, txq->doorbell_addr, txq->tx_db.raw);
5010 struct qlnx_tx_queue *txq;
5020 txq = fp->txq[tc];
5023 ecore_chain_get_elem_left(&txq->tx_pbl)) <
5031 qlnx_tx_int(ha, fp, fp->txq[tc]);
6076 fp->txq[tc] = &ha->txq_array[txq_array_index];
6077 fp->txq[tc]->index = txq_array_index;
6478 struct qlnx_tx_queue *txq)
6484 bzero((void *)&txq->sw_tx_ring[0],
6488 if (txq->tx_pbl.p_virt_addr) {
6489 ecore_chain_free(cdev, &txq->tx_pbl);
6490 txq->tx_pbl.p_virt_addr = NULL;
6498 struct qlnx_tx_queue *txq)
6506 bzero((void *)&txq->sw_tx_ring[0],
6516 &txq->tx_pbl, NULL);
6522 txq->num_tx_buffers = TX_RING_SIZE;
6527 qlnx_free_mem_txq(ha, fp, txq);
6568 qlnx_free_mem_txq(ha, fp, fp->txq[tc]);
6621 rc = qlnx_alloc_mem_txq(ha, fp, fp->txq[tc]);
6965 struct qlnx_tx_queue *txq = fp->txq[tc];
6972 qparams.queue_id = txq->index / cdev->num_hwfns ;
6982 ecore_chain_get_pbl_phys(&txq->tx_pbl),
6983 ecore_chain_get_page_cnt(&txq->tx_pbl),
6988 txq->index, rc);
6992 txq->doorbell_addr = tx_ret_params.p_doorbell;
6993 txq->handle = tx_ret_params.p_handle;
6995 txq->hw_cons_ptr =
6997 SET_FIELD(txq->tx_db.data.params,
6999 SET_FIELD(txq->tx_db.data.params, ETH_DB_DATA_AGG_CMD,
7001 SET_FIELD(txq->tx_db.data.params,
7005 txq->tx_db.data.agg_flags = DQ_XCM_ETH_DQ_CF_CMD;
7077 struct qlnx_tx_queue *txq)
7084 hw_bd_cons = le16toh(*txq->hw_cons_ptr);
7087 (ecore_cons_idx = ecore_chain_get_cons_idx(&txq->tx_pbl))) {
7091 (void)qlnx_tx_int(ha, fp, txq);
7097 hw_bd_cons = le16toh(*txq->hw_cons_ptr);
7100 QL_DPRINT2(ha, "[%d, %d]: done\n", fp->rss_id, txq->index);
7143 struct qlnx_tx_queue *txq = fp->txq[tc];
7145 rc = qlnx_drain_txq(ha, fp, txq);
7164 fp->txq[tc]->handle);