Home
last modified time | relevance | path

Searched full:msix (Results 1 – 25 of 219) sorted by relevance

123456789

/linux/drivers/scsi/snic/
H A Dsnic_isr.c17 * snic_isr_msix_wq : MSIx ISR for work queue.
79 /* ONLY interrupt mode MSIX is supported */ in snic_free_intr()
80 for (i = 0; i < ARRAY_SIZE(snic->msix); i++) { in snic_free_intr()
81 if (snic->msix[i].requested) { in snic_free_intr()
83 snic->msix[i].devid); in snic_free_intr()
104 sprintf(snic->msix[SNIC_MSIX_WQ].devname, in snic_request_intr()
107 snic->msix[SNIC_MSIX_WQ].isr = snic_isr_msix_wq; in snic_request_intr()
108 snic->msix[SNIC_MSIX_WQ].devid = snic; in snic_request_intr()
110 sprintf(snic->msix[SNIC_MSIX_IO_CMPL].devname, in snic_request_intr()
113 snic->msix[SNIC_MSIX_IO_CMPL].isr = snic_isr_msix_io_cmpl; in snic_request_intr()
[all …]
/linux/drivers/scsi/bfa/
H A Dbfa_hw_cb.c42 * MSIX - done in bfa_hwcb_rspq_ack_msix()
110 bfa->msix.nvecs = nvecs; in bfa_hwcb_msix_init()
119 if (bfa->msix.nvecs == 0) in bfa_hwcb_msix_ctrl_install()
122 if (bfa->msix.nvecs == 1) { in bfa_hwcb_msix_ctrl_install()
124 bfa->msix.handler[i] = bfa_msix_all; in bfa_hwcb_msix_ctrl_install()
129 bfa->msix.handler[i] = bfa_msix_lpu_err; in bfa_hwcb_msix_ctrl_install()
137 if (bfa->msix.nvecs == 0) in bfa_hwcb_msix_queue_install()
140 if (bfa->msix.nvecs == 1) { in bfa_hwcb_msix_queue_install()
142 bfa->msix.handler[i] = bfa_msix_all; in bfa_hwcb_msix_queue_install()
147 bfa->msix.handler[i] = bfa_msix_reqq; in bfa_hwcb_msix_queue_install()
[all …]
H A Dbfa_hw_ct.c108 bfa->msix.nvecs = nvecs; in bfa_hwct_msix_init()
115 if (bfa->msix.nvecs == 0) in bfa_hwct_msix_ctrl_install()
118 if (bfa->msix.nvecs == 1) in bfa_hwct_msix_ctrl_install()
119 bfa->msix.handler[BFI_MSIX_LPU_ERR_CT] = bfa_msix_all; in bfa_hwct_msix_ctrl_install()
121 bfa->msix.handler[BFI_MSIX_LPU_ERR_CT] = bfa_msix_lpu_err; in bfa_hwct_msix_ctrl_install()
129 if (bfa->msix.nvecs == 0) in bfa_hwct_msix_queue_install()
132 if (bfa->msix.nvecs == 1) { in bfa_hwct_msix_queue_install()
134 bfa->msix.handler[i] = bfa_msix_all; in bfa_hwct_msix_queue_install()
139 bfa->msix.handler[i] = bfa_msix_reqq; in bfa_hwct_msix_queue_install()
142 bfa->msix.handler[i] = bfa_msix_rspq; in bfa_hwct_msix_queue_install()
[all …]
/linux/drivers/scsi/fnic/
H A Dfnic_isr.c122 i = irq - fnic->msix[0].irq_num; in fnic_isr_msix_wq_copy()
124 i < 0 || fnic->msix[i].irq_num != irq) { in fnic_isr_msix_wq_copy()
126 if (fnic->msix[i].irq_num == irq) in fnic_isr_msix_wq_copy()
164 for (i = 0; i < ARRAY_SIZE(fnic->msix); i++) in fnic_free_intr()
165 if (fnic->msix[i].requested) in fnic_free_intr()
167 fnic->msix[i].devid); in fnic_free_intr()
194 sprintf(fnic->msix[FNIC_MSIX_RQ].devname, in fnic_request_intr()
196 fnic->msix[FNIC_MSIX_RQ].isr = fnic_isr_msix_rq; in fnic_request_intr()
197 fnic->msix[FNIC_MSIX_RQ].devid = fnic; in fnic_request_intr()
199 sprintf(fnic->msix[FNIC_MSIX_WQ].devname, in fnic_request_intr()
[all …]
/linux/drivers/net/ethernet/intel/ice/
H A Dice_irq.c136 if (!pf->msix.min) in ice_init_interrupt_scheme()
137 pf->msix.min = ICE_MIN_MSIX; in ice_init_interrupt_scheme()
139 if (!pf->msix.max) in ice_init_interrupt_scheme()
140 pf->msix.max = min(total_vectors, in ice_init_interrupt_scheme()
143 pf->msix.total = total_vectors; in ice_init_interrupt_scheme()
144 pf->msix.rest = total_vectors - pf->msix.max; in ice_init_interrupt_scheme()
147 vectors = pf->msix.min; in ice_init_interrupt_scheme()
149 vectors = pf->msix.max; in ice_init_interrupt_scheme()
151 vectors = pci_alloc_irq_vectors(pf->pdev, pf->msix.min, vectors, in ice_init_interrupt_scheme()
156 ice_init_irq_tracker(pf, pf->msix.max, vectors); in ice_init_interrupt_scheme()
[all …]
H A Dice_irq.h21 /* First MSIX vector used by SR-IOV VFs. Calculated by subtracting the
22 * number of MSIX vectors needed for all SR-IOV VFs from the number of
23 * MSIX vectors allowed on this PF.
/linux/drivers/infiniband/hw/hfi1/
H A Daffinity.c726 * Function updates the irq affinity hint for msix after it has been changed
730 static void hfi1_update_sdma_affinity(struct hfi1_msix_entry *msix, int cpu) in hfi1_update_sdma_affinity() argument
732 struct sdma_engine *sde = msix->arg; in hfi1_update_sdma_affinity()
748 cpumask_clear(&msix->mask); in hfi1_update_sdma_affinity()
749 cpumask_set_cpu(cpu, &msix->mask); in hfi1_update_sdma_affinity()
751 msix->irq, irq_type_names[msix->type], in hfi1_update_sdma_affinity()
753 irq_set_affinity_hint(msix->irq, &msix->mask); in hfi1_update_sdma_affinity()
766 if (other_msix->type != IRQ_SDMA || other_msix == msix) in hfi1_update_sdma_affinity()
782 struct hfi1_msix_entry *msix = container_of(notify, in hfi1_irq_notifier_notify() local
787 hfi1_update_sdma_affinity(msix, cpu); in hfi1_irq_notifier_notify()
[all …]
H A Daffinity.h44 struct hfi1_msix_entry *msix);
50 struct hfi1_msix_entry *msix);
/linux/drivers/net/ethernet/chelsio/cxgb4/
H A Dcxgb4_tc_mqprio.c154 int ret, msix = 0; in cxgb4_mqprio_alloc_hw_resources() local
177 msix = -((int)adap->sge.intrq.abs_id + 1); in cxgb4_mqprio_alloc_hw_resources()
184 if (msix >= 0) { in cxgb4_mqprio_alloc_hw_resources()
185 msix = cxgb4_get_msix_idx_from_bmap(adap); in cxgb4_mqprio_alloc_hw_resources()
186 if (msix < 0) { in cxgb4_mqprio_alloc_hw_resources()
187 ret = msix; in cxgb4_mqprio_alloc_hw_resources()
191 eorxq->msix = &adap->msix_info[msix]; in cxgb4_mqprio_alloc_hw_resources()
192 snprintf(eorxq->msix->desc, in cxgb4_mqprio_alloc_hw_resources()
193 sizeof(eorxq->msix->desc), in cxgb4_mqprio_alloc_hw_resources()
206 dev, msix, &eorxq->fl, in cxgb4_mqprio_alloc_hw_resources()
[all …]
/linux/drivers/vfio/pci/
H A Dvfio_pci_intrs.c381 static int vfio_msi_enable(struct vfio_pci_core_device *vdev, int nvec, bool msix) in vfio_msi_enable() argument
384 unsigned int flag = msix ? PCI_IRQ_MSIX : PCI_IRQ_MSI; in vfio_msi_enable()
402 vdev->irq_type = msix ? VFIO_PCI_MSIX_IRQ_INDEX : in vfio_msi_enable()
405 if (!msix) { in vfio_msi_enable()
427 unsigned int vector, bool msix) in vfio_msi_alloc_irq() argument
437 if (irq > 0 || !msix || !vdev->has_dyn_msix) in vfio_msi_alloc_irq()
448 unsigned int vector, int fd, bool msix) in vfio_msi_set_vector_signal() argument
475 irq = vfio_msi_alloc_irq(vdev, vector, msix); in vfio_msi_set_vector_signal()
485 msix ? "x" : "", vector, pci_name(pdev)); in vfio_msi_set_vector_signal()
503 if (msix) { in vfio_msi_set_vector_signal()
[all …]
/linux/drivers/net/ethernet/emulex/benet/
H A Dbe_roce.c41 /* only msix is supported on these devices */ in _be_roce_dev_add()
65 dev_info.msix.num_vectors = min(num_vec, MAX_MSIX_VECTORS); in _be_roce_dev_add()
70 dev_info.msix.start_vector = adapter->num_evt_qs; in _be_roce_dev_add()
71 for (i = 0; i < dev_info.msix.num_vectors; i++) { in _be_roce_dev_add()
72 dev_info.msix.vector_list[i] = in _be_roce_dev_add()
76 dev_info.msix.num_vectors = 0; in _be_roce_dev_add()
/linux/Documentation/devicetree/bindings/interrupt-controller/
H A Dal,alpine-msix.yaml4 $id: http://devicetree.org/schemas/interrupt-controller/al,alpine-msix.yaml#
7 title: Alpine MSIX controller
14 const: al,alpine-msix
43 compatible = "al,alpine-msix";
/linux/tools/testing/selftests/vfio/
H A Dvfio_pci_device_test.c117 FIXTURE_VARIANT_ADD(vfio_pci_irq_test, msix) { in FIXTURE_VARIANT_ADD() argument
135 bool msix = variant->irq_index == VFIO_PCI_MSIX_IRQ_INDEX; in TEST_F() local
141 if (msix) in TEST_F()
149 SKIP(return, "MSI%s: not supported\n", msix ? "-x" : ""); in TEST_F()
152 printf("MSI%s: enabled %d interrupts\n", msix ? "-x" : "", count); in TEST_F()
/linux/drivers/rapidio/devices/
H A Dtsi721.c630 mbox = (irq - priv->msix[TSI721_VECT_OMB0_DONE].vector) % RIO_MAX_MBOX; in tsi721_omsg_msix()
649 mbox = (irq - priv->msix[TSI721_VECT_IMB0_RCV].vector) % RIO_MAX_MBOX; in tsi721_imsg_msix()
719 err = request_irq(priv->msix[TSI721_VECT_IDB].vector, in tsi721_request_msix()
721 priv->msix[TSI721_VECT_IDB].irq_name, (void *)priv); in tsi721_request_msix()
725 err = request_irq(priv->msix[TSI721_VECT_PWRX].vector, in tsi721_request_msix()
727 priv->msix[TSI721_VECT_PWRX].irq_name, (void *)priv); in tsi721_request_msix()
729 free_irq(priv->msix[TSI721_VECT_IDB].vector, (void *)priv); in tsi721_request_msix()
795 priv->msix[TSI721_VECT_IDB].vector = entries[TSI721_VECT_IDB].vector; in tsi721_enable_msix()
796 snprintf(priv->msix[TSI721_VECT_IDB].irq_name, IRQ_DEVICE_NAME_MAX, in tsi721_enable_msix()
798 priv->msix[TSI721_VECT_PWRX].vector = entries[TSI721_VECT_PWRX].vector; in tsi721_enable_msix()
[all …]
/linux/drivers/ntb/hw/amd/
H A Dntb_hw_amd.c730 /* Try to set up msix irq */ in ndev_init_isr()
736 ndev->msix = kcalloc_node(msix_max, sizeof(*ndev->msix), in ndev_init_isr()
738 if (!ndev->msix) in ndev_init_isr()
742 ndev->msix[i].entry = i; in ndev_init_isr()
744 msix_count = pci_enable_msix_range(pdev, ndev->msix, in ndev_init_isr()
749 /* NOTE: Disable MSIX if msix count is less than 16 because of in ndev_init_isr()
760 rc = request_irq(ndev->msix[i].vector, ndev_vec_isr, 0, in ndev_init_isr()
766 dev_dbg(&pdev->dev, "Using msix interrupts\n"); in ndev_init_isr()
773 free_irq(ndev->msix[i].vector, &ndev->vec[i]); in ndev_init_isr()
776 kfree(ndev->msix); in ndev_init_isr()
[all …]
/linux/drivers/scsi/csiostor/
H A Dcsio_isr.c77 * This is the ISR for FW events. It is shared b/w MSIX
100 * csio_fwevt_isr() - FW events MSIX ISR
209 * This routine is shared b/w MSIX and INTx.
248 * csio_scsi_isr() - SCSI MSIX handler
252 * This is the top level SCSI MSIX handler. Calls csio_scsi_isr_handler()
400 /* Add the MSIX vector descriptions */ in csio_request_irqs()
518 csio_dbg(hw, "FW supp #niq:%d, trying %d msix's\n", hw->cfg_niq, cnt); in csio_enable_msix()
556 /* Try MSIX, then MSI or fall back to INTx */ in csio_intr_enable()
579 (hw->intr_mode == CSIO_IM_MSIX) ? "MSIX" : in csio_intr_enable()
/linux/arch/arm/boot/dts/amazon/
H A Dalpine.dtsi164 msi-parent = <&msix>;
167 msix: msix@fbe00000 { label
168 compatible = "al,alpine-msix";
/linux/drivers/net/ethernet/marvell/octeontx2/af/
H A Drvu.c569 /* Set start MSIX vector for this LF within this PF/VF */ in rvu_scan_block()
583 "PF%d:VF%d is configured with zero msix vectors, %d\n", in rvu_check_min_msix_vec()
620 /* Get num of MSIX vectors attached to this PF */ in rvu_setup_msix_resources()
622 pfvf->msix.max = ((cfg >> 32) & 0xFFF) + 1; in rvu_setup_msix_resources()
623 rvu_check_min_msix_vec(rvu, pfvf->msix.max, pf, 0); in rvu_setup_msix_resources()
625 /* Alloc msix bitmap for this PF */ in rvu_setup_msix_resources()
626 err = rvu_alloc_bitmap(&pfvf->msix); in rvu_setup_msix_resources()
630 /* Allocate memory for MSIX vector to RVU block LF mapping */ in rvu_setup_msix_resources()
631 pfvf->msix_lfmap = devm_kcalloc(rvu->dev, pfvf->msix.max, in rvu_setup_msix_resources()
636 /* For PF0 (AF) firmware will set msix vector offsets for in rvu_setup_msix_resources()
[all …]
/linux/drivers/edac/
H A Dthunderx_edac.c1071 struct msix_entry *msix = irq_id; in thunderx_ocx_com_isr() local
1072 struct thunderx_ocx *ocx = container_of(msix, struct thunderx_ocx, in thunderx_ocx_com_isr()
1073 msix_ent[msix->entry]); in thunderx_ocx_com_isr()
1100 struct msix_entry *msix = irq_id; in thunderx_ocx_com_threaded_isr() local
1101 struct thunderx_ocx *ocx = container_of(msix, struct thunderx_ocx, in thunderx_ocx_com_threaded_isr()
1102 msix_ent[msix->entry]); in thunderx_ocx_com_threaded_isr()
1164 struct msix_entry *msix = irq_id; in thunderx_ocx_lnk_isr() local
1165 struct thunderx_ocx *ocx = container_of(msix, struct thunderx_ocx, in thunderx_ocx_lnk_isr()
1166 msix_ent[msix->entry]); in thunderx_ocx_lnk_isr()
1171 ctx->link = msix->entry; in thunderx_ocx_lnk_isr()
[all …]
/linux/drivers/gpu/drm/xe/
H A Dxe_irq.h23 const char *name, bool dynamic_msix, u16 *msix);
24 void xe_irq_msix_free_irq(struct xe_device *xe, u16 msix);
/linux/drivers/crypto/cavium/nitrox/
H A Dnitrox_isr.c318 dev_err(DEV(ndev), "msix vectors %d alloc failed\n", nr_vecs); in nitrox_register_interrupts()
395 vec = ndev->iov.msix.vector; in nitrox_sriov_unregister_interrupts()
419 ndev->iov.msix.entry = NON_RING_MSIX_BASE; in nitrox_sriov_register_interupts()
420 ret = pci_enable_msix_exact(pdev, &ndev->iov.msix, NR_NON_RING_VECTORS); in nitrox_sriov_register_interupts()
439 vec = ndev->iov.msix.vector; in nitrox_sriov_register_interupts()
/linux/rust/kernel/pci/
H A Dirq.rs30 MsiX, enumerator
39 IrqType::MsiX => bindings::PCI_IRQ_MSIX, in as_raw()
62 /// .with(IrqType::MsiX);
239 /// .with(pci::IrqType::MsiX);
/linux/drivers/net/ethernet/huawei/hinic/
H A Dhinic_hw_dev.c149 * init_msix - enable the msix and save the entries
178 dev_err(&pdev->dev, "Failed to enable pci msix\n"); in init_msix()
186 * disable_msix - disable the msix
935 dev_err(&pdev->dev, "Failed to init msix\n"); in hinic_init_hwdev()
1088 * hinic_hwdev_msix_cnt_set - clear message attribute counters for msix entry
1100 * hinic_hwdev_msix_set - set message attribute for msix entry
1106 * @lli_credit_limit: maximum credits for low latency msix messages (unit 8)
1107 * @resend_timer: maximum wait for resending msix (unit coalesc period)
1161 * hinic_hwdev_set_msix_state- set msix state
1164 * @flag: msix state
H A Dhinic_hw_if.c27 * hinic_msix_attr_set - set message attribute for msix entry
33 * @lli_credit_limit: maximum credits for low latency msix messages (unit 8)
34 * @resend_timer: maximum wait for resending msix (unit coalesc period)
61 * hinic_msix_attr_cnt_clear - clear message attribute counters for msix entry
/linux/drivers/dma/ioat/
H A Dinit.c133 static char ioat_interrupt_style[32] = "msix";
137 "set ioat interrupt style: msix (default), msi, intx");
408 struct msix_entry *msix; in ioat_dma_setup_interrupts() local
413 if (!strcmp(ioat_interrupt_style, "msix")) in ioat_dma_setup_interrupts()
414 goto msix; in ioat_dma_setup_interrupts()
422 msix: in ioat_dma_setup_interrupts()
433 msix = &ioat_dma->msix_entries[i]; in ioat_dma_setup_interrupts()
435 err = devm_request_irq(dev, msix->vector, in ioat_dma_setup_interrupts()
437 "ioat-msix", ioat_chan); in ioat_dma_setup_interrupts()
440 msix = &ioat_dma->msix_entries[j]; in ioat_dma_setup_interrupts()
[all …]

123456789