| /kernel/linux/linux-6.6/drivers/net/ethernet/marvell/octeon_ep/ |
| D | octep_tx.c | 16 static void octep_iq_reset_indices(struct octep_iq *iq) in octep_iq_reset_indices() argument 18 iq->fill_cnt = 0; in octep_iq_reset_indices() 19 iq->host_write_index = 0; in octep_iq_reset_indices() 20 iq->octep_read_index = 0; in octep_iq_reset_indices() 21 iq->flush_index = 0; in octep_iq_reset_indices() 22 iq->pkts_processed = 0; in octep_iq_reset_indices() 23 iq->pkt_in_done = 0; in octep_iq_reset_indices() 24 atomic_set(&iq->instr_pending, 0); in octep_iq_reset_indices() 30 * @iq: Octeon Tx queue data structure. 33 int octep_iq_process_completions(struct octep_iq *iq, u16 budget) in octep_iq_process_completions() argument [all …]
|
| D | octep_main.c | 59 ioq_vector->iq = oct->iq[i]; in octep_alloc_ioq_vectors() 352 * @iq: Octeon Tx queue data structure. 355 static void octep_enable_ioq_irq(struct octep_iq *iq, struct octep_oq *oq) in octep_enable_ioq_irq() argument 359 netdev_dbg(iq->netdev, "enabling intr for Q-%u\n", iq->q_no); in octep_enable_ioq_irq() 360 if (iq->pkts_processed) { in octep_enable_ioq_irq() 361 writel(iq->pkts_processed, iq->inst_cnt_reg); in octep_enable_ioq_irq() 362 iq->pkt_in_done -= iq->pkts_processed; in octep_enable_ioq_irq() 363 iq->pkts_processed = 0; in octep_enable_ioq_irq() 373 writeq(1UL << OCTEP_IQ_INTR_RESEND_BIT, iq->inst_cnt_reg); in octep_enable_ioq_irq() 388 tx_pending = octep_iq_process_completions(ioq_vector->iq, budget); in octep_napi_poll() [all …]
|
| D | octep_cn9k_pf.c | 47 dev_info(dev, "IQ-%d register dump\n", qno); in cn93_dump_regs() 115 dev_dbg(&oct->pdev->dev, "Reset PF IQ-%d\n", q_no); in cn93_reset_iq() 229 conf->iq.num_descs = OCTEP_IQ_MAX_DESCRIPTORS; in octep_init_config_cn93_pf() 230 conf->iq.instr_type = OCTEP_64BYTE_INSTR; in octep_init_config_cn93_pf() 231 conf->iq.pkind = 0; in octep_init_config_cn93_pf() 232 conf->iq.db_min = OCTEP_DB_MIN; in octep_init_config_cn93_pf() 233 conf->iq.intr_threshold = OCTEP_IQ_INTR_THRESHOLD; in octep_init_config_cn93_pf() 264 struct octep_iq *iq = oct->iq[iq_no]; in octep_setup_iq_regs_cn93_pf() local 285 iq->desc_ring_dma); in octep_setup_iq_regs_cn93_pf() 287 iq->max_count); in octep_setup_iq_regs_cn93_pf() [all …]
|
| D | octep_config.h | 53 #define CFG_GET_IQ_CFG(cfg) ((cfg)->iq) 54 #define CFG_GET_IQ_NUM_DESC(cfg) ((cfg)->iq.num_descs) 55 #define CFG_GET_IQ_INSTR_TYPE(cfg) ((cfg)->iq.instr_type) 56 #define CFG_GET_IQ_PKIND(cfg) ((cfg)->iq.pkind) 58 #define CFG_GET_IQ_DB_MIN(cfg) ((cfg)->iq.db_min) 59 #define CFG_GET_IQ_INTR_THRESHOLD(cfg) ((cfg)->iq.intr_threshold) 103 /* Trigger the IQ interrupt when processed cmd count reaches 187 struct octep_iq_config iq; member
|
| D | octep_ethtool.c | 161 struct octep_iq *iq = oct->iq[q]; in octep_get_ethtool_stats() local 164 tx_packets += iq->stats.instr_completed; in octep_get_ethtool_stats() 165 tx_bytes += iq->stats.bytes_sent; in octep_get_ethtool_stats() 166 tx_busy_errors += iq->stats.tx_busy; in octep_get_ethtool_stats() 209 struct octep_iq *iq = oct->iq[q]; in octep_get_ethtool_stats() local 211 data[i++] = iq->stats.instr_posted; in octep_get_ethtool_stats() 212 data[i++] = iq->stats.instr_completed; in octep_get_ethtool_stats() 213 data[i++] = iq->stats.bytes_sent; in octep_get_ethtool_stats() 214 data[i++] = iq->stats.tx_busy; in octep_get_ethtool_stats()
|
| /kernel/linux/linux-5.10/drivers/net/ethernet/cavium/liquidio/ |
| D | request_manager.c | 45 struct octeon_instr_queue *iq = in IQ_INSTR_MODE_64B() local 47 return iq->iqcmd_64B; in IQ_INSTR_MODE_64B() 60 struct octeon_instr_queue *iq; in octeon_init_instr_queue() local 82 iq = oct->instr_queue[iq_no]; in octeon_init_instr_queue() 84 iq->oct_dev = oct; in octeon_init_instr_queue() 86 iq->base_addr = lio_dma_alloc(oct, q_size, &iq->base_addr_dma); in octeon_init_instr_queue() 87 if (!iq->base_addr) { in octeon_init_instr_queue() 93 iq->max_count = num_descs; in octeon_init_instr_queue() 98 iq->request_list = vzalloc_node(array_size(num_descs, sizeof(*iq->request_list)), in octeon_init_instr_queue() 100 if (!iq->request_list) in octeon_init_instr_queue() [all …]
|
| D | cn23xx_vf_device.c | 58 /* set RST bit to 1. This bit applies to both IQ and OQ */ in cn23xx_vf_reset_io_queues() 104 struct octeon_instr_queue *iq; in cn23xx_vf_setup_global_input_regs() local 116 iq = oct->instr_queue[q_no]; in cn23xx_vf_setup_global_input_regs() 118 if (iq) in cn23xx_vf_setup_global_input_regs() 119 inst_cnt_reg = iq->inst_cnt_reg; in cn23xx_vf_setup_global_input_regs() 214 struct octeon_instr_queue *iq = oct->instr_queue[iq_no]; in cn23xx_setup_vf_iq_regs() local 219 iq->base_addr_dma); in cn23xx_setup_vf_iq_regs() 220 octeon_write_csr(oct, CN23XX_VF_SLI_IQ_SIZE(iq_no), iq->max_count); in cn23xx_setup_vf_iq_regs() 225 iq->doorbell_reg = in cn23xx_setup_vf_iq_regs() 227 iq->inst_cnt_reg = in cn23xx_setup_vf_iq_regs() [all …]
|
| D | cn66xx_device.c | 266 struct octeon_instr_queue *iq = oct->instr_queue[iq_no]; in lio_cn6xxx_setup_iq_regs() local 272 iq->base_addr_dma); in lio_cn6xxx_setup_iq_regs() 273 octeon_write_csr(oct, CN6XXX_SLI_IQ_SIZE(iq_no), iq->max_count); in lio_cn6xxx_setup_iq_regs() 278 iq->doorbell_reg = oct->mmio[0].hw_addr + CN6XXX_SLI_IQ_DOORBELL(iq_no); in lio_cn6xxx_setup_iq_regs() 279 iq->inst_cnt_reg = oct->mmio[0].hw_addr in lio_cn6xxx_setup_iq_regs() 282 iq_no, iq->doorbell_reg, iq->inst_cnt_reg); in lio_cn6xxx_setup_iq_regs() 287 iq->reset_instr_cnt = readl(iq->inst_cnt_reg); in lio_cn6xxx_setup_iq_regs() 339 mask |= oct->io_qmask.iq; in lio_cn6xxx_enable_io_queues() 357 mask ^= oct->io_qmask.iq; in lio_cn6xxx_disable_io_queues() 361 mask = (u32)oct->io_qmask.iq; in lio_cn6xxx_disable_io_queues() [all …]
|
| D | octeon_config.h | 42 /* CN6xxx IQ configuration macros */ 64 /* CN23xx IQ configuration macros */ 121 #define CFG_GET_IQ_CFG(cfg) ((cfg)->iq) 122 #define CFG_GET_IQ_MAX_Q(cfg) ((cfg)->iq.max_iqs) 123 #define CFG_GET_IQ_PENDING_LIST_SIZE(cfg) ((cfg)->iq.pending_list_size) 124 #define CFG_GET_IQ_INSTR_TYPE(cfg) ((cfg)->iq.instr_type) 125 #define CFG_GET_IQ_DB_MIN(cfg) ((cfg)->iq.db_min) 126 #define CFG_GET_IQ_DB_TIMEOUT(cfg) ((cfg)->iq.db_timeout) 128 #define CFG_GET_IQ_INTR_PKT(cfg) ((cfg)->iq.iq_intr_pkt) 129 #define CFG_SET_IQ_INTR_PKT(cfg, val) (cfg)->iq.iq_intr_pkt = val [all …]
|
| D | cn23xx_vf_regs.h | 70 #define CN23XX_VF_SLI_IQ_PKT_CONTROL64(iq) \ argument 71 (CN23XX_VF_SLI_IQ_PKT_CONTROL_START64 + ((iq) * CN23XX_VF_IQ_OFFSET)) 73 #define CN23XX_VF_SLI_IQ_BASE_ADDR64(iq) \ argument 74 (CN23XX_VF_SLI_IQ_BASE_ADDR_START64 + ((iq) * CN23XX_VF_IQ_OFFSET)) 76 #define CN23XX_VF_SLI_IQ_SIZE(iq) \ argument 77 (CN23XX_VF_SLI_IQ_SIZE_START + ((iq) * CN23XX_VF_IQ_OFFSET)) 79 #define CN23XX_VF_SLI_IQ_DOORBELL(iq) \ argument 80 (CN23XX_VF_SLI_IQ_DOORBELL_START + ((iq) * CN23XX_VF_IQ_OFFSET)) 82 #define CN23XX_VF_SLI_IQ_INSTR_COUNT64(iq) \ argument 83 (CN23XX_VF_SLI_IQ_INSTR_COUNT_START64 + ((iq) * CN23XX_VF_IQ_OFFSET))
|
| /kernel/linux/linux-6.6/drivers/net/ethernet/cavium/liquidio/ |
| D | request_manager.c | 51 struct octeon_instr_queue *iq; in octeon_init_instr_queue() local 73 iq = oct->instr_queue[iq_no]; in octeon_init_instr_queue() 75 iq->oct_dev = oct; in octeon_init_instr_queue() 77 iq->base_addr = lio_dma_alloc(oct, q_size, &iq->base_addr_dma); in octeon_init_instr_queue() 78 if (!iq->base_addr) { in octeon_init_instr_queue() 84 iq->max_count = num_descs; in octeon_init_instr_queue() 89 iq->request_list = vzalloc_node(array_size(num_descs, sizeof(*iq->request_list)), in octeon_init_instr_queue() 91 if (!iq->request_list) in octeon_init_instr_queue() 92 iq->request_list = vzalloc(array_size(num_descs, sizeof(*iq->request_list))); in octeon_init_instr_queue() 93 if (!iq->request_list) { in octeon_init_instr_queue() [all …]
|
| D | cn23xx_vf_device.c | 58 /* set RST bit to 1. This bit applies to both IQ and OQ */ in cn23xx_vf_reset_io_queues() 104 struct octeon_instr_queue *iq; in cn23xx_vf_setup_global_input_regs() local 116 iq = oct->instr_queue[q_no]; in cn23xx_vf_setup_global_input_regs() 118 if (iq) in cn23xx_vf_setup_global_input_regs() 119 inst_cnt_reg = iq->inst_cnt_reg; in cn23xx_vf_setup_global_input_regs() 214 struct octeon_instr_queue *iq = oct->instr_queue[iq_no]; in cn23xx_setup_vf_iq_regs() local 219 iq->base_addr_dma); in cn23xx_setup_vf_iq_regs() 220 octeon_write_csr(oct, CN23XX_VF_SLI_IQ_SIZE(iq_no), iq->max_count); in cn23xx_setup_vf_iq_regs() 225 iq->doorbell_reg = in cn23xx_setup_vf_iq_regs() 227 iq->inst_cnt_reg = in cn23xx_setup_vf_iq_regs() [all …]
|
| D | cn66xx_device.c | 266 struct octeon_instr_queue *iq = oct->instr_queue[iq_no]; in lio_cn6xxx_setup_iq_regs() local 272 iq->base_addr_dma); in lio_cn6xxx_setup_iq_regs() 273 octeon_write_csr(oct, CN6XXX_SLI_IQ_SIZE(iq_no), iq->max_count); in lio_cn6xxx_setup_iq_regs() 278 iq->doorbell_reg = oct->mmio[0].hw_addr + CN6XXX_SLI_IQ_DOORBELL(iq_no); in lio_cn6xxx_setup_iq_regs() 279 iq->inst_cnt_reg = oct->mmio[0].hw_addr in lio_cn6xxx_setup_iq_regs() 282 iq_no, iq->doorbell_reg, iq->inst_cnt_reg); in lio_cn6xxx_setup_iq_regs() 287 iq->reset_instr_cnt = readl(iq->inst_cnt_reg); in lio_cn6xxx_setup_iq_regs() 339 mask |= oct->io_qmask.iq; in lio_cn6xxx_enable_io_queues() 357 mask ^= oct->io_qmask.iq; in lio_cn6xxx_disable_io_queues() 361 mask = (u32)oct->io_qmask.iq; in lio_cn6xxx_disable_io_queues() [all …]
|
| D | octeon_config.h | 42 /* CN6xxx IQ configuration macros */ 64 /* CN23xx IQ configuration macros */ 121 #define CFG_GET_IQ_CFG(cfg) ((cfg)->iq) 122 #define CFG_GET_IQ_MAX_Q(cfg) ((cfg)->iq.max_iqs) 123 #define CFG_GET_IQ_PENDING_LIST_SIZE(cfg) ((cfg)->iq.pending_list_size) 124 #define CFG_GET_IQ_INSTR_TYPE(cfg) ((cfg)->iq.instr_type) 125 #define CFG_GET_IQ_DB_MIN(cfg) ((cfg)->iq.db_min) 126 #define CFG_GET_IQ_DB_TIMEOUT(cfg) ((cfg)->iq.db_timeout) 128 #define CFG_GET_IQ_INTR_PKT(cfg) ((cfg)->iq.iq_intr_pkt) 129 #define CFG_SET_IQ_INTR_PKT(cfg, val) (cfg)->iq.iq_intr_pkt = val [all …]
|
| D | cn23xx_vf_regs.h | 70 #define CN23XX_VF_SLI_IQ_PKT_CONTROL64(iq) \ argument 71 (CN23XX_VF_SLI_IQ_PKT_CONTROL_START64 + ((iq) * CN23XX_VF_IQ_OFFSET)) 73 #define CN23XX_VF_SLI_IQ_BASE_ADDR64(iq) \ argument 74 (CN23XX_VF_SLI_IQ_BASE_ADDR_START64 + ((iq) * CN23XX_VF_IQ_OFFSET)) 76 #define CN23XX_VF_SLI_IQ_SIZE(iq) \ argument 77 (CN23XX_VF_SLI_IQ_SIZE_START + ((iq) * CN23XX_VF_IQ_OFFSET)) 79 #define CN23XX_VF_SLI_IQ_DOORBELL(iq) \ argument 80 (CN23XX_VF_SLI_IQ_DOORBELL_START + ((iq) * CN23XX_VF_IQ_OFFSET)) 82 #define CN23XX_VF_SLI_IQ_INSTR_COUNT64(iq) \ argument 83 (CN23XX_VF_SLI_IQ_INSTR_COUNT_START64 + ((iq) * CN23XX_VF_IQ_OFFSET))
|
| /kernel/linux/linux-6.6/drivers/crypto/cavium/zip/ |
| D | zip_device.c | 59 return ((zip_dev->iq[queue].sw_head - zip_dev->iq[queue].sw_tail) * in zip_cmd_queue_consumed() 98 spin_lock(&zip_dev->iq[queue].lock); in zip_load_instr() 109 zip_dbg("sw_head : %lx", zip_dev->iq[queue].sw_head); in zip_load_instr() 110 zip_dbg("sw_tail : %lx", zip_dev->iq[queue].sw_tail); in zip_load_instr() 117 memcpy((u8 *)zip_dev->iq[queue].sw_head, (u8 *)instr, in zip_load_instr() 119 zip_dev->iq[queue].sw_head += 16; /* 16 64_bit words = 128B */ in zip_load_instr() 122 ncb_ptr = zip_dev->iq[queue].sw_head; in zip_load_instr() 125 ncb_ptr, zip_dev->iq[queue].sw_head - 16); in zip_load_instr() 128 zip_dev->iq[queue].sw_head = zip_dev->iq[queue].sw_tail; in zip_load_instr() 130 zip_dev->iq[queue].free_flag = 1; in zip_load_instr() [all …]
|
| D | zip_mem.c | 59 zip->iq[q].sw_head = (u64 *)__get_free_pages((GFP_KERNEL | GFP_DMA), in zip_cmd_qbuf_alloc() 62 if (!zip->iq[q].sw_head) in zip_cmd_qbuf_alloc() 65 memset(zip->iq[q].sw_head, 0, ZIP_CMD_QBUF_SIZE); in zip_cmd_qbuf_alloc() 67 zip_dbg("cmd_qbuf_alloc[%d] Success : %p\n", q, zip->iq[q].sw_head); in zip_cmd_qbuf_alloc() 78 zip_dbg("Freeing cmd_qbuf 0x%lx\n", zip->iq[q].sw_tail); in zip_cmd_qbuf_free() 80 free_pages((u64)zip->iq[q].sw_tail, get_order(ZIP_CMD_QBUF_SIZE)); in zip_cmd_qbuf_free()
|
| /kernel/linux/linux-5.10/drivers/crypto/cavium/zip/ |
| D | zip_device.c | 59 return ((zip_dev->iq[queue].sw_head - zip_dev->iq[queue].sw_tail) * in zip_cmd_queue_consumed() 98 spin_lock(&zip_dev->iq[queue].lock); in zip_load_instr() 109 zip_dbg("sw_head : %lx", zip_dev->iq[queue].sw_head); in zip_load_instr() 110 zip_dbg("sw_tail : %lx", zip_dev->iq[queue].sw_tail); in zip_load_instr() 117 memcpy((u8 *)zip_dev->iq[queue].sw_head, (u8 *)instr, in zip_load_instr() 119 zip_dev->iq[queue].sw_head += 16; /* 16 64_bit words = 128B */ in zip_load_instr() 122 ncb_ptr = zip_dev->iq[queue].sw_head; in zip_load_instr() 125 ncb_ptr, zip_dev->iq[queue].sw_head - 16); in zip_load_instr() 128 zip_dev->iq[queue].sw_head = zip_dev->iq[queue].sw_tail; in zip_load_instr() 130 zip_dev->iq[queue].free_flag = 1; in zip_load_instr() [all …]
|
| D | zip_mem.c | 59 zip->iq[q].sw_head = (u64 *)__get_free_pages((GFP_KERNEL | GFP_DMA), in zip_cmd_qbuf_alloc() 62 if (!zip->iq[q].sw_head) in zip_cmd_qbuf_alloc() 65 memset(zip->iq[q].sw_head, 0, ZIP_CMD_QBUF_SIZE); in zip_cmd_qbuf_alloc() 67 zip_dbg("cmd_qbuf_alloc[%d] Success : %p\n", q, zip->iq[q].sw_head); in zip_cmd_qbuf_alloc() 78 zip_dbg("Freeing cmd_qbuf 0x%lx\n", zip->iq[q].sw_tail); in zip_cmd_qbuf_free() 80 free_pages((u64)zip->iq[q].sw_tail, get_order(ZIP_CMD_QBUF_SIZE)); in zip_cmd_qbuf_free()
|
| /kernel/linux/linux-6.6/drivers/crypto/marvell/octeontx2/ |
| D | otx2_cptlf.h | 124 struct otx2_cpt_inst_queue *iq; in otx2_cpt_free_instruction_queues() local 128 iq = &lfs->lf[i].iqueue; in otx2_cpt_free_instruction_queues() 129 if (iq->real_vaddr) in otx2_cpt_free_instruction_queues() 131 iq->size, in otx2_cpt_free_instruction_queues() 132 iq->real_vaddr, in otx2_cpt_free_instruction_queues() 133 iq->real_dma_addr); in otx2_cpt_free_instruction_queues() 134 iq->real_vaddr = NULL; in otx2_cpt_free_instruction_queues() 135 iq->vaddr = NULL; in otx2_cpt_free_instruction_queues() 142 struct otx2_cpt_inst_queue *iq; in otx2_cpt_alloc_instruction_queues() local 149 iq = &lfs->lf[i].iqueue; in otx2_cpt_alloc_instruction_queues() [all …]
|
| /kernel/linux/linux-6.6/tools/perf/pmu-events/arch/arm64/arm/cortex-a53/ |
| D | pipeline.json | 10 …"BriefDescription": "Cycles that the DPU IQ is empty and that is not because of a recent micro-TLB… 15 …"BriefDescription": "Cycles the DPU IQ is empty and there is an instruction cache miss being proce… 20 …"BriefDescription": "Cycles the DPU IQ is empty and there is an instruction micro-TLB miss being p… 25 "BriefDescription": "Cycles the DPU IQ is empty and there is a pre-decode error being processed"
|
| /kernel/linux/linux-5.10/tools/perf/pmu-events/arch/arm64/arm/cortex-a53/ |
| D | pipeline.json | 10 …"BriefDescription": "Cycles that the DPU IQ is empty and that is not because of a recent micro-TLB… 15 …"BriefDescription": "Cycles the DPU IQ is empty and there is an instruction cache miss being proce… 20 …"BriefDescription": "Cycles the DPU IQ is empty and there is an instruction micro-TLB miss being p… 25 "BriefDescription": "Cycles the DPU IQ is empty and there is a pre-decode error being processed"
|
| /kernel/linux/linux-6.6/tools/perf/pmu-events/arch/arm64/arm/cortex-a55/ |
| D | pipeline.json | 9 …sued due to the frontend, cache miss.This event counts every cycle the DPU IQ is empty and there i… 12 …sued due to the frontend, cache miss.This event counts every cycle the DPU IQ is empty and there i… 15 …issued due to the frontend, TLB miss.This event counts every cycle the DPU IQ is empty and there i… 18 …issued due to the frontend, TLB miss.This event counts every cycle the DPU IQ is empty and there i… 21 …ue to the frontend, pre-decode error.This event counts every cycle the DPU IQ is empty and there i… 24 …ue to the frontend, pre-decode error.This event counts every cycle the DPU IQ is empty and there i…
|
| /kernel/linux/linux-6.6/drivers/scsi/csiostor/ |
| D | csio_isr.c | 203 * @iq: Ingress queue pointer. 205 * Processes SCSI completions on the SCSI IQ indicated by scm->iq_idx 212 csio_scsi_isr_handler(struct csio_q *iq) in csio_scsi_isr_handler() argument 214 struct csio_hw *hw = (struct csio_hw *)iq->owner; in csio_scsi_isr_handler() 223 if (unlikely(csio_wr_process_iq(hw, iq, csio_process_scsi_cmpl, in csio_scsi_isr_handler() 258 struct csio_q *iq = (struct csio_q *) dev_id; in csio_scsi_isr() local 261 if (unlikely(!iq)) in csio_scsi_isr() 264 hw = (struct csio_hw *)iq->owner; in csio_scsi_isr() 271 csio_scsi_isr_handler(iq); in csio_scsi_isr() 288 struct csio_q *iq = priv; in csio_scsi_intx_handler() local [all …]
|
| /kernel/linux/linux-5.10/drivers/scsi/csiostor/ |
| D | csio_isr.c | 203 * @iq: Ingress queue pointer. 205 * Processes SCSI completions on the SCSI IQ indicated by scm->iq_idx 212 csio_scsi_isr_handler(struct csio_q *iq) in csio_scsi_isr_handler() argument 214 struct csio_hw *hw = (struct csio_hw *)iq->owner; in csio_scsi_isr_handler() 223 if (unlikely(csio_wr_process_iq(hw, iq, csio_process_scsi_cmpl, in csio_scsi_isr_handler() 258 struct csio_q *iq = (struct csio_q *) dev_id; in csio_scsi_isr() local 261 if (unlikely(!iq)) in csio_scsi_isr() 264 hw = (struct csio_hw *)iq->owner; in csio_scsi_isr() 271 csio_scsi_isr_handler(iq); in csio_scsi_isr() 288 struct csio_q *iq = priv; in csio_scsi_intx_handler() local [all …]
|