| /linux/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() [all …]
|
| /linux/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) argument 57 #define SQ_DB_PI_LOW(prod_idx) ((prod_idx) & SQ_DB_PI_LOW_MASK) argument 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() 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() 635 void hinic_sq_write_db(struct hinic_sq *sq, u16 prod_idx, unsigned int wqe_size, in hinic_sq_write_db() argument 641 prod_idx += ALIGN(wqe_size, wq->wqebb_size) / wq->wqebb_size; in hinic_sq_write_db() 642 prod_idx = SQ_MASKED_IDX(sq, prod_idx); in hinic_sq_write_db() 646 writel(sq_prepare_db(sq, prod_idx, cos), SQ_DB_ADDR(sq, prod_idx)); in hinic_sq_write_db() [all …]
|
| 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() 153 if (chain->cons_idx == MASKED_IDX(chain, prod_idx + 1)) { in chain_busy() 156 chain->prod_idx); in chain_busy() 231 cell_ctxt = &chain->cell_ctxt[chain->prod_idx]; in prepare_api_cmd() [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_cmdq.c | 179 enum hinic_mod_type mod, u8 cmd, u16 prod_idx, in cmdq_prepare_wqe_ctrl() argument 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() argument 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() argument 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() argument 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() argument 325 cmdq_fill_db(&db_info, cmdq_type, prod_idx); in cmdq_set_db() [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() 741 u16 *prod_idx) in hinic_get_wqe() argument 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() 777 wq->shadow_idx[curr_pg] = *prod_idx; in hinic_get_wqe() 781 return WQ_PAGE_ADDR(wq, *prod_idx) + WQE_PAGE_OFF(wq, *prod_idx); in hinic_get_wqe() [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_size, 0); in hinic_xmit_frame()
|
| 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()
|
| H A D | hinic_hw_api_cmd.h | 180 u32 prod_idx; member
|
| /linux/drivers/infiniband/hw/mana/ |
| H A D | shadow_queue.h | 28 u64 prod_idx; member 60 return (queue->prod_idx - queue->cons_idx) >= queue->length; in shadow_queue_full() 65 return queue->prod_idx == queue->cons_idx; in shadow_queue_empty() 79 return shadow_queue_get_element(queue, queue->prod_idx); in shadow_queue_producer_entry() 94 if (queue->next_to_complete_idx == queue->prod_idx) in shadow_queue_get_next_to_complete() 102 queue->prod_idx++; in shadow_queue_advance_producer()
|
| /linux/drivers/net/ethernet/huawei/hinic3/ |
| H A D | hinic3_wq.h | 29 u16 prod_idx; member 49 return READ_ONCE(wq->prod_idx) - READ_ONCE(wq->cons_idx); in hinic3_wq_get_used() 60 *pi = wq->prod_idx & wq->idx_mask; in hinic3_wq_get_one_wqebb() 61 wq->prod_idx++; in hinic3_wq_get_one_wqebb() 81 u16 num_wqebbs, u16 *prod_idx,
|
| H A D | hinic3_wq.c | 107 wq->prod_idx = 0; in hinic3_wq_reset() 114 u16 num_wqebbs, u16 *prod_idx, in hinic3_wq_get_multi_wqebbs() argument 121 idx = wq->prod_idx & wq->idx_mask; in hinic3_wq_get_multi_wqebbs() 122 wq->prod_idx += num_wqebbs; in hinic3_wq_get_multi_wqebbs() 123 *prod_idx = idx; in hinic3_wq_get_multi_wqebbs()
|
| H A D | hinic3_cmdq.c | 192 static void cmdq_update_cmd_status(struct hinic3_cmdq *cmdq, u16 prod_idx, in cmdq_update_cmd_status() argument 200 cmd_info = &cmdq->cmd_infos[prod_idx]; in cmdq_update_cmd_status() 326 enum hinic3_cmdq_type cmdq_type, u16 prod_idx) in cmdq_set_db() argument 329 u16 db_ofs = (prod_idx & 0xFF) << 3; in cmdq_set_db() 332 db.db_info = cpu_to_le32(CMDQ_DB_INFO_SET(prod_idx >> 8, HI_PROD_IDX)); in cmdq_set_db() 353 u8 mod, u8 cmd, u16 prod_idx, in cmdq_prepare_wqe_ctrl() argument 377 cpu_to_le32(CMDQ_CTRL_SET(prod_idx, PI) | in cmdq_prepare_wqe_ctrl() 395 u8 wrapped, u8 mod, u8 cmd, u16 prod_idx) in cmdq_set_lcmd_wqe() argument 412 cmdq_prepare_wqe_ctrl(wqe, wrapped, mod, cmd, prod_idx, complete_format, in cmdq_set_lcmd_wqe()
|
| H A D | hinic3_mbox.c | 218 mq->prod_idx = 0; in init_mbox_dma_queue() 486 return MBOX_MQ_ID_MASK(mq, (mq)->prod_idx + 1) == in is_msg_queue_full() 500 mq->prod_idx, MBOX_MQ_ID_MASK(mq, mq->cons_idx)); in mbox_prepare_dma_entry() 505 offset = mq->prod_idx * MBOX_MAX_BUF_SZ; in mbox_prepare_dma_entry() 515 mq->prod_idx++; in mbox_prepare_dma_entry() 516 mq->prod_idx = MBOX_MQ_ID_MASK(mq, mq->prod_idx); in mbox_prepare_dma_entry()
|
| H A D | hinic3_mbox.h | 109 u16 prod_idx; member
|
| H A D | hinic3_nic_io.h | 47 return wq->prod_idx & wq->idx_mask; in hinic3_get_sq_local_pi()
|
| H A D | hinic3_tx.c | 573 saved_wq_prod_idx = txq->sq->wq.prod_idx; in hinic3_send_one_skb() 587 txq->sq->wq.prod_idx = saved_wq_prod_idx; in hinic3_send_one_skb()
|
| H A D | hinic3_nic_io.c | 605 pi_start = (rq->wq.prod_idx & rq->wq.idx_mask) << HINIC3_NORMAL_RQ_WQE; in hinic3_rq_prepare_ctxt()
|
| /linux/drivers/scsi/qedi/ |
| H A D | qedi_debugfs.c | 138 u16 prod_idx; in qedi_gbl_ctx_show() local 150 prod_idx = (sb->pi_array[QEDI_PROTO_CQ_PROD_IDX] & in qedi_gbl_ctx_show() 152 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() 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() 1297 cqe, prod_idx, que->cq_cons_idx); in qedi_process_completions() 1321 u16 prod_idx; in qedi_fp_has_work() local 1326 prod_idx = sb->pi_array[QEDI_PROTO_CQ_PROD_IDX]; in qedi_fp_has_work() 1332 if (prod_idx >= QEDI_CQ_SIZE) in qedi_fp_has_work() [all …]
|
| /linux/drivers/net/ethernet/qualcomm/emac/ |
| H A D | emac-mac.c | 907 u32 prod_idx = (rx_q->rfd.produce_idx << rx_q->produce_shift) & in emac_mac_rx_descs_refill() local 910 rx_q->produce_mask, prod_idx); in emac_mac_rx_descs_refill() 1442 u32 prod_idx; in emac_mac_tx_buf_send() local 1477 prod_idx = (tx_q->tpd.produce_idx << tx_q->produce_shift) & in emac_mac_tx_buf_send() 1480 tx_q->produce_mask, prod_idx); in emac_mac_tx_buf_send()
|
| /linux/drivers/scsi/qedf/ |
| H A D | qedf_main.c | 2209 u16 prod_idx; in qedf_fp_has_work() local 2218 prod_idx = sb->pi_array[QEDF_FCOE_PARAMS_GL_RQ_PI]; in qedf_fp_has_work() 2220 return (que->cq_prod_idx != prod_idx); in qedf_fp_has_work() 2237 u16 prod_idx; in qedf_process_completions() local 2247 prod_idx = sb->pi_array[QEDF_FCOE_PARAMS_GL_RQ_PI]; in qedf_process_completions() 2253 new_cqes = (prod_idx >= que->cq_prod_idx) ? in qedf_process_completions() 2254 (prod_idx - que->cq_prod_idx) : in qedf_process_completions() 2255 0x10000 - que->cq_prod_idx + prod_idx; in qedf_process_completions() 2258 que->cq_prod_idx = prod_idx; in qedf_process_completions()
|
| /linux/drivers/scsi/bnx2i/ |
| H A D | bnx2i.h | 548 u16 prod_idx; member
|