Lines Matching refs:p_tx
301 struct qed_ll2_tx_queue *p_tx; in qed_ll2_txq_flush() local
309 p_tx = &p_ll2_conn->tx_queue; in qed_ll2_txq_flush()
311 spin_lock_irqsave(&p_tx->lock, flags); in qed_ll2_txq_flush()
312 while (!list_empty(&p_tx->active_descq)) { in qed_ll2_txq_flush()
313 p_pkt = list_first_entry(&p_tx->active_descq, in qed_ll2_txq_flush()
319 b_last_packet = list_empty(&p_tx->active_descq); in qed_ll2_txq_flush()
320 list_add_tail(&p_pkt->list_entry, &p_tx->free_descq); in qed_ll2_txq_flush()
321 spin_unlock_irqrestore(&p_tx->lock, flags); in qed_ll2_txq_flush()
329 p_tx->cur_completing_packet = *p_pkt; in qed_ll2_txq_flush()
330 p_tx->cur_completing_bd_idx = 1; in qed_ll2_txq_flush()
332 p_tx->cur_completing_bd_idx == p_pkt->bd_used; in qed_ll2_txq_flush()
341 spin_lock_irqsave(&p_tx->lock, flags); in qed_ll2_txq_flush()
343 spin_unlock_irqrestore(&p_tx->lock, flags); in qed_ll2_txq_flush()
349 struct qed_ll2_tx_queue *p_tx = &p_ll2_conn->tx_queue; in qed_ll2_txq_completion() local
359 spin_lock_irqsave(&p_tx->lock, flags); in qed_ll2_txq_completion()
360 if (p_tx->b_completing_packet) { in qed_ll2_txq_completion()
365 new_idx = le16_to_cpu(*p_tx->p_fw_cons); in qed_ll2_txq_completion()
366 num_bds = ((s16)new_idx - (s16)p_tx->bds_idx); in qed_ll2_txq_completion()
368 if (list_empty(&p_tx->active_descq)) in qed_ll2_txq_completion()
371 p_pkt = list_first_entry(&p_tx->active_descq, in qed_ll2_txq_completion()
376 p_tx->b_completing_packet = true; in qed_ll2_txq_completion()
377 p_tx->cur_completing_packet = *p_pkt; in qed_ll2_txq_completion()
388 p_tx->bds_idx += num_bds_in_packet; in qed_ll2_txq_completion()
390 qed_chain_consume(&p_tx->txq_chain); in qed_ll2_txq_completion()
392 p_tx->cur_completing_bd_idx = 1; in qed_ll2_txq_completion()
393 b_last_frag = p_tx->cur_completing_bd_idx == p_pkt->bd_used; in qed_ll2_txq_completion()
394 list_add_tail(&p_pkt->list_entry, &p_tx->free_descq); in qed_ll2_txq_completion()
396 spin_unlock_irqrestore(&p_tx->lock, flags); in qed_ll2_txq_completion()
404 spin_lock_irqsave(&p_tx->lock, flags); in qed_ll2_txq_completion()
407 p_tx->b_completing_packet = false; in qed_ll2_txq_completion()
410 spin_unlock_irqrestore(&p_tx->lock, flags); in qed_ll2_txq_completion()
879 struct qed_ll2_tx_queue *p_tx = &p_ll2_conn->tx_queue; in qed_ll2_lb_txq_completion() local
892 new_idx = le16_to_cpu(*p_tx->p_fw_cons); in qed_ll2_lb_txq_completion()
893 num_bds = ((s16)new_idx - (s16)p_tx->bds_idx); in qed_ll2_lb_txq_completion()
899 if (list_empty(&p_tx->active_descq)) in qed_ll2_lb_txq_completion()
902 p_pkt = list_first_entry(&p_tx->active_descq, in qed_ll2_lb_txq_completion()
917 p_tx->bds_idx++; in qed_ll2_lb_txq_completion()
918 qed_chain_consume(&p_tx->txq_chain); in qed_ll2_lb_txq_completion()
921 list_add_tail(&p_pkt->list_entry, &p_tx->free_descq); in qed_ll2_lb_txq_completion()
1025 struct qed_ll2_tx_queue *p_tx = &p_ll2_conn->tx_queue; in qed_sp_ll2_tx_queue_start() local
1055 p_ramrod->sb_index = p_tx->tx_sb_index; in qed_sp_ll2_tx_queue_start()
1061 qed_chain_get_pbl_phys(&p_tx->txq_chain)); in qed_sp_ll2_tx_queue_start()
1062 pbl_size = qed_chain_get_page_cnt(&p_tx->txq_chain); in qed_sp_ll2_tx_queue_start()
1110 rc = qed_db_recovery_add(p_hwfn->cdev, p_tx->doorbell_addr, in qed_sp_ll2_tx_queue_start()
1111 &p_tx->db_msg, DB_REC_WIDTH_32B, in qed_sp_ll2_tx_queue_start()
1147 struct qed_ll2_tx_queue *p_tx = &p_ll2_conn->tx_queue; in qed_sp_ll2_tx_queue_stop() local
1152 qed_db_recovery_del(p_hwfn->cdev, p_tx->doorbell_addr, &p_tx->db_msg); in qed_sp_ll2_tx_queue_stop()
1566 struct qed_ll2_tx_queue *p_tx; in qed_ll2_establish_connection() local
1585 p_tx = &p_ll2_conn->tx_queue; in qed_ll2_establish_connection()
1599 qed_chain_reset(&p_tx->txq_chain); in qed_ll2_establish_connection()
1600 INIT_LIST_HEAD(&p_tx->active_descq); in qed_ll2_establish_connection()
1601 INIT_LIST_HEAD(&p_tx->free_descq); in qed_ll2_establish_connection()
1602 INIT_LIST_HEAD(&p_tx->sending_descq); in qed_ll2_establish_connection()
1603 spin_lock_init(&p_tx->lock); in qed_ll2_establish_connection()
1604 capacity = qed_chain_get_capacity(&p_tx->txq_chain); in qed_ll2_establish_connection()
1610 p_pkt = p_tx->descq_mem + desc_size * i; in qed_ll2_establish_connection()
1611 list_add_tail(&p_pkt->list_entry, &p_tx->free_descq); in qed_ll2_establish_connection()
1613 p_tx->cur_completing_bd_idx = 0; in qed_ll2_establish_connection()
1614 p_tx->bds_idx = 0; in qed_ll2_establish_connection()
1615 p_tx->b_completing_packet = false; in qed_ll2_establish_connection()
1616 p_tx->cur_send_packet = NULL; in qed_ll2_establish_connection()
1617 p_tx->cur_send_frag_num = 0; in qed_ll2_establish_connection()
1618 p_tx->cur_completing_frag_num = 0; in qed_ll2_establish_connection()
1619 *p_tx->p_fw_cons = 0; in qed_ll2_establish_connection()
1680 p_tx->doorbell_addr = (u8 __iomem *)p_hwfn->doorbells + in qed_ll2_establish_connection()
1684 SET_FIELD(p_tx->db_msg.params, CORE_DB_DATA_DEST, DB_DEST_XCM); in qed_ll2_establish_connection()
1685 SET_FIELD(p_tx->db_msg.params, CORE_DB_DATA_AGG_CMD, DB_AGG_CMD_SET); in qed_ll2_establish_connection()
1686 SET_FIELD(p_tx->db_msg.params, CORE_DB_DATA_AGG_VAL_SEL, in qed_ll2_establish_connection()
1688 p_tx->db_msg.agg_flags = DQ_XCM_CORE_DQ_CF_CMD; in qed_ll2_establish_connection()
1836 struct qed_ll2_tx_queue *p_tx, in qed_ll2_prepare_tx_packet_set() argument
1845 p_tx->cur_send_packet = p_curp; in qed_ll2_prepare_tx_packet_set()
1846 p_tx->cur_send_frag_num = 0; in qed_ll2_prepare_tx_packet_set()
1848 p_curp->bds_set[p_tx->cur_send_frag_num].tx_frag = pkt->first_frag; in qed_ll2_prepare_tx_packet_set()
1849 p_curp->bds_set[p_tx->cur_send_frag_num].frag_len = pkt->first_frag_len; in qed_ll2_prepare_tx_packet_set()
1850 p_tx->cur_send_frag_num++; in qed_ll2_prepare_tx_packet_set()
1949 struct qed_ll2_tx_queue *p_tx = &p_ll2_conn->tx_queue; in qed_ll2_tx_packet_notify() local
1970 while (!list_empty(&p_tx->sending_descq)) { in qed_ll2_tx_packet_notify()
1971 p_pkt = list_first_entry(&p_tx->sending_descq, in qed_ll2_tx_packet_notify()
1976 list_move_tail(&p_pkt->list_entry, &p_tx->active_descq); in qed_ll2_tx_packet_notify()
1979 p_tx->db_msg.spq_prod = cpu_to_le16(bd_prod); in qed_ll2_tx_packet_notify()
1984 DIRECT_REG_WR(p_tx->doorbell_addr, *((u32 *)&p_tx->db_msg)); in qed_ll2_tx_packet_notify()
1991 p_ll2_conn->input.conn_type, p_tx->db_msg.spq_prod); in qed_ll2_tx_packet_notify()
2002 struct qed_ll2_tx_queue *p_tx; in qed_ll2_prepare_tx_packet() local
2010 p_tx = &p_ll2_conn->tx_queue; in qed_ll2_prepare_tx_packet()
2011 p_tx_chain = &p_tx->txq_chain; in qed_ll2_prepare_tx_packet()
2016 spin_lock_irqsave(&p_tx->lock, flags); in qed_ll2_prepare_tx_packet()
2017 if (unlikely(p_tx->cur_send_packet)) { in qed_ll2_prepare_tx_packet()
2023 if (unlikely(!list_empty(&p_tx->free_descq))) in qed_ll2_prepare_tx_packet()
2024 p_curp = list_first_entry(&p_tx->free_descq, in qed_ll2_prepare_tx_packet()
2036 qed_ll2_prepare_tx_packet_set(p_hwfn, p_tx, p_curp, pkt, notify_fw); in qed_ll2_prepare_tx_packet()
2043 spin_unlock_irqrestore(&p_tx->lock, flags); in qed_ll2_prepare_tx_packet()