Lines Matching refs:p_tx
275 struct qed_ll2_tx_queue *p_tx; in qed_ll2_txq_flush() local
283 p_tx = &p_ll2_conn->tx_queue; in qed_ll2_txq_flush()
285 spin_lock_irqsave(&p_tx->lock, flags); in qed_ll2_txq_flush()
286 while (!list_empty(&p_tx->active_descq)) { in qed_ll2_txq_flush()
287 p_pkt = list_first_entry(&p_tx->active_descq, in qed_ll2_txq_flush()
293 b_last_packet = list_empty(&p_tx->active_descq); in qed_ll2_txq_flush()
294 list_add_tail(&p_pkt->list_entry, &p_tx->free_descq); in qed_ll2_txq_flush()
295 spin_unlock_irqrestore(&p_tx->lock, flags); in qed_ll2_txq_flush()
303 p_tx->cur_completing_packet = *p_pkt; in qed_ll2_txq_flush()
304 p_tx->cur_completing_bd_idx = 1; in qed_ll2_txq_flush()
306 p_tx->cur_completing_bd_idx == p_pkt->bd_used; in qed_ll2_txq_flush()
315 spin_lock_irqsave(&p_tx->lock, flags); in qed_ll2_txq_flush()
317 spin_unlock_irqrestore(&p_tx->lock, flags); in qed_ll2_txq_flush()
323 struct qed_ll2_tx_queue *p_tx = &p_ll2_conn->tx_queue; in qed_ll2_txq_completion() local
333 spin_lock_irqsave(&p_tx->lock, flags); in qed_ll2_txq_completion()
334 if (p_tx->b_completing_packet) { in qed_ll2_txq_completion()
339 new_idx = le16_to_cpu(*p_tx->p_fw_cons); in qed_ll2_txq_completion()
340 num_bds = ((s16)new_idx - (s16)p_tx->bds_idx); in qed_ll2_txq_completion()
342 if (list_empty(&p_tx->active_descq)) in qed_ll2_txq_completion()
345 p_pkt = list_first_entry(&p_tx->active_descq, in qed_ll2_txq_completion()
350 p_tx->b_completing_packet = true; in qed_ll2_txq_completion()
351 p_tx->cur_completing_packet = *p_pkt; in qed_ll2_txq_completion()
362 p_tx->bds_idx += num_bds_in_packet; in qed_ll2_txq_completion()
364 qed_chain_consume(&p_tx->txq_chain); in qed_ll2_txq_completion()
366 p_tx->cur_completing_bd_idx = 1; in qed_ll2_txq_completion()
367 b_last_frag = p_tx->cur_completing_bd_idx == p_pkt->bd_used; in qed_ll2_txq_completion()
368 list_add_tail(&p_pkt->list_entry, &p_tx->free_descq); in qed_ll2_txq_completion()
370 spin_unlock_irqrestore(&p_tx->lock, flags); in qed_ll2_txq_completion()
378 spin_lock_irqsave(&p_tx->lock, flags); in qed_ll2_txq_completion()
381 p_tx->b_completing_packet = false; in qed_ll2_txq_completion()
384 spin_unlock_irqrestore(&p_tx->lock, flags); in qed_ll2_txq_completion()
855 struct qed_ll2_tx_queue *p_tx = &p_ll2_conn->tx_queue; in qed_ll2_lb_txq_completion() local
868 new_idx = le16_to_cpu(*p_tx->p_fw_cons); in qed_ll2_lb_txq_completion()
869 num_bds = ((s16)new_idx - (s16)p_tx->bds_idx); in qed_ll2_lb_txq_completion()
875 if (list_empty(&p_tx->active_descq)) in qed_ll2_lb_txq_completion()
878 p_pkt = list_first_entry(&p_tx->active_descq, in qed_ll2_lb_txq_completion()
893 p_tx->bds_idx++; in qed_ll2_lb_txq_completion()
894 qed_chain_consume(&p_tx->txq_chain); in qed_ll2_lb_txq_completion()
897 list_add_tail(&p_pkt->list_entry, &p_tx->free_descq); in qed_ll2_lb_txq_completion()
1001 struct qed_ll2_tx_queue *p_tx = &p_ll2_conn->tx_queue; in qed_sp_ll2_tx_queue_start() local
1031 p_ramrod->sb_index = p_tx->tx_sb_index; in qed_sp_ll2_tx_queue_start()
1037 qed_chain_get_pbl_phys(&p_tx->txq_chain)); in qed_sp_ll2_tx_queue_start()
1038 pbl_size = qed_chain_get_page_cnt(&p_tx->txq_chain); in qed_sp_ll2_tx_queue_start()
1086 rc = qed_db_recovery_add(p_hwfn->cdev, p_tx->doorbell_addr, in qed_sp_ll2_tx_queue_start()
1087 &p_tx->db_msg, DB_REC_WIDTH_32B, in qed_sp_ll2_tx_queue_start()
1123 struct qed_ll2_tx_queue *p_tx = &p_ll2_conn->tx_queue; in qed_sp_ll2_tx_queue_stop() local
1127 qed_db_recovery_del(p_hwfn->cdev, p_tx->doorbell_addr, &p_tx->db_msg); in qed_sp_ll2_tx_queue_stop()
1541 struct qed_ll2_tx_queue *p_tx; in qed_ll2_establish_connection() local
1560 p_tx = &p_ll2_conn->tx_queue; in qed_ll2_establish_connection()
1574 qed_chain_reset(&p_tx->txq_chain); in qed_ll2_establish_connection()
1575 INIT_LIST_HEAD(&p_tx->active_descq); in qed_ll2_establish_connection()
1576 INIT_LIST_HEAD(&p_tx->free_descq); in qed_ll2_establish_connection()
1577 INIT_LIST_HEAD(&p_tx->sending_descq); in qed_ll2_establish_connection()
1578 spin_lock_init(&p_tx->lock); in qed_ll2_establish_connection()
1579 capacity = qed_chain_get_capacity(&p_tx->txq_chain); in qed_ll2_establish_connection()
1585 p_pkt = p_tx->descq_mem + desc_size * i; in qed_ll2_establish_connection()
1586 list_add_tail(&p_pkt->list_entry, &p_tx->free_descq); in qed_ll2_establish_connection()
1588 p_tx->cur_completing_bd_idx = 0; in qed_ll2_establish_connection()
1589 p_tx->bds_idx = 0; in qed_ll2_establish_connection()
1590 p_tx->b_completing_packet = false; in qed_ll2_establish_connection()
1591 p_tx->cur_send_packet = NULL; in qed_ll2_establish_connection()
1592 p_tx->cur_send_frag_num = 0; in qed_ll2_establish_connection()
1593 p_tx->cur_completing_frag_num = 0; in qed_ll2_establish_connection()
1594 *p_tx->p_fw_cons = 0; in qed_ll2_establish_connection()
1639 p_tx->doorbell_addr = (u8 __iomem *)p_hwfn->doorbells + in qed_ll2_establish_connection()
1643 SET_FIELD(p_tx->db_msg.params, CORE_DB_DATA_DEST, DB_DEST_XCM); in qed_ll2_establish_connection()
1644 SET_FIELD(p_tx->db_msg.params, CORE_DB_DATA_AGG_CMD, DB_AGG_CMD_SET); in qed_ll2_establish_connection()
1645 SET_FIELD(p_tx->db_msg.params, CORE_DB_DATA_AGG_VAL_SEL, in qed_ll2_establish_connection()
1647 p_tx->db_msg.agg_flags = DQ_XCM_CORE_DQ_CF_CMD; in qed_ll2_establish_connection()
1795 struct qed_ll2_tx_queue *p_tx, in qed_ll2_prepare_tx_packet_set() argument
1804 p_tx->cur_send_packet = p_curp; in qed_ll2_prepare_tx_packet_set()
1805 p_tx->cur_send_frag_num = 0; in qed_ll2_prepare_tx_packet_set()
1807 p_curp->bds_set[p_tx->cur_send_frag_num].tx_frag = pkt->first_frag; in qed_ll2_prepare_tx_packet_set()
1808 p_curp->bds_set[p_tx->cur_send_frag_num].frag_len = pkt->first_frag_len; in qed_ll2_prepare_tx_packet_set()
1809 p_tx->cur_send_frag_num++; in qed_ll2_prepare_tx_packet_set()
1908 struct qed_ll2_tx_queue *p_tx = &p_ll2_conn->tx_queue; in qed_ll2_tx_packet_notify() local
1929 while (!list_empty(&p_tx->sending_descq)) { in qed_ll2_tx_packet_notify()
1930 p_pkt = list_first_entry(&p_tx->sending_descq, in qed_ll2_tx_packet_notify()
1935 list_move_tail(&p_pkt->list_entry, &p_tx->active_descq); in qed_ll2_tx_packet_notify()
1938 p_tx->db_msg.spq_prod = cpu_to_le16(bd_prod); in qed_ll2_tx_packet_notify()
1943 DIRECT_REG_WR(p_tx->doorbell_addr, *((u32 *)&p_tx->db_msg)); in qed_ll2_tx_packet_notify()
1950 p_ll2_conn->input.conn_type, p_tx->db_msg.spq_prod); in qed_ll2_tx_packet_notify()
1961 struct qed_ll2_tx_queue *p_tx; in qed_ll2_prepare_tx_packet() local
1969 p_tx = &p_ll2_conn->tx_queue; in qed_ll2_prepare_tx_packet()
1970 p_tx_chain = &p_tx->txq_chain; in qed_ll2_prepare_tx_packet()
1975 spin_lock_irqsave(&p_tx->lock, flags); in qed_ll2_prepare_tx_packet()
1976 if (p_tx->cur_send_packet) { in qed_ll2_prepare_tx_packet()
1982 if (!list_empty(&p_tx->free_descq)) in qed_ll2_prepare_tx_packet()
1983 p_curp = list_first_entry(&p_tx->free_descq, in qed_ll2_prepare_tx_packet()
1994 qed_ll2_prepare_tx_packet_set(p_hwfn, p_tx, p_curp, pkt, notify_fw); in qed_ll2_prepare_tx_packet()
2001 spin_unlock_irqrestore(&p_tx->lock, flags); in qed_ll2_prepare_tx_packet()