Home
last modified time | relevance | path

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

123456789

/linux/drivers/pci/controller/
H A Dpcie-iproc-msi.c63 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 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 …]
H A Dpcie-xilinx-dma-pl.c127 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 Dpcie-rcar-host.c52 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()
565 struct rcar_msi *msi = &host->msi; in rcar_pcie_msi_irq() local
579 ret = generic_handle_domain_irq(msi->domain, index); in rcar_pcie_msi_irq()
595 struct rcar_msi *msi = irq_data_get_irq_chip_data(d); in rcar_msi_irq_ack() local
596 struct rcar_pcie *pcie = &msi_to_host(msi)->pcie; in rcar_msi_irq_ack()
604 struct rcar_msi *msi = irq_data_get_irq_chip_data(d); in rcar_msi_irq_mask() local
605 struct rcar_pcie *pcie = &msi_to_host(msi)->pcie; in rcar_msi_irq_mask()
608 scoped_guard(raw_spinlock_irqsave, &msi->mask_lock) { in rcar_msi_irq_mask()
[all …]
H A Dpci-xgene-msi.c92 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 Dpcie-xilinx-nwl.c170 struct nwl_msi msi; member
337 struct nwl_msi *msi = &pcie->msi; in nwl_pcie_handle_msi_irq() local
344 generic_handle_domain_irq(msi->dev_domain, bit); in nwl_pcie_handle_msi_irq()
458 struct nwl_msi *msi = &pcie->msi; in nwl_irq_domain_alloc() local
462 mutex_lock(&msi->lock); in nwl_irq_domain_alloc()
463 bit = bitmap_find_free_region(msi->bitmap, INT_PCI_MSI_NR, in nwl_irq_domain_alloc()
466 mutex_unlock(&msi->lock); in nwl_irq_domain_alloc()
475 mutex_unlock(&msi->lock); in nwl_irq_domain_alloc()
484 struct nwl_msi *msi = &pcie->msi; in nwl_irq_domain_free() local
486 mutex_lock(&msi->lock); in nwl_irq_domain_free()
[all …]
/linux/arch/arm64/kvm/vgic/
H A 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/arch/powerpc/sysdev/
H A Dfsl_msi.c39 #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 Dvm.c72 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 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/Documentation/devicetree/bindings/interrupt-controller/
H A 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 …]
/linux/drivers/pci/controller/mobiveil/
H A Dpcie-mobiveil-host.c89 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 Dbase.c35 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/pci/controller/plda/
H A Dpcie-plda-host.c37 struct plda_msi *msi = &port->msi; in plda_handle_msi() local
50 for_each_set_bit(bit, &status, msi->num_vectors) { in plda_handle_msi()
51 ret = generic_handle_domain_irq(msi->dev_domain, bit); in plda_handle_msi()
73 phys_addr_t addr = port->msi.vector_phy; in plda_compose_msi_msg()
95 struct plda_msi *msi = &port->msi; in plda_irq_msi_domain_alloc() local
98 mutex_lock(&msi->lock); in plda_irq_msi_domain_alloc()
99 bit = find_first_zero_bit(msi->used, msi->num_vectors); in plda_irq_msi_domain_alloc()
100 if (bit >= msi->num_vectors) { in plda_irq_msi_domain_alloc()
101 mutex_unlock(&msi->lock); in plda_irq_msi_domain_alloc()
105 set_bit(bit, msi->used); in plda_irq_msi_domain_alloc()
[all …]
/linux/drivers/virt/acrn/
H A Dvm.c106 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/drivers/media/pci/ddbridge/
H A 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/virt/kvm/
H A Dirqchip.c48 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/mips/boot/dts/loongson/
H A Dloongson64c_4core_ls7a.dts28 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 Dloongson64g_4core_ls7a.dts32 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/arch/arm64/boot/dts/marvell/
H A Darmada-ap80x.dtsi112 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 Darmada-ap810-ap0.dtsi63 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 Dmpc8641si-post.dtsi75 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 Dqoriq-mpic.dtsi54 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>;
/linux/Documentation/ABI/testing/
H A Dsysfs-platform-msi-laptop1 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/hisilicon/
H A Dhip05.dtsi253 its_peri: msi-controller@8c000000 {
255 msi-controller;
256 #msi-cells = <1>;
260 its_m3: msi-controller@a3000000 {
262 msi-controller;
263 #msi-cells = <1>;
267 its_pcie: msi-controller@b7000000 {
269 msi-controller;
270 #msi-cells = <1>;
274 its_dsa: msi-controller@c6000000 {
[all …]

123456789