| /linux/drivers/pci/controller/ |
| H A D | pcie-iproc-msi.c | 63 struct iproc_msi *msi; member 127 static inline u32 iproc_msi_read_reg(struct iproc_msi *msi, in iproc_msi_read_reg() argument 131 struct iproc_pcie *pcie = msi->pcie; in iproc_msi_read_reg() 133 return readl_relaxed(pcie->base + msi->reg_offsets[eq][reg]); in iproc_msi_read_reg() 136 static inline void iproc_msi_write_reg(struct iproc_msi *msi, in iproc_msi_write_reg() argument 140 struct iproc_pcie *pcie = msi->pcie; in iproc_msi_write_reg() 142 writel_relaxed(val, pcie->base + msi->reg_offsets[eq][reg]); in iproc_msi_write_reg() 145 static inline u32 hwirq_to_group(struct iproc_msi *msi, unsigned long hwirq) in hwirq_to_group() argument 147 return (hwirq % msi->nr_irqs); in hwirq_to_group() 150 static inline unsigned int iproc_msi_addr_offset(struct iproc_msi *msi, in iproc_msi_addr_offset() argument [all …]
|
| H A D | pcie-altera-msi.c | 41 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 …]
|
| H A D | pcie-xilinx-dma-pl.c | 127 struct xilinx_msi msi; member 272 struct xilinx_msi *msi; in xilinx_pl_dma_pcie_msi_handler_high() local 277 msi = &port->msi; in xilinx_pl_dma_pcie_msi_handler_high() 283 virq = irq_find_mapping(msi->dev_domain, bit); in xilinx_pl_dma_pcie_msi_handler_high() 295 struct xilinx_msi *msi; in xilinx_pl_dma_pcie_msi_handler_low() local 299 msi = &port->msi; in xilinx_pl_dma_pcie_msi_handler_low() 304 virq = irq_find_mapping(msi->dev_domain, bit); in xilinx_pl_dma_pcie_msi_handler_low() 409 struct xilinx_msi *msi = &pcie->msi; in xilinx_irq_domain_alloc() local 412 mutex_lock(&msi->lock); in xilinx_irq_domain_alloc() 413 bit = bitmap_find_free_region(msi->bitmap, XILINX_NUM_MSI_IRQS, in xilinx_irq_domain_alloc() [all …]
|
| H A D | pcie-rcar-host.c | 52 struct rcar_msi msi; member 87 static struct rcar_pcie_host *msi_to_host(struct rcar_msi *msi) in msi_to_host() argument 89 return container_of(msi, struct rcar_pcie_host, msi); in msi_to_host() 564 struct rcar_msi *msi = &host->msi; in rcar_pcie_msi_irq() local 578 ret = generic_handle_domain_irq(msi->domain, index); in rcar_pcie_msi_irq() 594 struct rcar_msi *msi = irq_data_get_irq_chip_data(d); in rcar_msi_irq_ack() local 595 struct rcar_pcie *pcie = &msi_to_host(msi)->pcie; in rcar_msi_irq_ack() 603 struct rcar_msi *msi = irq_data_get_irq_chip_data(d); in rcar_msi_irq_mask() local 604 struct rcar_pcie *pcie = &msi_to_host(msi)->pcie; in rcar_msi_irq_mask() 607 scoped_guard(raw_spinlock_irqsave, &msi->mask_lock) { in rcar_msi_irq_mask() [all …]
|
| H A D | pci-xgene-msi.c | 92 static u32 xgene_msi_ir_read(struct xgene_msi *msi, u32 msi_grp, u32 msir_idx) in xgene_msi_ir_read() argument 94 return readl_relaxed(msi->msi_regs + MSI_IR0 + in xgene_msi_ir_read() 100 static u32 xgene_msi_int_read(struct xgene_msi *msi, u32 msi_grp) in xgene_msi_int_read() argument 102 return readl_relaxed(msi->msi_regs + MSI_INT0 + in xgene_msi_int_read() 131 struct xgene_msi *msi = irq_data_get_irq_chip_data(data); in xgene_compose_msi_msg() local 140 target_addr = msi->msi_addr; in xgene_compose_msi_msg() 169 struct xgene_msi *msi = domain->host_data; in xgene_irq_domain_alloc() local 172 mutex_lock(&msi->bitmap_lock); in xgene_irq_domain_alloc() 174 hwirq = find_first_zero_bit(msi->bitmap, NR_MSI_VEC); in xgene_irq_domain_alloc() 176 set_bit(hwirq, msi->bitmap); in xgene_irq_domain_alloc() [all …]
|
| H A D | pcie-brcmstb.c | 332 struct brcm_msi *msi; member 551 struct brcm_msi *msi; in brcm_pcie_msi_isr() local 556 msi = irq_desc_get_handler_data(desc); in brcm_pcie_msi_isr() 557 dev = msi->dev; in brcm_pcie_msi_isr() 559 status = readl(msi->intr_base + MSI_INT_STATUS); in brcm_pcie_msi_isr() 560 status >>= msi->legacy_shift; in brcm_pcie_msi_isr() 562 for_each_set_bit(bit, &status, msi->nr) { in brcm_pcie_msi_isr() 564 ret = generic_handle_domain_irq(msi->inner_domain, bit); in brcm_pcie_msi_isr() 574 struct brcm_msi *msi = irq_data_get_irq_chip_data(data); in brcm_msi_compose_msi_msg() local 576 msg->address_lo = lower_32_bits(msi->target_addr); in brcm_msi_compose_msi_msg() [all …]
|
| /linux/arch/powerpc/sysdev/ |
| H A D | fsl_msi.c | 39 #define msi_hwirq(msi, msir_index, intr_index) \ argument 40 ((msir_index) << (msi)->srs_shift | \ 41 ((intr_index) << (msi)->ibs_shift)) 325 struct fsl_msi *msi = platform_get_drvdata(ofdev); in fsl_of_msi_remove() local 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() 332 virq = msi->cascade_array[i]->virq; in fsl_of_msi_remove() 336 free_irq(virq, msi->cascade_array[i]); in fsl_of_msi_remove() 337 kfree(msi->cascade_array[i]); in fsl_of_msi_remove() [all …]
|
| /linux/arch/riscv/kvm/ |
| H A D | vm.c | 72 struct kvm_msi msi; in kvm_set_msi() local 77 msi.address_lo = e->msi.address_lo; in kvm_set_msi() 78 msi.address_hi = e->msi.address_hi; in kvm_set_msi() 79 msi.data = e->msi.data; in kvm_set_msi() 80 msi.flags = e->msi.flags; in kvm_set_msi() 81 msi.devid = e->msi.devid; in kvm_set_msi() 83 return kvm_riscv_aia_inject_msi(kvm, &msi); in kvm_set_msi() 136 e->msi.address_lo = ue->u.msi.address_lo; in kvm_set_routing_entry() 137 e->msi.address_hi = ue->u.msi.address_hi; in kvm_set_routing_entry() 138 e->msi.data = ue->u.msi.data; in kvm_set_routing_entry() [all …]
|
| /linux/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() 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/Documentation/devicetree/bindings/interrupt-controller/ |
| H A D | msi.txt | 40 - 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 …]
|
| /linux/drivers/pci/controller/mobiveil/ |
| H A D | pcie-mobiveil-host.c | 89 struct mobiveil_msi *msi = &rp->msi; in mobiveil_pcie_isr() local 155 generic_handle_domain_irq(msi->dev_domain, msi_data); in mobiveil_pcie_isr() 203 struct mobiveil_msi *msi = &pcie->rp.msi; in mobiveil_pcie_enable_msi() local 205 msi->num_of_vectors = PCI_NUM_MSI; in mobiveil_pcie_enable_msi() 206 msi->msi_pages_phys = (phys_addr_t)msg_addr; in mobiveil_pcie_enable_msi() 395 struct mobiveil_msi *msi = &pcie->rp.msi; in mobiveil_irq_msi_domain_alloc() local 399 mutex_lock(&msi->lock); in mobiveil_irq_msi_domain_alloc() 401 bit = find_first_zero_bit(msi->msi_irq_in_use, msi->num_of_vectors); in mobiveil_irq_msi_domain_alloc() 402 if (bit >= msi->num_of_vectors) { in mobiveil_irq_msi_domain_alloc() 403 mutex_unlock(&msi->lock); in mobiveil_irq_msi_domain_alloc() [all …]
|
| /linux/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/drivers/virt/acrn/ |
| H A D | vm.c | 106 struct acrn_msi_entry *msi; in acrn_msi_inject() local 110 msi = kzalloc_obj(*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/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"; 33 msi-controller; 34 loongson,msi-base-vec = <64>; 35 loongson,msi-num-vecs = <64>;
|
| H A D | loongson64g_4core_ls7a.dts | 32 msi: msi-controller@2ff00000 { label 33 compatible = "loongson,pch-msi-1.0"; 37 msi-controller; 38 loongson,msi-base-vec = <64>; 39 loongson,msi-num-vecs = <192>;
|
| /linux/virt/kvm/ |
| H A D | irqchip.c | 48 int kvm_send_userspace_msi(struct kvm *kvm, struct kvm_msi *msi) in kvm_send_userspace_msi() argument 52 if (!kvm_arch_irqchip_in_kernel(kvm) || (msi->flags & ~KVM_MSI_VALID_DEVID)) in kvm_send_userspace_msi() 55 route.msi.address_lo = msi->address_lo; in kvm_send_userspace_msi() 56 route.msi.address_hi = msi->address_hi; in kvm_send_userspace_msi() 57 route.msi.data = msi->data; in kvm_send_userspace_msi() 58 route.msi.flags = msi->flags; in kvm_send_userspace_msi() 59 route.msi.devid = msi->devid; in kvm_send_userspace_msi()
|
| /linux/arch/arm64/boot/dts/marvell/ |
| H A D | armada-ap80x.dtsi | 112 msi-controller; 114 arm,msi-base-spi = <160>; 115 arm,msi-num-spis = <32>; 119 msi-controller; 121 arm,msi-base-spi = <192>; 122 arm,msi-num-spis = <32>; 126 msi-controller; 128 arm,msi-base-spi = <224>; 129 arm,msi-num-spis = <32>; 133 msi-controller; [all …]
|
| H A D | armada-ap810-ap0.dtsi | 63 gic_its_ap0: msi-controller@3040000 { 65 msi-controller; 66 #msi-cells = <1>; 75 msi-parent = <&gic_its_ap0 0xa0>; 83 msi-parent = <&gic_its_ap0 0xa1>; 91 msi-parent = <&gic_its_ap0 0xa2>; 99 msi-parent = <&gic_its_ap0 0xa3>;
|
| /linux/arch/powerpc/boot/dts/fsl/ |
| H A D | mpc8641si-post.dtsi | 75 msi@41600 { 76 compatible = "fsl,mpc8641-msi", "fsl,mpic-msi"; 78 msi@41800 { 79 compatible = "fsl,mpc8641-msi", "fsl,mpic-msi"; 81 msi@41a00 { 82 compatible = "fsl,mpc8641-msi", "fsl,mpic-msi";
|
| H A D | qoriq-mpic.dtsi | 54 msi0: msi@41600 { 55 compatible = "fsl,mpic-msi"; 57 msi-available-ranges = <0 0x100>; 69 msi1: msi@41800 { 70 compatible = "fsl,mpic-msi"; 72 msi-available-ranges = <0 0x100>; 84 msi2: msi@41a00 { 85 compatible = "fsl,mpic-msi"; 87 msi-available-ranges = <0 0x100>;
|
| H A D | qoriq-mpic4.3.dtsi | 54 msi0: msi@41600 { 55 compatible = "fsl,mpic-msi-v4.3"; 76 msi1: msi@41800 { 77 compatible = "fsl,mpic-msi-v4.3"; 98 msi2: msi@41a00 { 99 compatible = "fsl,mpic-msi-v4.3"; 120 msi3: msi@41c00 { 121 compatible = "fsl,mpic-msi-v4.3";
|
| /linux/Documentation/ABI/testing/ |
| H A D | sysfs-platform-msi-laptop | 1 What: /sys/devices/platform/msi-laptop-pf/lcd_level 8 What: /sys/devices/platform/msi-laptop-pf/auto_brightness 17 What: /sys/devices/platform/msi-laptop-pf/wlan 24 What: /sys/devices/platform/msi-laptop-pf/bluetooth 33 What: /sys/devices/platform/msi-laptop-pf/touchpad 41 What: /sys/devices/platform/msi-laptop-pf/turbo_mode 54 What: /sys/devices/platform/msi-laptop-pf/eco_mode 64 What: /sys/devices/platform/msi-laptop-pf/turbo_cooldown 75 What: /sys/devices/platform/msi-laptop-pf/auto_fan
|
| /linux/arch/arm64/boot/dts/arm/ |
| H A D | morello.dtsi | 241 its1: msi-controller@30040000 { 245 msi-controller; 246 #msi-cells = <1>; 249 its2: msi-controller@30060000 { 253 msi-controller; 254 #msi-cells = <1>; 257 its_ccix: msi-controller@30080000 { 261 msi-controller; 262 #msi-cells = <1>; 265 its_pcie: msi-controller@300a0000 { [all …]
|
| /linux/arch/arm64/boot/dts/hisilicon/ |
| H A D | hip07.dtsi | 959 p0_its_peri_a: msi-controller@4c000000 { 961 msi-controller; 962 #msi-cells = <1>; 966 p0_its_peri_b: msi-controller@6c000000 { 968 msi-controller; 969 #msi-cells = <1>; 973 p0_its_dsa_a: msi-controller@c6000000 { 975 msi-controller; 976 #msi-cells = <1>; 980 p0_its_dsa_b: msi-controller@8c6000000 { [all …]
|
| /linux/arch/sparc/kernel/ |
| H A D | pci_fire.c | 159 unsigned long *head, unsigned long *msi) in pci_fire_dequeue_msi() argument 177 *msi = msi_num = ((ep->word0 & MSIQ_WORD0_DATA0) >> in pci_fire_dequeue_msi() 201 unsigned long msi, int is_msi64) in pci_fire_msi_setup() 205 val = upa_readq(pbm->pbm_regs + MSI_MAP(msi)); in pci_fire_msi_setup() 208 upa_writeq(val, pbm->pbm_regs + MSI_MAP(msi)); in pci_fire_msi_setup() 210 upa_writeq(MSI_CLEAR_EQWR_N, pbm->pbm_regs + MSI_CLEAR(msi)); in pci_fire_msi_setup() 212 val = upa_readq(pbm->pbm_regs + MSI_MAP(msi)); in pci_fire_msi_setup() 214 upa_writeq(val, pbm->pbm_regs + MSI_MAP(msi)); in pci_fire_msi_setup() 219 static int pci_fire_msi_teardown(struct pci_pbm_info *pbm, unsigned long msi) in pci_fire_msi_teardown() argument 223 val = upa_readq(pbm->pbm_regs + MSI_MAP(msi)); in pci_fire_msi_teardown() [all …]
|