/linux/drivers/pci/controller/ |
H A D | pcie-brcmstb.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 /* Copyright (C) 2009 - 2019 Broadcom */ 15 #include <linux/irqchip/irq-msi-lib.h> 21 #include <linux/msi.h> 27 #include <linux/pci-ecam.h> 38 /* BRCM_PCIE_CAP_REGS - Offset for the mandatory capability config regs */ 152 /* Offsets from INTR2_CPU and MSI_INTR2 BASE offsets */ 171 #define BRCM_INT_PCI_MSI_MASK GENMASK(BRCM_INT_PCI_MSI_NR - 1, 0) 173 32 - BRCM_INT_PCI_MSI_LEGACY_NR) 175 /* MSI target addresses */ [all …]
|
H A D | pci-tegra.c | 1 // SPDX-License-Identifier: GPL-2.0+ 9 * Copyright (c) 2008-2009, NVIDIA Corporation. 11 * Bits taken from arch/arm/mach-dove/pcie.c 26 #include <linux/irqchip/irq-msi-lib.h> 31 #include <linux/msi.h> 258 * Fields in PADS_REFCLK_CFG*. Those registers form an array of 16-bit 346 struct tegra_msi msi; member 358 static inline struct tegra_pcie *msi_to_pcie(struct tegra_msi *msi) in msi_to_pcie() argument 360 return container_of(msi, struct tegra_pcie, msi); in msi_to_pcie() 368 void __iomem *base; member [all …]
|
H A D | pcie-xilinx-nwl.c | 1 // SPDX-License-Identifier: GPL-2.0+ 4 * Based on pcie-xilinx.c, pci-tegra.c 6 * (C) Copyright 2014 - 2015, Xilinx, Inc. 13 #include <linux/irqchip/irq-msi-lib.h> 17 #include <linux/msi.h> 22 #include <linux/pci-ecam.h> 35 /* Egress - Bridge translation registers */ 45 /* Ingress - address translations */ 53 /* Rxed msg fifo - Interrupt status registers */ 112 /* MSI interrupt status mask bits */ [all …]
|
H A D | pcie-iproc.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 2014 Hauke Mehrtens <hauke@hauke-m.de> 9 #include <linux/pci-ecam.h> 10 #include <linux/msi.h> 17 #include <linux/irqchip/arm-gic-v3.h> 24 #include "pcie-iproc.h" 91 * struct iproc_pcie_ob_map - iProc PCIe outbound mapping controller-specific 138 * enum iproc_pcie_ib_map_type - iProc PCIe inbound mapping type 150 * struct iproc_pcie_ib_map - iProc PCIe inbound mapping controller-specific 159 * @imap_addr_offset: register offset between the upper and lower 32-bit [all …]
|
H A D | pcie-rcar-host.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCIe driver for Renesas R-Car SoCs 4 * Copyright (C) 2014-2020 Renesas Electronics Europe Ltd 7 * arch/sh/drivers/pci/pcie-sh7786.c 8 * arch/sh/drivers/pci/ops-sh7786.c 9 * Copyright (C) 2009 - 2011 Paul Mundt 17 #include <linux/clk-provider.h> 21 #include <linux/irqchip/irq-msi-lib.h> 26 #include <linux/msi.h> 36 #include "pcie-rcar.h" [all …]
|
H A D | pcie-iproc.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * Copyright (C) 2014-2015 Broadcom Corporation 10 * enum iproc_pcie_type - iProc PCIe interface type 11 * @IPROC_PCIE_PAXB_BCMA: BCMA-based host controllers 12 * @IPROC_PCIE_PAXB: PAXB-based host controllers for 14 * @IPROC_PCIE_PAXB_V2: PAXB-based host controllers for Stingray SoCs 15 * @IPROC_PCIE_PAXC: PAXC-based host controllers 16 * @IPROC_PCIE_PAXC_V2: PAXC-based host controllers (second generation) 33 * struct iproc_pcie_ob - iProc PCIe outbound mapping 44 * struct iproc_pcie_ib - iProc PCIe inbound mapping [all …]
|
/linux/Documentation/devicetree/bindings/pci/ |
H A D | pci-ep.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/pci/pci-ep.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 13 - Kishon Vijay Abraham I <kishon@kernel.org> 14 - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 18 pattern: "^pcie-ep@" 20 iommu-map: 21 $ref: /schemas/types.yaml#/definitions/uint32-matrix 24 - description: Device ID (see msi-map) base [all …]
|
/linux/Documentation/devicetree/bindings/misc/ |
H A D | fsl,qoriq-mc.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/misc/fsl,qoriq-mc.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Frank Li <Frank.Li@nxp.com> 13 The Freescale Management Complex (fsl-mc) is a hardware resource 15 network-oriented packet processing applications. After the fsl-mc 22 For an overview of the DPAA2 architecture and fsl-mc bus see: 26 same hardware "isolation context" and a 10-bit value called an ICID 31 between ICIDs and IOMMUs, so an iommu-map property is used to define [all …]
|
/linux/Documentation/devicetree/bindings/interrupt-controller/ |
H A D | loongson,pch-msi.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/interrupt-controller/loongson,pch-msi.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Loongson PCH MSI Controller 10 - Jiaxun Yang <jiaxun.yang@flygoat.com> 14 transforming interrupts from PCIe MSI into HyperTransport vectorized 19 const: loongson,pch-msi-1.0 24 loongson,msi-base-vec: 26 u32 value of the base of parent HyperTransport vector allocated [all …]
|
H A D | al,alpine-msix.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/interrupt-controller/al,alpine-msix.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Antoine Tenart <atenart@kernel.org> 14 const: al,alpine-msix 19 interrupt-parent: true 21 msi-controller: true 23 al,msi-base-spi: 24 description: SPI base of the MSI frame [all …]
|
H A D | marvell,odmi-controller.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/interrupt-controller/marvell,odmi-controller.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 13 Some Marvell SoCs have an On-Die Message Interrupt (ODMI) controller which can 14 be used by on-board peripherals for MSI interrupts. 18 const: marvell,odmi-controller 23 msi-controller: true 25 marvell,odmi-frames: [all …]
|
H A D | arm,gic-v3.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/interrupt-controller/arm,gic-v3.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Marc Zyngier <maz@kernel.org> 15 Software Generated Interrupts (SGI), and Locality-specific Peripheral 19 - $ref: /schemas/interrupt-controller.yaml# 24 - items: 25 - enum: 26 - qcom,msm8996-gic-v3 [all …]
|
H A D | msi-controller.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/interrupt-controller/msi-controller.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: MSI controller 10 - Marc Zyngier <maz@kernel.org> 13 An MSI controller signals interrupts to a CPU when a write is made 14 to an MMIO address by some master. An MSI controller may feature a 18 "#msi-cells": 20 The number of cells in an msi-specifier, required if not zero. [all …]
|
/linux/drivers/irqchip/ |
H A D | irq-bcm2712-mip.c | 1 // SPDX-License-Identifier: GPL-2.0-only 10 #include <linux/msi.h> 14 #include <linux/irqchip/irq-msi-lib.h> 30 * struct mip_priv - MSI-X interrupt controller data 32 * @base: Base address of MMIO area 33 * @msg_addr: PCIe MSI-X address 34 * @msi_base: MSI base 36 * @msi_offset: MSI offset 43 void __iomem *base; member 57 msg->address_hi = upper_32_bits(mip->msg_addr); in mip_compose_msi_msg() [all …]
|
H A D | irq-gic-v2m.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * ARM GIC v2m MSI(-X) support 21 #include <linux/msi.h> 26 #include <linux/irqchip/arm-gic.h> 27 #include <linux/irqchip/arm-gic-common.h> 29 #include <linux/irqchip/irq-msi-lib.h> 34 * [25:16] lowest SPI assigned to MSI 36 * [9:0] Numer of SPIs assigned to MSI 52 /* APM X-Gene with GICv2m MSI_IIDR register value */ 69 void __iomem *base; /* GICv2m virt address */ member [all …]
|
H A D | irq-mvebu-icu.c | 5 * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 18 #include <linux/msi.h> 23 #include <linux/irqchip/irq-msi-lib.h> 25 #include <dt-bindings/interrupt-controller/mvebu-icu.h> 55 void __iomem *base; member 71 struct msi_domain_info *info = d->host_data; in mvebu_icu_translate() 72 struct mvebu_icu_msi_data *msi_data = info->chip_data; in mvebu_icu_translate() 73 struct mvebu_icu *icu = msi_data->icu; in mvebu_icu_translate() 76 if (WARN_ON(fwspec->param_count != param_count)) { in mvebu_icu_translate() 77 dev_err(icu->dev, "wrong ICU parameter count %d\n", in mvebu_icu_translate() [all …]
|
H A D | irq-riscv-aplic-msi.c | 1 // SPDX-License-Identifier: GPL-2.0 12 #include <linux/irqchip/riscv-aplic.h> 13 #include <linux/irqchip/riscv-imsic.h> 15 #include <linux/msi.h> 21 #include "irq-riscv-aplic-main.h" 43 * The section "4.9.2 Special consideration for level-sensitive interrupt in aplic_msi_irq_retrigger_level() 44 * sources" of the RISC-V AIA specification says: in aplic_msi_irq_retrigger_level() 52 writel(d->hwirq, priv->regs + APLIC_SETIPNUM_LE); in aplic_msi_irq_retrigger_level() 60 * EOI handling is required only for level-triggered interrupts in aplic_msi_irq_eoi() 61 * when APLIC is in MSI mode. in aplic_msi_irq_eoi() [all …]
|
H A D | irq-armada-370-xp.c | 1 // SPDX-License-Identifier: GPL-2.0-only 8 * Gregory CLEMENT <gregory.clement@free-electrons.com> 9 * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 23 #include <linux/irqchip/irq-msi-lib.h> 32 #include <linux/msi.h> 46 * +---------------+ +---------------+ 48 * | per-CPU | | per-CPU | 52 * +---------------+ +---------------+ 57 * +-------------------+ 62 * +-------------------+ [all …]
|
/linux/drivers/pci/msi/ |
H A D | msi.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCI Message Signaled Interrupt (MSI) 5 * Copyright (C) 2003-2004 Intel 16 #include "msi.h" 21 * pci_msi_supported - check whether MSI may be enabled on a device 22 * @dev: pointer to the pci_dev data structure of MSI device function 26 * to determine if MSI/-X are supported for the device. If MSI/-X is 33 /* MSI must be globally enabled and supported by the device */ in pci_msi_supported() 37 if (!dev || dev->no_msi) in pci_msi_supported() 49 * Any bridge which does NOT route MSI transactions from its in pci_msi_supported() [all …]
|
/linux/arch/arm64/boot/dts/marvell/ |
H A D | armada-ap80x.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 8 #include <dt-bindings/interrupt-controller/arm-gic.h> 9 #include <dt-bindings/thermal/thermal.h> 11 /dts-v1/; 14 #address-cells = <2>; 15 #size-cells = <2>; 25 compatible = "arm,psci-0.2"; 29 reserved-memory { 30 #address-cells = <2>; 31 #size-cells = <2>; [all …]
|
/linux/arch/arm64/boot/dts/broadcom/northstar2/ |
H A D | ns2.dtsi | 35 #include <dt-bindings/interrupt-controller/arm-gic.h> 36 #include <dt-bindings/clock/bcm-ns2.h> 40 interrupt-parent = <&gic>; 41 #address-cells = <2>; 42 #size-cells = <2>; 45 #address-cells = <2>; 46 #size-cells = <0>; 50 compatible = "arm,cortex-a57"; 52 enable-method = "psci"; 53 next-level-cache = <&CLUSTER0_L2>; [all …]
|
/linux/include/linux/ |
H A D | msi.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 6 * This header file contains MSI data structures and functions which are 8 * - Interrupt core code 9 * - PCI/MSI core code 10 * - MSI interrupt domain implementations 11 * - IOMMU, low level VFIO, NTB and other justified exceptions 12 * dealing with low level MSI details. 15 * especially storing MSI descriptor pointers in random code is considered 26 #include <asm/msi.h> 52 * msi_msg - Representation of a MSI message [all …]
|
H A D | pci-epc.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 12 #include <linux/pci-epf.h> 17 UNKNOWN_INTERFACE = -1, 36 * struct pci_epc_map - information about EPC memory for mapping a RC PCI 44 * @phys_base: base physical address of the allocated EPC memory for mapping the 47 * @virt_base: base virtual address of the allocated EPC memory for mapping the 65 * struct pci_epc_ops - set of function pointers for performing EPC operations 74 * @set_msi: ops to set the requested number of MSI interrupts in the MSI 76 * @get_msi: ops to get the number of MSI interrupts allocated by the RC from 77 * the MSI capability register [all …]
|
/linux/arch/sparc/kernel/ |
H A D | pci_fire.c | 1 // SPDX-License-Identifier: GPL-2.0 2 /* pci_fire.c: Sun4u platform PCI-E controller support. 10 #include <linux/msi.h> 33 struct iommu *iommu = pbm->iommu; in pci_fire_pbm_iommu_init() 38 /* No virtual-dma property on these guys, use largest size. */ in pci_fire_pbm_iommu_init() 39 vdma[0] = 0xc0000000; /* base */ in pci_fire_pbm_iommu_init() 45 iommu->iommu_control = pbm->pbm_regs + FIRE_IOMMU_CONTROL; in pci_fire_pbm_iommu_init() 46 iommu->iommu_tsbbase = pbm->pbm_regs + FIRE_IOMMU_TSBBASE; in pci_fire_pbm_iommu_init() 47 iommu->iommu_flush = pbm->pbm_regs + FIRE_IOMMU_FLUSH; in pci_fire_pbm_iommu_init() 48 iommu->iommu_flushinv = pbm->pbm_regs + FIRE_IOMMU_FLUSHINV; in pci_fire_pbm_iommu_init() [all …]
|
/linux/drivers/pci/controller/mobiveil/ |
H A D | pcie-mobiveil.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 17 #include <linux/msi.h> 103 /* supported number of MSI interrupts */ 106 /* MSI registers */ 136 struct mobiveil_msi { /* MSI information */ 151 void __iomem *config_axi_slave_base; /* endpoint config base */ 157 struct mobiveil_msi msi; member 167 void __iomem *csr_axi_slave_base; /* root port config base */ 168 void __iomem *apb_csr_base; /* MSI register base */ 169 phys_addr_t pcie_reg_base; /* Physical PCIe Controller Base */
|