| /linux-6.15/drivers/pci/controller/ |
| H A D | pcie-iproc-msi.c | 333 msi = grp->msi; in iproc_msi_handler() 539 pcie->msi = msi; in iproc_msi_init() 559 if (msi->nr_irqs < msi->nr_cpus) { in iproc_msi_init() 566 msi->nr_irqs -= msi->nr_irqs % msi->nr_cpus; in iproc_msi_init() 580 msi->nr_eq_region = msi->nr_irqs; in iproc_msi_init() 581 msi->nr_msi_region = msi->nr_irqs; in iproc_msi_init() 596 msi->grps = devm_kcalloc(pcie->dev, msi->nr_irqs, sizeof(*msi->grps), in iproc_msi_init() 610 msi->grps[i].msi = msi; in iproc_msi_init() 646 msi->eq_cpu, msi->eq_dma); in iproc_msi_init() 660 struct iproc_msi *msi = pcie->msi; in iproc_msi_exit() local [all …]
|
| H A D | pcie-altera-msi.c | 55 struct altera_msi *msi; in altera_msi_isr() local 115 mutex_lock(&msi->lock); in altera_irq_domain_alloc() 117 bit = find_first_zero_bit(msi->used, msi->num_of_vectors); in altera_irq_domain_alloc() 145 mutex_lock(&msi->lock); in altera_irq_domain_free() 169 msi->inner_domain = irq_domain_add_linear(NULL, msi->num_of_vectors, in altera_allocate_domains() 178 if (!msi->msi_domain) { in altera_allocate_domains() 214 if (!msi) in altera_msi_probe() 218 msi->pdev = pdev; in altera_msi_probe() 244 if (msi->irq < 0) { in altera_msi_probe() 245 ret = msi->irq; in altera_msi_probe() [all …]
|
| H A D | pci-xgene-msi.c | 27 struct xgene_msi *msi; member 205 bitmap_set(msi->bitmap, msi_irq, msi->num_cpus); in xgene_irq_domain_alloc() 231 bitmap_clear(msi->bitmap, hwirq, msi->num_cpus); in xgene_irq_domain_free() 247 if (!msi->inner_domain) in xgene_allocate_domains() 250 msi->msi_domain = pci_msi_create_irq_domain(of_node_to_fwnode(msi->node), in xgene_allocate_domains() 254 if (!msi->msi_domain) { in xgene_allocate_domains() 264 if (msi->msi_domain) in xgene_free_domains() 266 if (msi->inner_domain) in xgene_free_domains() 359 kfree(msi->msi_groups); in xgene_msi_remove() 362 msi->bitmap = NULL; in xgene_msi_remove() [all …]
|
| H A D | pcie-xilinx-dma-pl.c | 127 struct xilinx_msi msi; member 277 msi = &port->msi; in xilinx_pl_dma_pcie_msi_handler_high() 299 msi = &port->msi; in xilinx_pl_dma_pcie_msi_handler_low() 409 struct xilinx_msi *msi = &pcie->msi; in xilinx_irq_domain_alloc() local 435 struct xilinx_msi *msi = &pcie->msi; in xilinx_irq_domain_free() local 450 struct xilinx_msi *msi = &port->msi; in xilinx_pl_dma_pcie_free_irq_domains() local 457 if (msi->dev_domain) { in xilinx_pl_dma_pcie_free_irq_domains() 471 struct xilinx_msi *msi = &port->msi; in xilinx_pl_dma_pcie_init_msi_irq_domain() local 477 if (!msi->dev_domain) in xilinx_pl_dma_pcie_init_msi_irq_domain() 483 if (!msi->msi_domain) in xilinx_pl_dma_pcie_init_msi_irq_domain() [all …]
|
| H A D | pcie-brcmstb.c | 491 dev = msi->dev; in brcm_pcie_msi_isr() 535 hwirq = bitmap_find_free_region(msi->used, msi->nr, in brcm_msi_alloc() 587 msi->inner_domain = irq_domain_add_linear(NULL, msi->nr, &msi_domain_ops, msi); in brcm_allocate_domains() 613 struct brcm_msi *msi = pcie->msi; in brcm_msi_remove() local 615 if (!msi) in brcm_msi_remove() 655 if (!msi) in brcm_pcie_enable_msi() 659 msi->dev = dev; in brcm_pcie_enable_msi() 663 msi->irq = irq; in brcm_pcie_enable_msi() 673 msi->intr_base = msi->base + INTR2_CPU_BASE(pcie); in brcm_pcie_enable_msi() 677 msi->intr_base = msi->base + PCIE_MSI_INTR2_BASE; in brcm_pcie_enable_msi() [all …]
|
| H A D | pcie-rcar-host.c | 50 struct rcar_msi msi; member 96 return container_of(msi, struct rcar_pcie_host, msi); in msi_to_host() 572 struct rcar_msi *msi = &host->msi; in rcar_pcie_msi_irq() local 686 mutex_lock(&msi->map_lock); in rcar_msi_domain_alloc() 709 mutex_lock(&msi->map_lock); in rcar_msi_domain_free() 742 if (!msi->domain) { in rcar_allocate_domains() 763 struct rcar_msi *msi = &host->msi; in rcar_pcie_enable_msi() local 767 mutex_init(&msi->map_lock); in rcar_pcie_enable_msi() 808 rcar_free_domains(msi); in rcar_pcie_enable_msi() 856 host->msi.irq1 = i; in rcar_pcie_get_resources() [all …]
|
| H A D | pcie-xilinx-nwl.c | 170 struct nwl_msi msi; member 337 struct nwl_msi *msi = &pcie->msi; in nwl_pcie_handle_msi_irq() local 455 struct nwl_msi *msi = &pcie->msi; in nwl_irq_domain_alloc() local 459 mutex_lock(&msi->lock); in nwl_irq_domain_alloc() 481 struct nwl_msi *msi = &pcie->msi; in nwl_irq_domain_free() local 483 mutex_lock(&msi->lock); in nwl_irq_domain_free() 499 struct nwl_msi *msi = &pcie->msi; in nwl_pcie_init_msi_irq_domain() local 503 if (!msi->dev_domain) { in nwl_pcie_init_msi_irq_domain() 604 struct nwl_msi *msi = &pcie->msi; in nwl_pcie_enable_msi() local 612 if (msi->irq_msi1 < 0) in nwl_pcie_enable_msi() [all …]
|
| /linux-6.15/Documentation/devicetree/bindings/pci/ |
| H A D | pci-msi.txt | 34 (rid-base,msi-controller,msi-base,length), where: 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). 50 to an msi-specifier per the msi-map property. 66 msi: msi-controller@a { 69 msi-controller; 94 msi: msi-controller@a { 123 msi: msi-controller@a { 140 msi-map = <0x0000 &msi 0x0000 0x8000>, 153 msi: msi-controller@a { [all …]
|
| H A D | altr,msi-controller.yaml | 5 $id: http://devicetree.org/schemas/altr,msi-controller.yaml# 16 - altr,msi-1.0 31 msi-controller: true 44 - msi-controller 48 - $ref: /schemas/interrupt-controller/msi-controller.yaml# 56 msi@ff200000 { 57 compatible = "altr,msi-1.0"; 63 msi-controller;
|
| /linux-6.15/arch/arm64/kvm/vgic/ |
| H A D | vgic-irqfd.c | 55 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() 59 e->msi.devid = ue->u.msi.devid; in kvm_set_routing_entry() 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() 76 msi->devid = e->msi.devid; in kvm_populate_msi() 90 struct kvm_msi msi; in kvm_set_msi() local [all …]
|
| /linux-6.15/Documentation/devicetree/bindings/interrupt-controller/ |
| H A D | sophgo,sg2042-msi.yaml | 21 const: sophgo,sg2042-msi 33 msi-controller: true 35 msi-ranges: 38 "#msi-cells": 45 - msi-controller 46 - msi-ranges 47 - "#msi-cells" 54 msi-controller@30000000 { 55 compatible = "sophgo,sg2042-msi"; 58 msi-controller; [all …]
|
| H A D | loongson,pch-msi.yaml | 19 const: loongson,pch-msi-1.0 24 loongson,msi-base-vec: 32 loongson,msi-num-vecs: 40 msi-controller: true 45 - msi-controller 46 - loongson,msi-base-vec 47 - loongson,msi-num-vecs 54 msi: msi-controller@2ff00000 { 57 msi-controller; 58 loongson,msi-base-vec = <64>; [all …]
|
| H A D | fsl,ls-msi.yaml | 24 - fsl,ls1012a-msi 25 - fsl,ls1021a-msi 26 - fsl,ls1043a-msi 27 - fsl,ls1043a-v1.1-msi 28 - fsl,ls1046a-msi 33 '#msi-cells': 47 - msi-controller 51 - $ref: msi-controller.yaml 57 - fsl,ls1046a-msi 76 msi-controller; [all …]
|
| H A D | fsl,mu-msi.yaml | 33 - fsl,imx6sx-mu-msi 34 - fsl,imx7ulp-mu-msi 35 - fsl,imx8ulp-mu-msi 36 - fsl,imx8ulp-mu-msi-s4 65 msi-controller: true 67 "#msi-cells": 74 - msi-controller 75 - "#msi-cells" 84 msi-controller@5d270000 { 86 msi-controller; [all …]
|
| H A D | msi.txt | 45 - #msi-cells: The number of cells in an msi-specifier, required if not zero. 64 - msi-parent: A list of phandle + msi-specifier pairs, one for each MSI 73 When #msi-cells is non-zero, busses with an msi-parent will require 85 msi_a: msi-controller@a { 88 msi-controller; 92 msi_b: msi-controller@b { 95 msi-controller; 97 #msi-cells = <1>; 103 msi-controller; 105 #msi-cells = <1>; [all …]
|
| H A D | brcm,bcm2712-msix.yaml | 18 - $ref: /schemas/interrupt-controller/msi-controller.yaml# 29 "#msi-cells": 32 brcm,msi-offset: 41 - msi-controller 42 - msi-ranges 52 msi-controller@1000130000 { 56 msi-controller; 57 #msi-cells = <0>; 58 msi-ranges = <&gicv2 GIC_SPI 128 IRQ_TYPE_EDGE_RISING 64>;
|
| /linux-6.15/arch/powerpc/sysdev/ |
| H A D | fsl_msi.c | 328 if (msi->list.prev != NULL) in fsl_of_msi_remove() 329 list_del(&msi->list); in fsl_of_msi_remove() 331 if (msi->cascade_array[i]) { in fsl_of_msi_remove() 341 if (msi->bitmap.bitmap) in fsl_of_msi_remove() 344 iounmap(msi->msi_regs); in fsl_of_msi_remove() 345 kfree(msi); in fsl_of_msi_remove() 395 struct fsl_msi *msi; in fsl_of_msi_probe() local 409 if (!msi) { in fsl_of_msi_probe() 418 if (msi->irqhost == NULL) { in fsl_of_msi_probe() 437 if (!msi->msi_regs) { in fsl_of_msi_probe() [all …]
|
| /linux-6.15/arch/riscv/kvm/ |
| H A D | vm.c | 71 struct kvm_msi msi; in kvm_set_msi() local 76 msi.address_lo = e->msi.address_lo; in kvm_set_msi() 77 msi.address_hi = e->msi.address_hi; in kvm_set_msi() 78 msi.data = e->msi.data; in kvm_set_msi() 79 msi.flags = e->msi.flags; in kvm_set_msi() 80 msi.devid = e->msi.devid; in kvm_set_msi() 135 e->msi.address_lo = ue->u.msi.address_lo; in kvm_set_routing_entry() 136 e->msi.address_hi = ue->u.msi.address_hi; in kvm_set_routing_entry() 137 e->msi.data = ue->u.msi.data; in kvm_set_routing_entry() 138 e->msi.flags = ue->flags; in kvm_set_routing_entry() [all …]
|
| /linux-6.15/drivers/ntb/ |
| H A D | msi.c | 45 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() 62 if (!ntb->msi->peer_mws[i]) { in ntb_msi_init() 72 if (ntb->msi->peer_mws[i]) in ntb_msi_init() 76 ntb->msi = NULL; in ntb_msi_init() 106 if (!ntb->msi) in ntb_msi_setup_mws() 150 ntb->msi->base_addr = addr; in ntb_msi_setup_mws() 203 if (addr < ntb->msi->base_addr || addr >= ntb->msi->end_addr) { in ntb_msi_set_desc() 207 ntb->msi->end_addr); in ntb_msi_set_desc() 289 if (!ntb->msi) in ntbm_msi_request_threaded_irq() [all …]
|
| /linux-6.15/drivers/pci/controller/mobiveil/ |
| H A D | pcie-mobiveil-host.c | 88 struct mobiveil_msi *msi = &rp->msi; in mobiveil_pcie_isr() local 202 struct mobiveil_msi *msi = &pcie->rp.msi; in mobiveil_pcie_enable_msi() local 391 struct mobiveil_msi *msi = &pcie->rp.msi; in mobiveil_irq_msi_domain_alloc() local 395 mutex_lock(&msi->lock); in mobiveil_irq_msi_domain_alloc() 397 bit = find_first_zero_bit(msi->msi_irq_in_use, msi->num_of_vectors); in mobiveil_irq_msi_domain_alloc() 418 struct mobiveil_msi *msi = &pcie->rp.msi; in mobiveil_irq_msi_domain_free() local 420 mutex_lock(&msi->lock); in mobiveil_irq_msi_domain_free() 439 struct mobiveil_msi *msi = &pcie->rp.msi; in mobiveil_allocate_msi_domains() local 441 mutex_init(&msi->lock); in mobiveil_allocate_msi_domains() 442 msi->dev_domain = irq_domain_add_linear(NULL, msi->num_of_vectors, in mobiveil_allocate_msi_domains() [all …]
|
| /linux-6.15/drivers/pci/controller/plda/ |
| H A D | pcie-plda-host.c | 36 struct plda_msi *msi = &port->msi; in plda_handle_msi() local 94 struct plda_msi *msi = &port->msi; in plda_irq_msi_domain_alloc() local 97 mutex_lock(&msi->lock); in plda_irq_msi_domain_alloc() 98 bit = find_first_zero_bit(msi->used, msi->num_vectors); in plda_irq_msi_domain_alloc() 104 set_bit(bit, msi->used); in plda_irq_msi_domain_alloc() 120 struct plda_msi *msi = &port->msi; in plda_irq_msi_domain_free() local 122 mutex_lock(&msi->lock); in plda_irq_msi_domain_free() 154 struct plda_msi *msi = &port->msi; in plda_allocate_msi_domains() local 158 msi->dev_domain = irq_domain_add_linear(NULL, msi->num_vectors, in plda_allocate_msi_domains() 160 if (!msi->dev_domain) { in plda_allocate_msi_domains() [all …]
|
| /linux-6.15/arch/loongarch/kvm/ |
| H A D | irqfd.c | 32 pch_msi_set_irq(kvm, e->msi.data, level); in kvm_set_msi() 62 e->msi.address_lo = ue->u.msi.address_lo; in kvm_set_routing_entry() 63 e->msi.address_hi = ue->u.msi.address_hi; in kvm_set_routing_entry() 64 e->msi.data = ue->u.msi.data; in kvm_set_routing_entry() 79 pch_msi_set_irq(kvm, e->msi.data, level); in kvm_arch_set_irq_inatomic()
|
| /linux-6.15/drivers/gpu/drm/nouveau/nvkm/subdev/pci/ |
| H A D | base.c | 35 if (pci && pci->msi) in nvkm_pci_msi_rearm() 131 if (pci->msi) in nvkm_pci_init() 144 if (pci->msi) in nvkm_pci_dtor() 187 pci->msi = true; in nvkm_pci_new_() 193 pci->msi = false; in nvkm_pci_new_() 196 pci->msi = nvkm_boolopt(device->cfgopt, "NvMSI", pci->msi); in nvkm_pci_new_() 197 if (pci->msi && func->msi_rearm) { in nvkm_pci_new_() 198 pci->msi = pci_enable_msi(pci->pdev) == 0; in nvkm_pci_new_() 199 if (pci->msi) in nvkm_pci_new_() 202 pci->msi = false; in nvkm_pci_new_()
|
| /linux-6.15/drivers/virt/acrn/ |
| H A D | vm.c | 106 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-6.15/arch/mips/boot/dts/loongson/ |
| H A D | loongson64c_4core_ls7a.dts | 28 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>;
|