Home
last modified time | relevance | path

Searched refs:msi (Results 1 – 25 of 296) sorted by relevance

12345678910>>...12

/Linux-v6.1/drivers/pci/controller/
Dpcie-iproc-msi.c62 struct iproc_msi *msi; member
128 static inline u32 iproc_msi_read_reg(struct iproc_msi *msi, in iproc_msi_read_reg() argument
132 struct iproc_pcie *pcie = msi->pcie; in iproc_msi_read_reg()
134 return readl_relaxed(pcie->base + msi->reg_offsets[eq][reg]); in iproc_msi_read_reg()
137 static inline void iproc_msi_write_reg(struct iproc_msi *msi, in iproc_msi_write_reg() argument
141 struct iproc_pcie *pcie = msi->pcie; in iproc_msi_write_reg()
143 writel_relaxed(val, pcie->base + msi->reg_offsets[eq][reg]); in iproc_msi_write_reg()
146 static inline u32 hwirq_to_group(struct iproc_msi *msi, unsigned long hwirq) in hwirq_to_group() argument
148 return (hwirq % msi->nr_irqs); in hwirq_to_group()
151 static inline unsigned int iproc_msi_addr_offset(struct iproc_msi *msi, in iproc_msi_addr_offset() argument
[all …]
Dpcie-altera-msi.c41 static inline void msi_writel(struct altera_msi *msi, const u32 value, in msi_writel() argument
44 writel_relaxed(value, msi->csr_base + reg); in msi_writel()
47 static inline u32 msi_readl(struct altera_msi *msi, const u32 reg) in msi_readl() argument
49 return readl_relaxed(msi->csr_base + reg); in msi_readl()
55 struct altera_msi *msi; in altera_msi_isr() local
61 msi = irq_desc_get_handler_data(desc); in altera_msi_isr()
63 while ((status = msi_readl(msi, MSI_STATUS)) != 0) { in altera_msi_isr()
64 for_each_set_bit(bit, &status, msi->num_of_vectors) { in altera_msi_isr()
66 readl_relaxed(msi->vector_base + (bit * sizeof(u32))); in altera_msi_isr()
68 ret = generic_handle_domain_irq(msi->inner_domain, bit); in altera_msi_isr()
[all …]
Dpci-xgene-msi.c27 struct xgene_msi *msi; member
94 static u32 xgene_msi_ir_read(struct xgene_msi *msi, in xgene_msi_ir_read() argument
97 return readl_relaxed(msi->msi_regs + MSI_IR0 + in xgene_msi_ir_read()
102 static u32 xgene_msi_int_read(struct xgene_msi *msi, u32 msi_grp) in xgene_msi_int_read() argument
104 return readl_relaxed(msi->msi_regs + MSI_INT0 + (msi_grp << 16)); in xgene_msi_int_read()
143 struct xgene_msi *msi = irq_data_get_irq_chip_data(data); in xgene_compose_msi_msg() local
146 u64 target_addr = msi->msi_addr + (((8 * group) + reg_set) << 16); in xgene_compose_msi_msg()
197 struct xgene_msi *msi = domain->host_data; in xgene_irq_domain_alloc() local
200 mutex_lock(&msi->bitmap_lock); in xgene_irq_domain_alloc()
202 msi_irq = bitmap_find_next_zero_area(msi->bitmap, NR_MSI_VEC, 0, in xgene_irq_domain_alloc()
[all …]
Dpcie-brcmstb.c254 struct brcm_msi *msi; member
456 struct brcm_msi *msi; in brcm_pcie_msi_isr() local
461 msi = irq_desc_get_handler_data(desc); in brcm_pcie_msi_isr()
462 dev = msi->dev; in brcm_pcie_msi_isr()
464 status = readl(msi->intr_base + MSI_INT_STATUS); in brcm_pcie_msi_isr()
465 status >>= msi->legacy_shift; in brcm_pcie_msi_isr()
467 for_each_set_bit(bit, &status, msi->nr) { in brcm_pcie_msi_isr()
469 ret = generic_handle_domain_irq(msi->inner_domain, bit); in brcm_pcie_msi_isr()
479 struct brcm_msi *msi = irq_data_get_irq_chip_data(data); in brcm_msi_compose_msi_msg() local
481 msg->address_lo = lower_32_bits(msi->target_addr); in brcm_msi_compose_msi_msg()
[all …]
Dpcie-rcar-host.c64 struct rcar_msi msi; member
104 static struct rcar_pcie_host *msi_to_host(struct rcar_msi *msi) in msi_to_host() argument
106 return container_of(msi, struct rcar_pcie_host, msi); in msi_to_host()
582 struct rcar_msi *msi = &host->msi; in rcar_pcie_msi_irq() local
596 ret = generic_handle_domain_irq(msi->domain->parent, index); in rcar_pcie_msi_irq()
636 struct rcar_msi *msi = irq_data_get_irq_chip_data(d); in rcar_msi_irq_ack() local
637 struct rcar_pcie *pcie = &msi_to_host(msi)->pcie; in rcar_msi_irq_ack()
645 struct rcar_msi *msi = irq_data_get_irq_chip_data(d); in rcar_msi_irq_mask() local
646 struct rcar_pcie *pcie = &msi_to_host(msi)->pcie; in rcar_msi_irq_mask()
650 spin_lock_irqsave(&msi->mask_lock, flags); in rcar_msi_irq_mask()
[all …]
Dpcie-xilinx-nwl.c171 struct nwl_msi msi; member
338 struct nwl_msi *msi = &pcie->msi; in nwl_pcie_handle_msi_irq() local
345 generic_handle_domain_irq(msi->dev_domain, bit); in nwl_pcie_handle_msi_irq()
463 struct nwl_msi *msi = &pcie->msi; in nwl_irq_domain_alloc() local
467 mutex_lock(&msi->lock); in nwl_irq_domain_alloc()
468 bit = bitmap_find_free_region(msi->bitmap, INT_PCI_MSI_NR, in nwl_irq_domain_alloc()
471 mutex_unlock(&msi->lock); in nwl_irq_domain_alloc()
480 mutex_unlock(&msi->lock); in nwl_irq_domain_alloc()
489 struct nwl_msi *msi = &pcie->msi; in nwl_irq_domain_free() local
491 mutex_lock(&msi->lock); in nwl_irq_domain_free()
[all …]
Dpcie-microchip-host.c271 struct mc_msi msi; member
387 struct mc_msi *msi = &port->msi; in mc_pcie_enable_msi() local
400 writel_relaxed(lower_32_bits(msi->vector_phy), in mc_pcie_enable_msi()
402 writel_relaxed(upper_32_bits(msi->vector_phy), in mc_pcie_enable_msi()
411 struct mc_msi *msi = &port->msi; in mc_handle_msi() local
424 for_each_set_bit(bit, &status, msi->num_vectors) { in mc_handle_msi()
425 ret = generic_handle_domain_irq(msi->dev_domain, bit); in mc_handle_msi()
448 phys_addr_t addr = port->msi.vector_phy; in mc_compose_msi_msg()
475 struct mc_msi *msi = &port->msi; in mc_irq_msi_domain_alloc() local
481 mutex_lock(&msi->lock); in mc_irq_msi_domain_alloc()
[all …]
/Linux-v6.1/Documentation/devicetree/bindings/pci/
Dpci-msi.txt23 Documentation/devicetree/bindings/interrupt-controller/msi.txt.
32 - msi-map: Maps a Requester ID to an MSI controller and associated
33 msi-specifier data. The property is an arbitrary number of tuples of
34 (rid-base,msi-controller,msi-base,length), where:
38 * msi-controller is a single phandle to an MSI controller
40 * msi-base is an msi-specifier describing the msi-specifier produced for the
47 the listed msi-controller, with the msi-specifier (r - rid-base + msi-base).
49 - msi-map-mask: A mask to be applied to each Requester ID prior to being mapped
50 to an msi-specifier per the msi-map property.
52 - msi-parent: Describes the MSI parent of the root complex itself. Where
[all …]
Dxgene-pci-msi.txt5 - compatible: should be "apm,xgene1-msi" to identify
7 - msi-controller: indicates that this is an X-Gene v1 PCIe MSI controller node
16 Each PCIe node needs to have property msi-parent that points to an MSI
24 msi@79000000 {
25 compatible = "apm,xgene1-msi";
26 msi-controller;
46 + PCIe controller node with msi-parent property pointing to MSI node:
67 msi-parent= <&msi>;
/Linux-v6.1/arch/arm64/kvm/vgic/
Dvgic-irqfd.c55 e->msi.address_lo = ue->u.msi.address_lo; in kvm_set_routing_entry()
56 e->msi.address_hi = ue->u.msi.address_hi; in kvm_set_routing_entry()
57 e->msi.data = ue->u.msi.data; in kvm_set_routing_entry()
58 e->msi.flags = ue->flags; in kvm_set_routing_entry()
59 e->msi.devid = ue->u.msi.devid; in kvm_set_routing_entry()
70 struct kvm_msi *msi) in kvm_populate_msi() argument
72 msi->address_lo = e->msi.address_lo; in kvm_populate_msi()
73 msi->address_hi = e->msi.address_hi; in kvm_populate_msi()
74 msi->data = e->msi.data; in kvm_populate_msi()
75 msi->flags = e->msi.flags; in kvm_populate_msi()
[all …]
/Linux-v6.1/arch/powerpc/sysdev/
Dfsl_msi.c37 #define msi_hwirq(msi, msir_index, intr_index) \ argument
38 ((msir_index) << (msi)->srs_shift | \
39 ((intr_index) << (msi)->ibs_shift))
322 struct fsl_msi *msi = platform_get_drvdata(ofdev); in fsl_of_msi_remove() local
325 if (msi->list.prev != NULL) in fsl_of_msi_remove()
326 list_del(&msi->list); in fsl_of_msi_remove()
328 if (msi->cascade_array[i]) { in fsl_of_msi_remove()
329 virq = msi->cascade_array[i]->virq; in fsl_of_msi_remove()
333 free_irq(virq, msi->cascade_array[i]); in fsl_of_msi_remove()
334 kfree(msi->cascade_array[i]); in fsl_of_msi_remove()
[all …]
/Linux-v6.1/drivers/ntb/
Dmsi.c45 ntb->msi = devm_kzalloc(&ntb->dev, struct_size(ntb->msi, peer_mws, peers), in ntb_msi_init()
47 if (!ntb->msi) in ntb_msi_init()
50 ntb->msi->desc_changed = desc_changed; in ntb_msi_init()
60 ntb->msi->peer_mws[i] = devm_ioremap(&ntb->dev, mw_phys_addr, in ntb_msi_init()
62 if (!ntb->msi->peer_mws[i]) { in ntb_msi_init()
72 if (ntb->msi->peer_mws[i]) in ntb_msi_init()
73 devm_iounmap(&ntb->dev, ntb->msi->peer_mws[i]); in ntb_msi_init()
75 devm_kfree(&ntb->dev, ntb->msi); in ntb_msi_init()
76 ntb->msi = NULL; in ntb_msi_init()
106 if (!ntb->msi) in ntb_msi_setup_mws()
[all …]
/Linux-v6.1/Documentation/devicetree/bindings/interrupt-controller/
Dfsl,ls-scfg-msi.txt5 - compatible: should be "fsl,<soc-name>-msi" to identify
7 "fsl,ls1021a-msi"
8 "fsl,ls1043a-msi"
9 "fsl,ls1046a-msi"
10 "fsl,ls1043a-v1.1-msi"
11 "fsl,ls1012a-msi"
12 - msi-controller: indicates that this is a PCIe MSI controller node
20 Each PCIe node needs to have property msi-parent that points to
25 msi1: msi-controller@1571000 {
26 compatible = "fsl,ls1043a-msi";
[all …]
Dmsi.txt40 - msi-controller: Identifies the node as an MSI controller.
45 - #msi-cells: The number of cells in an msi-specifier, required if not zero.
50 The meaning of the msi-specifier is defined by the device tree binding of
64 - msi-parent: A list of phandle + msi-specifier pairs, one for each MSI
68 MSI controllers listed in the msi-parent property.
73 When #msi-cells is non-zero, busses with an msi-parent will require
85 msi_a: msi-controller@a {
88 msi-controller;
89 /* No sideband data, so #msi-cells omitted */
92 msi_b: msi-controller@b {
[all …]
Dal,alpine-msix.txt10 - msi-controller: identifies the node as an PCI Message Signaled Interrupt
12 - al,msi-base-spi: SPI base of the MSI frame
13 - al,msi-num-spis: number of SPIs assigned to the MSI frame, relative to SPI0
22 msi-controller;
23 al,msi-base-spi = <160>;
24 al,msi-num-spis = <160>;
/Linux-v6.1/drivers/pci/controller/mobiveil/
Dpcie-mobiveil-host.c91 struct mobiveil_msi *msi = &rp->msi; in mobiveil_pcie_isr() local
157 generic_handle_domain_irq(msi->dev_domain, msi_data); in mobiveil_pcie_isr()
205 struct mobiveil_msi *msi = &pcie->rp.msi; in mobiveil_pcie_enable_msi() local
207 msi->num_of_vectors = PCI_NUM_MSI; in mobiveil_pcie_enable_msi()
208 msi->msi_pages_phys = (phys_addr_t)msg_addr; in mobiveil_pcie_enable_msi()
401 struct mobiveil_msi *msi = &pcie->rp.msi; in mobiveil_irq_msi_domain_alloc() local
405 mutex_lock(&msi->lock); in mobiveil_irq_msi_domain_alloc()
407 bit = find_first_zero_bit(msi->msi_irq_in_use, msi->num_of_vectors); in mobiveil_irq_msi_domain_alloc()
408 if (bit >= msi->num_of_vectors) { in mobiveil_irq_msi_domain_alloc()
409 mutex_unlock(&msi->lock); in mobiveil_irq_msi_domain_alloc()
[all …]
/Linux-v6.1/drivers/virt/acrn/
Dvm.c106 struct acrn_msi_entry *msi; in acrn_msi_inject() local
110 msi = kzalloc(sizeof(*msi), GFP_ATOMIC); in acrn_msi_inject()
111 if (!msi) in acrn_msi_inject()
118 msi->msi_addr = msi_addr; in acrn_msi_inject()
119 msi->msi_data = msi_data; in acrn_msi_inject()
120 ret = hcall_inject_msi(vm->vmid, virt_to_phys(msi)); in acrn_msi_inject()
124 kfree(msi); in acrn_msi_inject()
/Linux-v6.1/drivers/gpu/drm/nouveau/nvkm/subdev/pci/
Dbase.c79 if (pci->msi) in nvkm_pci_intr()
147 if (pci->msi) in nvkm_pci_init()
169 if (pci->msi) in nvkm_pci_dtor()
213 pci->msi = true; in nvkm_pci_new_()
219 pci->msi = false; in nvkm_pci_new_()
222 pci->msi = nvkm_boolopt(device->cfgopt, "NvMSI", pci->msi); in nvkm_pci_new_()
223 if (pci->msi && func->msi_rearm) { in nvkm_pci_new_()
224 pci->msi = pci_enable_msi(pci->pdev) == 0; in nvkm_pci_new_()
225 if (pci->msi) in nvkm_pci_new_()
228 pci->msi = false; in nvkm_pci_new_()
/Linux-v6.1/arch/mips/boot/dts/loongson/
Dloongson64c_4core_ls7a.dts28 msi: msi-controller@2ff00000 { label
29 compatible = "loongson,pch-msi-1.0";
32 msi-controller;
33 loongson,msi-base-vec = <64>;
34 loongson,msi-num-vecs = <64>;
Dloongson64g_4core_ls7a.dts32 msi: msi-controller@2ff00000 { label
33 compatible = "loongson,pch-msi-1.0";
36 msi-controller;
37 loongson,msi-base-vec = <64>;
38 loongson,msi-num-vecs = <192>;
/Linux-v6.1/Documentation/devicetree/bindings/powerpc/fsl/
Dmsi-pic.txt5 The first is "fsl,CHIP-msi", where CHIP is the processor(mpc8610, mpc8572,
6 etc.) and the second is "fsl,mpic-msi" or "fsl,ipic-msi" or
7 "fsl,mpic-msi-v4.3" depending on the parent type and version. If mpic
9 provided to access these 16 registers, and compatible "fsl,mpic-msi-v4.3"
21 be set as edge sensitive. If msi-available-ranges is present, only
25 - msi-available-ranges: use <start count> style section to define which
26 msi interrupt can be used in the 256 msi interrupts. This property is
33 - msi-address-64: 64-bit PCI address of the MSIIR register. The MSIIR register
43 msi@41600 {
44 compatible = "fsl,mpc8610-msi", "fsl,mpic-msi";
[all …]
/Linux-v6.1/virt/kvm/
Dirqchip.c49 int kvm_send_userspace_msi(struct kvm *kvm, struct kvm_msi *msi) in kvm_send_userspace_msi() argument
53 if (!irqchip_in_kernel(kvm) || (msi->flags & ~KVM_MSI_VALID_DEVID)) in kvm_send_userspace_msi()
56 route.msi.address_lo = msi->address_lo; in kvm_send_userspace_msi()
57 route.msi.address_hi = msi->address_hi; in kvm_send_userspace_msi()
58 route.msi.data = msi->data; in kvm_send_userspace_msi()
59 route.msi.flags = msi->flags; in kvm_send_userspace_msi()
60 route.msi.devid = msi->devid; in kvm_send_userspace_msi()
/Linux-v6.1/drivers/base/
Dplatform-msi.c41 u32 devid = desc->dev->msi.data->platform_data->devid; in platform_msi_calc_hwirq()
87 desc->dev->msi.data->platform_data->write_msg(desc, msg); in platform_msi_write_msg()
155 if (!dev->msi.domain || !write_msi_msg || !nvec || nvec > MAX_DEV_MSIS) in platform_msi_alloc_priv_data()
158 if (dev->msi.domain->bus_token != DOMAIN_BUS_PLATFORM_MSI) { in platform_msi_alloc_priv_data()
168 if (dev->msi.data->platform_data) in platform_msi_alloc_priv_data()
185 dev->msi.data->platform_data = datap; in platform_msi_alloc_priv_data()
191 struct platform_msi_priv_data *data = dev->msi.data->platform_data; in platform_msi_free_priv_data()
193 dev->msi.data->platform_data = NULL; in platform_msi_free_priv_data()
216 err = msi_domain_alloc_irqs(dev->msi.domain, dev, nvec); in platform_msi_domain_alloc_irqs()
230 msi_domain_free_irqs(dev->msi.domain, dev); in platform_msi_domain_free_irqs()
[all …]
/Linux-v6.1/drivers/media/pci/ddbridge/
Dddbridge-main.c37 static int msi = 1; variable
39 static int msi; variable
41 module_param(msi, int, 0444);
43 MODULE_PARM_DESC(msi, "Control MSI interrupts: 0-disable, 1-enable (default)");
45 MODULE_PARM_DESC(msi, "Control MSI interrupts: 0-disable (default), 1-enable");
62 if (dev->msi) in ddb_msi_exit()
70 if (dev->msi == 2) in ddb_irq_exit()
98 if (msi && pci_msi_enabled()) { in ddb_irq_msi()
102 dev->msi = stat; in ddb_irq_msi()
104 dev->msi); in ddb_irq_msi()
[all …]
/Linux-v6.1/tools/pci/
Dpcitest.sh23 msi=1
25 while [ $msi -lt 33 ]
27 pcitest -m $msi
28 msi=`expr $msi + 1`

12345678910>>...12