/kernel/linux/linux-5.10/include/linux/qed/ |
H A D | qed_chain.h | 60 u16 prod_idx; member 66 u32 prod_idx; member 188 return chain->u.chain16.prod_idx; in qed_chain_get_prod_idx() 198 return chain->u.chain32.prod_idx; in qed_chain_get_prod_idx_u32() 371 if ((p_chain->u.chain16.prod_idx & in qed_chain_produce() 373 p_prod_idx = &p_chain->u.chain16.prod_idx; in qed_chain_produce() 378 p_chain->u.chain16.prod_idx++; in qed_chain_produce() 380 if ((p_chain->u.chain32.prod_idx & in qed_chain_produce() 382 p_prod_idx = &p_chain->u.chain32.prod_idx; in qed_chain_produce() 387 p_chain->u.chain32.prod_idx in qed_chain_produce() 571 qed_chain_set_prod(struct qed_chain *p_chain, u32 prod_idx, void *p_prod_elem) qed_chain_set_prod() argument [all...] |
/kernel/linux/linux-6.6/include/linux/qed/ |
H A D | qed_chain.h | 60 u16 prod_idx; member 66 u32 prod_idx; member 188 return chain->u.chain16.prod_idx; in qed_chain_get_prod_idx() 198 return chain->u.chain32.prod_idx; in qed_chain_get_prod_idx_u32() 374 if ((p_chain->u.chain16.prod_idx & in qed_chain_produce() 376 p_prod_idx = &p_chain->u.chain16.prod_idx; in qed_chain_produce() 381 p_chain->u.chain16.prod_idx++; in qed_chain_produce() 383 if ((p_chain->u.chain32.prod_idx & in qed_chain_produce() 385 p_prod_idx = &p_chain->u.chain32.prod_idx; in qed_chain_produce() 390 p_chain->u.chain32.prod_idx in qed_chain_produce() 576 qed_chain_set_prod(struct qed_chain *p_chain, u32 prod_idx, void *p_prod_elem) qed_chain_set_prod() argument [all...] |
/kernel/linux/linux-5.10/drivers/net/ethernet/huawei/hinic/ |
H A D | hinic_hw_qp.c | 54 #define SQ_DB_PI_HI(prod_idx) ((prod_idx) >> SQ_DB_PI_HI_SHIFT) 57 #define SQ_DB_PI_LOW(prod_idx) ((prod_idx) & SQ_DB_PI_LOW_MASK) 102 pi_start = atomic_read(&wq->prod_idx); in hinic_sq_prepare_ctxt() 164 pi_start = atomic_read(&wq->prod_idx); in hinic_rq_prepare_ctxt() 476 static void sq_prepare_ctrl(struct hinic_sq_ctrl *ctrl, u16 prod_idx, in sq_prepare_ctrl() argument 592 * @prod_idx: pi value 597 void hinic_sq_prepare_wqe(struct hinic_sq *sq, u16 prod_idx, in hinic_sq_prepare_wqe() argument 603 sq_prepare_ctrl(&sq_wqe->ctrl, prod_idx, nr_sge in hinic_sq_prepare_wqe() 619 sq_prepare_db(struct hinic_sq *sq, u16 prod_idx, unsigned int cos) sq_prepare_db() argument 639 hinic_sq_write_db(struct hinic_sq *sq, u16 prod_idx, unsigned int wqe_size, unsigned int cos) hinic_sq_write_db() argument 661 hinic_sq_get_wqe(struct hinic_sq *sq, unsigned int wqe_size, u16 *prod_idx) hinic_sq_get_wqe() argument 691 hinic_sq_write_wqe(struct hinic_sq *sq, u16 prod_idx, struct hinic_sq_wqe *sq_wqe, struct sk_buff *skb, unsigned int wqe_size) hinic_sq_write_wqe() argument 800 hinic_rq_get_wqe(struct hinic_rq *rq, unsigned int wqe_size, u16 *prod_idx) hinic_rq_get_wqe() argument 819 hinic_rq_write_wqe(struct hinic_rq *rq, u16 prod_idx, struct hinic_rq_wqe *rq_wqe, struct sk_buff *skb) hinic_rq_write_wqe() argument 944 hinic_rq_prepare_wqe(struct hinic_rq *rq, u16 prod_idx, struct hinic_rq_wqe *rq_wqe, struct hinic_sge *sge) hinic_rq_prepare_wqe() argument 972 hinic_rq_update(struct hinic_rq *rq, u16 prod_idx) hinic_rq_update() argument [all...] |
H A D | hinic_hw_qp.h | 178 void hinic_sq_prepare_wqe(struct hinic_sq *sq, u16 prod_idx, 182 void hinic_sq_write_db(struct hinic_sq *sq, u16 prod_idx, unsigned int wqe_size, 186 unsigned int wqe_size, u16 *prod_idx); 190 void hinic_sq_write_wqe(struct hinic_sq *sq, u16 prod_idx, 208 unsigned int wqe_size, u16 *prod_idx); 210 void hinic_rq_write_wqe(struct hinic_rq *rq, u16 prod_idx, 228 void hinic_rq_prepare_wqe(struct hinic_rq *rq, u16 prod_idx, 231 void hinic_rq_update(struct hinic_rq *rq, u16 prod_idx);
|
H A D | hinic_hw_api_cmd.c | 93 u32 addr, prod_idx; in set_prod_idx() local 96 prod_idx = hinic_hwif_read_reg(hwif, addr); in set_prod_idx() 98 prod_idx = HINIC_API_CMD_PI_CLEAR(prod_idx, IDX); in set_prod_idx() 100 prod_idx |= HINIC_API_CMD_PI_SET(chain->prod_idx, IDX); in set_prod_idx() 102 hinic_hwif_write_reg(hwif, addr, prod_idx); in set_prod_idx() 145 u32 prod_idx; in chain_busy() local 150 prod_idx = chain->prod_idx; in chain_busy() [all...] |
H A D | hinic_hw_cmdq.c | 184 enum hinic_mod_type mod, u8 cmd, u16 prod_idx, in cmdq_prepare_wqe_ctrl() 209 ctrl->ctrl_info = HINIC_CMDQ_CTRL_SET(prod_idx, PI) | in cmdq_prepare_wqe_ctrl() 253 enum hinic_mod_type mod, u8 cmd, u16 prod_idx) in cmdq_set_lcmd_wqe() 270 prod_idx, complete_format, DATA_SGE, in cmdq_set_lcmd_wqe() 281 enum hinic_mod_type mod, u8 cmd, u16 prod_idx) in cmdq_set_direct_wqe() 300 cmdq_prepare_wqe_ctrl(wqe, wrapped, ack_type, mod, cmd, prod_idx, in cmdq_set_direct_wqe() 317 enum hinic_cmdq_type cmdq_type, u16 prod_idx) in cmdq_fill_db() 319 *db_info = HINIC_CMDQ_DB_INFO_SET(UPPER_8_BITS(prod_idx), HI_PROD_IDX) | in cmdq_fill_db() 326 enum hinic_cmdq_type cmdq_type, u16 prod_idx) in cmdq_set_db() 330 cmdq_fill_db(&db_info, cmdq_type, prod_idx); in cmdq_set_db() 182 cmdq_prepare_wqe_ctrl(struct hinic_cmdq_wqe *wqe, int wrapped, enum hinic_cmd_ack_type ack_type, enum hinic_mod_type mod, u8 cmd, u16 prod_idx, enum completion_format complete_format, enum data_format data_format, enum bufdesc_len buf_len) cmdq_prepare_wqe_ctrl() argument 248 cmdq_set_lcmd_wqe(struct hinic_cmdq_wqe *wqe, enum cmdq_cmd_type cmd_type, struct hinic_cmdq_buf *buf_in, struct hinic_cmdq_buf *buf_out, int wrapped, enum hinic_cmd_ack_type ack_type, enum hinic_mod_type mod, u8 cmd, u16 prod_idx) cmdq_set_lcmd_wqe() argument 276 cmdq_set_direct_wqe(struct hinic_cmdq_wqe *wqe, enum cmdq_cmd_type cmd_type, void *buf_in, u16 in_size, struct hinic_cmdq_buf *buf_out, int wrapped, enum hinic_cmd_ack_type ack_type, enum hinic_mod_type mod, u8 cmd, u16 prod_idx) cmdq_set_direct_wqe() argument 316 cmdq_fill_db(u32 *db_info, enum hinic_cmdq_type cmdq_type, u16 prod_idx) cmdq_fill_db() argument 325 cmdq_set_db(struct hinic_cmdq *cmdq, enum hinic_cmdq_type cmdq_type, u16 prod_idx) cmdq_set_db() argument 589 cmdq_update_errcode(struct hinic_cmdq *cmdq, u16 prod_idx, int errcode) cmdq_update_errcode() argument 605 u16 prod_idx = cons_idx; cmdq_sync_cmd_handler() local [all...] |
H A D | hinic_hw_wq.c | 564 atomic_set(&wq->prod_idx, 0); in hinic_wq_allocate() 668 atomic_set(&wq[i].prod_idx, 0); in hinic_wqs_cmdq_alloc() 737 * @prod_idx: returned pi 742 u16 *prod_idx) in hinic_get_wqe() 747 *prod_idx = MASKED_WQE_IDX(wq, atomic_read(&wq->prod_idx)); in hinic_get_wqe() 756 end_prod_idx = atomic_add_return(num_wqebbs, &wq->prod_idx); in hinic_get_wqe() 768 *prod_idx = curr_prod_idx; in hinic_get_wqe() 773 if (curr_pg != end_pg || end_prod_idx < *prod_idx) { in hinic_get_wqe() 776 copy_wqe_to_shadow(wq, shadow_addr, num_wqebbs, *prod_idx); in hinic_get_wqe() 741 hinic_get_wqe(struct hinic_wq *wq, unsigned int wqe_size, u16 *prod_idx) hinic_get_wqe() argument 894 u16 prod_idx; hinic_write_wqe() local [all...] |
H A D | hinic_tx.c | 492 u16 prod_idx, q_id = skb->queue_mapping; in hinic_lb_xmit_frame() local 510 sq_wqe = hinic_sq_get_wqe(txq->sq, wqe_size, &prod_idx); in hinic_lb_xmit_frame() 514 sq_wqe = hinic_sq_get_wqe(txq->sq, wqe_size, &prod_idx); in hinic_lb_xmit_frame() 531 hinic_sq_prepare_wqe(txq->sq, prod_idx, sq_wqe, txq->sges, nr_sges); in hinic_lb_xmit_frame() 532 hinic_sq_write_wqe(txq->sq, prod_idx, sq_wqe, skb, wqe_size); in hinic_lb_xmit_frame() 537 hinic_sq_write_db(txq->sq, prod_idx, wqe_size, 0); in hinic_lb_xmit_frame() 553 u16 prod_idx, q_id = skb->queue_mapping; in hinic_xmit_frame() local 591 sq_wqe = hinic_sq_get_wqe(txq->sq, wqe_size, &prod_idx); in hinic_xmit_frame() 598 sq_wqe = hinic_sq_get_wqe(txq->sq, wqe_size, &prod_idx); in hinic_xmit_frame() 615 hinic_sq_prepare_wqe(txq->sq, prod_idx, sq_wq in hinic_xmit_frame() [all...] |
H A D | hinic_hw_wq.h | 45 atomic_t prod_idx; member 97 u16 *prod_idx);
|
H A D | hinic_rx.c | 202 u16 prod_idx; in rx_alloc_pkts() local 221 &prod_idx); in rx_alloc_pkts() 227 hinic_rq_prepare_wqe(rxq->rq, prod_idx, rq_wqe, &sge); in rx_alloc_pkts() 229 hinic_rq_write_wqe(rxq->rq, prod_idx, rq_wqe, skb); in rx_alloc_pkts() 236 hinic_rq_update(rxq->rq, prod_idx); in rx_alloc_pkts()
|
H A D | hinic_debugfs.c | 31 return atomic_read(&wq->prod_idx) & wq->mask; in hinic_dbg_get_sq_info() 65 return atomic_read(&wq->prod_idx) & wq->mask; in hinic_dbg_get_rq_info()
|
H A D | hinic_hw_api_cmd.h | 180 u32 prod_idx; member
|
/kernel/linux/linux-6.6/drivers/net/ethernet/huawei/hinic/ |
H A D | hinic_hw_qp.c | 54 #define SQ_DB_PI_HI(prod_idx) ((prod_idx) >> SQ_DB_PI_HI_SHIFT) 57 #define SQ_DB_PI_LOW(prod_idx) ((prod_idx) & SQ_DB_PI_LOW_MASK) 102 pi_start = atomic_read(&wq->prod_idx); in hinic_sq_prepare_ctxt() 164 pi_start = atomic_read(&wq->prod_idx); in hinic_rq_prepare_ctxt() 610 * @prod_idx: pi value for the doorbell 615 static u32 sq_prepare_db(struct hinic_sq *sq, u16 prod_idx, unsigned int cos) in sq_prepare_db() argument 618 u8 hi_prod_idx = SQ_DB_PI_HI(SQ_MASKED_IDX(sq, prod_idx)); in sq_prepare_db() 631 * @prod_idx 635 hinic_sq_write_db(struct hinic_sq *sq, u16 prod_idx, unsigned int wqe_size, unsigned int cos) hinic_sq_write_db() argument 657 hinic_sq_get_wqe(struct hinic_sq *sq, unsigned int wqe_size, u16 *prod_idx) hinic_sq_get_wqe() argument 687 hinic_sq_write_wqe(struct hinic_sq *sq, u16 prod_idx, struct hinic_sq_wqe *sq_wqe, struct sk_buff *skb, unsigned int wqe_size) hinic_sq_write_wqe() argument 796 hinic_rq_get_wqe(struct hinic_rq *rq, unsigned int wqe_size, u16 *prod_idx) hinic_rq_get_wqe() argument 815 hinic_rq_write_wqe(struct hinic_rq *rq, u16 prod_idx, struct hinic_rq_wqe *rq_wqe, struct sk_buff *skb) hinic_rq_write_wqe() argument 940 hinic_rq_prepare_wqe(struct hinic_rq *rq, u16 prod_idx, struct hinic_rq_wqe *rq_wqe, struct hinic_sge *sge) hinic_rq_prepare_wqe() argument 968 hinic_rq_update(struct hinic_rq *rq, u16 prod_idx) hinic_rq_update() argument [all...] |
H A D | hinic_hw_qp.h | 181 void hinic_sq_write_db(struct hinic_sq *sq, u16 prod_idx, unsigned int wqe_size, 185 unsigned int wqe_size, u16 *prod_idx); 189 void hinic_sq_write_wqe(struct hinic_sq *sq, u16 prod_idx, 207 unsigned int wqe_size, u16 *prod_idx); 209 void hinic_rq_write_wqe(struct hinic_rq *rq, u16 prod_idx, 227 void hinic_rq_prepare_wqe(struct hinic_rq *rq, u16 prod_idx, 230 void hinic_rq_update(struct hinic_rq *rq, u16 prod_idx);
|
H A D | hinic_hw_api_cmd.c | 93 u32 addr, prod_idx; in set_prod_idx() local 96 prod_idx = hinic_hwif_read_reg(hwif, addr); in set_prod_idx() 98 prod_idx = HINIC_API_CMD_PI_CLEAR(prod_idx, IDX); in set_prod_idx() 100 prod_idx |= HINIC_API_CMD_PI_SET(chain->prod_idx, IDX); in set_prod_idx() 102 hinic_hwif_write_reg(hwif, addr, prod_idx); in set_prod_idx() 145 u32 prod_idx; in chain_busy() local 150 prod_idx = chain->prod_idx; in chain_busy() [all...] |
H A D | hinic_hw_cmdq.c | 179 enum hinic_mod_type mod, u8 cmd, u16 prod_idx, in cmdq_prepare_wqe_ctrl() 204 ctrl->ctrl_info = HINIC_CMDQ_CTRL_SET(prod_idx, PI) | in cmdq_prepare_wqe_ctrl() 248 enum hinic_mod_type mod, u8 cmd, u16 prod_idx) in cmdq_set_lcmd_wqe() 265 prod_idx, complete_format, DATA_SGE, in cmdq_set_lcmd_wqe() 276 enum hinic_mod_type mod, u8 cmd, u16 prod_idx) in cmdq_set_direct_wqe() 295 cmdq_prepare_wqe_ctrl(wqe, wrapped, ack_type, mod, cmd, prod_idx, in cmdq_set_direct_wqe() 312 enum hinic_cmdq_type cmdq_type, u16 prod_idx) in cmdq_fill_db() 314 *db_info = HINIC_CMDQ_DB_INFO_SET(UPPER_8_BITS(prod_idx), HI_PROD_IDX) | in cmdq_fill_db() 321 enum hinic_cmdq_type cmdq_type, u16 prod_idx) in cmdq_set_db() 325 cmdq_fill_db(&db_info, cmdq_type, prod_idx); in cmdq_set_db() 177 cmdq_prepare_wqe_ctrl(struct hinic_cmdq_wqe *wqe, int wrapped, enum hinic_cmd_ack_type ack_type, enum hinic_mod_type mod, u8 cmd, u16 prod_idx, enum completion_format complete_format, enum data_format data_format, enum bufdesc_len buf_len) cmdq_prepare_wqe_ctrl() argument 243 cmdq_set_lcmd_wqe(struct hinic_cmdq_wqe *wqe, enum cmdq_cmd_type cmd_type, struct hinic_cmdq_buf *buf_in, struct hinic_cmdq_buf *buf_out, int wrapped, enum hinic_cmd_ack_type ack_type, enum hinic_mod_type mod, u8 cmd, u16 prod_idx) cmdq_set_lcmd_wqe() argument 271 cmdq_set_direct_wqe(struct hinic_cmdq_wqe *wqe, enum cmdq_cmd_type cmd_type, void *buf_in, u16 in_size, struct hinic_cmdq_buf *buf_out, int wrapped, enum hinic_cmd_ack_type ack_type, enum hinic_mod_type mod, u8 cmd, u16 prod_idx) cmdq_set_direct_wqe() argument 311 cmdq_fill_db(u32 *db_info, enum hinic_cmdq_type cmdq_type, u16 prod_idx) cmdq_fill_db() argument 320 cmdq_set_db(struct hinic_cmdq *cmdq, enum hinic_cmdq_type cmdq_type, u16 prod_idx) cmdq_set_db() argument 584 cmdq_update_errcode(struct hinic_cmdq *cmdq, u16 prod_idx, int errcode) cmdq_update_errcode() argument 600 u16 prod_idx = cons_idx; cmdq_sync_cmd_handler() local [all...] |
H A D | hinic_hw_wq.c | 563 atomic_set(&wq->prod_idx, 0); in hinic_wq_allocate() 667 atomic_set(&wq[i].prod_idx, 0); in hinic_wqs_cmdq_alloc() 736 * @prod_idx: returned pi 741 u16 *prod_idx) in hinic_get_wqe() 746 *prod_idx = MASKED_WQE_IDX(wq, atomic_read(&wq->prod_idx)); in hinic_get_wqe() 755 end_prod_idx = atomic_add_return(num_wqebbs, &wq->prod_idx); in hinic_get_wqe() 767 *prod_idx = curr_prod_idx; in hinic_get_wqe() 772 if (curr_pg != end_pg || end_prod_idx < *prod_idx) { in hinic_get_wqe() 775 copy_wqe_to_shadow(wq, shadow_addr, num_wqebbs, *prod_idx); in hinic_get_wqe() 740 hinic_get_wqe(struct hinic_wq *wq, unsigned int wqe_size, u16 *prod_idx) hinic_get_wqe() argument 893 u16 prod_idx; hinic_write_wqe() local [all...] |
H A D | hinic_tx.c | 494 u16 prod_idx, q_id = skb->queue_mapping; in hinic_lb_xmit_frame() local 512 sq_wqe = hinic_sq_get_wqe(txq->sq, wqe_size, &prod_idx); in hinic_lb_xmit_frame() 516 sq_wqe = hinic_sq_get_wqe(txq->sq, wqe_size, &prod_idx); in hinic_lb_xmit_frame() 534 hinic_sq_write_wqe(txq->sq, prod_idx, sq_wqe, skb, wqe_size); in hinic_lb_xmit_frame() 539 hinic_sq_write_db(txq->sq, prod_idx, wqe_size, 0); in hinic_lb_xmit_frame() 555 u16 prod_idx, q_id = skb->queue_mapping; in hinic_xmit_frame() local 593 sq_wqe = hinic_sq_get_wqe(txq->sq, wqe_size, &prod_idx); in hinic_xmit_frame() 600 sq_wqe = hinic_sq_get_wqe(txq->sq, wqe_size, &prod_idx); in hinic_xmit_frame() 623 hinic_sq_write_wqe(txq->sq, prod_idx, sq_wqe, skb, wqe_size); in hinic_xmit_frame() 628 hinic_sq_write_db(txq->sq, prod_idx, wqe_siz in hinic_xmit_frame() [all...] |
H A D | hinic_hw_wq.h | 45 atomic_t prod_idx; member 97 u16 *prod_idx);
|
H A D | hinic_rx.c | 201 u16 prod_idx; in rx_alloc_pkts() local 218 &prod_idx); in rx_alloc_pkts() 224 hinic_rq_prepare_wqe(rxq->rq, prod_idx, rq_wqe, &sge); in rx_alloc_pkts() 226 hinic_rq_write_wqe(rxq->rq, prod_idx, rq_wqe, skb); in rx_alloc_pkts() 233 hinic_rq_update(rxq->rq, prod_idx); in rx_alloc_pkts()
|
H A D | hinic_debugfs.c | 31 return atomic_read(&wq->prod_idx) & wq->mask; in hinic_dbg_get_sq_info() 65 return atomic_read(&wq->prod_idx) & wq->mask; in hinic_dbg_get_rq_info()
|
/kernel/linux/linux-5.10/drivers/scsi/qedi/ |
H A D | qedi_debugfs.c | 142 u16 prod_idx; in qedi_gbl_ctx_show() local 154 prod_idx = (sb->pi_array[QEDI_PROTO_CQ_PROD_IDX] & in qedi_gbl_ctx_show() 156 seq_printf(s, "SB PROD IDX: %d\n", prod_idx); in qedi_gbl_ctx_show()
|
H A D | qedi_main.c | 1268 u16 prod_idx; in qedi_process_completions() local 1275 prod_idx = sb->pi_array[QEDI_PROTO_CQ_PROD_IDX]; in qedi_process_completions() 1277 if (prod_idx >= QEDI_CQ_SIZE) in qedi_process_completions() 1278 prod_idx = prod_idx % QEDI_CQ_SIZE; in qedi_process_completions() 1282 "Before: global queue=%p prod_idx=%d cons_idx=%d, sb_id=%d\n", in qedi_process_completions() 1283 que, prod_idx, que->cq_cons_idx, fp->sb_id); in qedi_process_completions() 1293 while (que->cq_cons_idx != prod_idx) { in qedi_process_completions() 1297 "cqe=%p prod_idx=%d cons_idx=%d.\n", in qedi_process_completions() 1298 cqe, prod_idx, qu in qedi_process_completions() 1322 u16 prod_idx; qedi_fp_has_work() local [all...] |
/kernel/linux/linux-6.6/drivers/scsi/qedi/ |
H A D | qedi_debugfs.c | 142 u16 prod_idx; in qedi_gbl_ctx_show() local 154 prod_idx = (sb->pi_array[QEDI_PROTO_CQ_PROD_IDX] & in qedi_gbl_ctx_show() 156 seq_printf(s, "SB PROD IDX: %d\n", prod_idx); in qedi_gbl_ctx_show()
|
H A D | qedi_main.c | 1267 u16 prod_idx; in qedi_process_completions() local 1274 prod_idx = sb->pi_array[QEDI_PROTO_CQ_PROD_IDX]; in qedi_process_completions() 1276 if (prod_idx >= QEDI_CQ_SIZE) in qedi_process_completions() 1277 prod_idx = prod_idx % QEDI_CQ_SIZE; in qedi_process_completions() 1281 "Before: global queue=%p prod_idx=%d cons_idx=%d, sb_id=%d\n", in qedi_process_completions() 1282 que, prod_idx, que->cq_cons_idx, fp->sb_id); in qedi_process_completions() 1292 while (que->cq_cons_idx != prod_idx) { in qedi_process_completions() 1296 "cqe=%p prod_idx=%d cons_idx=%d.\n", in qedi_process_completions() 1297 cqe, prod_idx, qu in qedi_process_completions() 1321 u16 prod_idx; qedi_fp_has_work() local [all...] |