/linux/drivers/pci/msi/ |
H A D | irqdomain.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCI Message Signaled Interrupt (MSI) - irqdomain support 13 struct irq_domain *domain; in pci_msi_setup_msi_irqs() local 15 domain = dev_get_msi_domain(&dev->dev); in pci_msi_setup_msi_irqs() 16 if (domain && irq_domain_is_hierarchy(domain)) in pci_msi_setup_msi_irqs() 17 return msi_domain_alloc_irqs_all_locked(&dev->dev, MSI_DEFAULT_DOMAIN, nvec); in pci_msi_setup_msi_irqs() 24 struct irq_domain *domain; in pci_msi_teardown_msi_irqs() local 26 domain = dev_get_msi_domain(&dev->dev); in pci_msi_teardown_msi_irqs() 27 if (domain && irq_domain_is_hierarchy(domain)) { in pci_msi_teardown_msi_irqs() 28 msi_domain_free_irqs_all_locked(&dev->dev, MSI_DEFAULT_DOMAIN); in pci_msi_teardown_msi_irqs() [all …]
|
/linux/include/linux/ |
H A D | msi.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 8 * - Interrupt core code 9 * - PCI/MSI core code 10 * - MSI interrupt domain implementations 11 * - IOMMU, low level VFIO, NTB and other justified exceptions 52 * msi_msg - Representation of a MSI message 94 * pci_msi_desc - PCI/MSI specific MSI descriptor data 96 * @msi_mask: [PCI MSI] MSI cached mask bits 97 * @msix_ctrl: [PCI MSI-X] MSI-X cached per vector control bits 98 * @is_msix: [PCI MSI/X] True if MSI-X [all …]
|
/linux/drivers/pci/ |
H A D | search.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCI searching functions 5 * Copyright (C) 1993 -- 1997 Drew Eckhardt, Frederic Potter, 6 * David Mosberger-Tang 7 * Copyright (C) 1997 -- 2000 Martin Mares <mj@ucw.cz> 8 * Copyright (C) 2003 -- 2004 Greg Kroah-Hartman <greg@kroah.com> 11 #include <linux/pci.h> 15 #include "pci.h" 20 * pci_for_each_dma_alias - Iterate over DMA aliases for a device 37 * requester is on another PCI bus. in pci_for_each_dma_alias() [all …]
|
H A D | xen-pcifront.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Xen PCI Frontend 15 #include <linux/pci.h> 18 #include <asm/xen/pci.h> 27 #include <asm/xen/swiotlb-xen.h> 29 #define INVALID_EVTCHN (-1) 64 return sd->pdev; in pcifront_get_pdev() 68 unsigned int domain, unsigned int bus, in pcifront_init_sd() argument 72 sd->sd.node = first_online_node; in pcifront_init_sd() 73 sd->sd.domain = domain; in pcifront_init_sd() [all …]
|
H A D | of.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * PCI <-> OF mapping helpers 7 #define pr_fmt(fmt) "PCI: OF: " fmt 12 #include <linux/pci.h> 18 #include "pci.h" 22 * pci_set_of_node - Find and set device's DT device_node 23 * @dev: the PCI device structure to fill 26 * DT. Returns -ENODEV if the device is present, but disabled in the DT. 30 if (!dev->bus->dev.of_node) in pci_set_of_node() 34 of_pci_find_child_device(dev->bus->dev.of_node, dev->devfn); in pci_set_of_node() [all …]
|
/linux/drivers/pci/controller/dwc/ |
H A D | pcie-amd-mdb.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2024-2025, Advanced Micro Devices, Inc. 16 #include <linux/pci.h> 21 #include "pcie-designware.h" 54 * struct amd_mdb_pcie - PCIe port information 55 * @pci: DesignWare PCIe controller structure 57 * @intx_domain: INTx IRQ domain pointer 58 * @mdb_domain: MDB IRQ domain pointer 62 struct dw_pcie pci; member 75 struct dw_pcie *pci = &pcie->pci; in amd_mdb_intx_irq_mask() local [all …]
|
/linux/drivers/xen/xen-pciback/ |
H A D | xenbus.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCI Backend Xenbus Setup - handles setup with frontend and xend 17 #include <xen/pci.h> 20 #define INVALID_EVTCHN_IRQ (-1) 25 "Option to specify how to export PCI topology to guest:\n"\ 26 " 0 - (default) Hide the true PCI topology and makes the frontend\n"\ 27 " there is a single PCI bus with only the exported devices on it.\n"\ 28 " For example, a device at 03:05.0 will be re-assigned to 00:00.0\n"\ 29 " while second device at 02:1a.1 will be re-assigned to 00:01.1.\n"\ 30 " 1 - Passthrough provides a real view of the PCI topology to the\n"\ [all …]
|
/linux/drivers/xen/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 9 The balloon driver allows the Xen domain to request more memory from 10 the system to expand the domain's memory allocation, or alternatively 28 1) target domain: ensure that memory auto online policy is in 32 2) control domain: xl mem-max <target-domain> <maxmem> 35 3) control domain: xl mem-set <target-domain> <memory> 40 target domain. 43 the newly added memory can be manually onlined in the target domain 51 …SUBSYSTEM=="memory", ACTION=="add", RUN+="/bin/sh -c '[ -f /sys$devpath/state ] && echo online > /… 107 may pass arbitrary information to the initial domain. [all …]
|
/linux/kernel/irq/ |
H A D | msi.c | 1 // SPDX-License-Identifier: GPL-2.0 9 * PCI compatible and non PCI compatible devices. 16 #include <linux/pci.h> 26 * struct msi_device_data - MSI per device data 40 * struct msi_ctrl - MSI internal management control structure 41 * @domid: ID of the domain on which management operations should be done 45 * than the range due to PCI/multi-MSI. 55 #define MSI_XA_MAX_INDEX (ULONG_MAX - 1) 56 /* The maximum domain size */ 62 static int msi_domain_prepare_irqs(struct irq_domain *domain, struct device *dev, [all …]
|
/linux/Documentation/arch/s390/ |
H A D | pci.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 S/390 PCI 8 - Pierre Morel 17 ----------------------- 21 Do not use PCI Mapped I/O (MIO) instructions. 25 Ignore the RID field and force use of one PCI domain per PCI function. 28 --------------- 36 - /sys/kernel/debug/s390dbf/pci_msg/sprintf 37 Holds messages from the processing of PCI events, like machine check handling 50 * /sys/bus/pci/slots/XXXXXXXX [all …]
|
/linux/drivers/iommu/ |
H A D | fsl_pamu_domain.c | 1 // SPDX-License-Identifier: GPL-2.0-only 8 #define pr_fmt(fmt) "fsl-pamu-domain: %s: " fmt, __func__ 41 return -ENOMEM; in iommu_init_mempool() 52 return -ENOMEM; in iommu_init_mempool() 96 ret = pamu_config_ppaace(liodn, omi_index, dma_domain->stash_id, 0); in pamu_set_liodn() 99 ret = pamu_config_ppaace(liodn, ~(u32)0, dma_domain->stash_id, in pamu_set_liodn() 114 list_del(&info->link); in remove_device_ref() 116 pamu_disable_liodn(info->liodn); in remove_device_ref() 119 dev_iommu_priv_set(info->dev, NULL); in remove_device_ref() 129 spin_lock_irqsave(&dma_domain->domain_lock, flags); in detach_device() [all …]
|
/linux/arch/x86/pci/ |
H A D | common.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Low-Level PCI Support for PC 5 * (c) 1999--2000 Martin Mares <mj@ucw.cz> 9 #include <linux/pci.h> 10 #include <linux/pci-acpi.h> 35 int pcibios_last_bus = -1; 40 int raw_pci_read(unsigned int domain, unsigned int bus, unsigned int devfn, in raw_pci_read() argument 43 if (domain == 0 && reg < 256 && raw_pci_ops) in raw_pci_read() 44 return raw_pci_ops->read(domain, bus, devfn, reg, len, val); in raw_pci_read() 46 return raw_pci_ext_ops->read(domain, bus, devfn, reg, len, val); in raw_pci_read() [all …]
|
/linux/drivers/net/ethernet/sun/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 9 depends on SUN3 || SBUS || PCI || SUN_LDOMS 22 depends on (SBUS || PCI) 27 both PCI and Sbus devices. This driver also supports the "qfe" quad 28 100baseT device available in both PCI and Sbus configurations. 58 depends on PCI 63 <http://docs.oracle.com/cd/E19455-01/806-3985-10/806-3985-10.pdf>. 67 depends on PCI 71 <http://docs.oracle.com/cd/E19113-01/giga.ether.pci/817-4341-10/817-4341-10.pdf>. 94 This driver adds a network interface for every vsw-port node [all …]
|
/linux/Documentation/devicetree/bindings/pci/ |
H A D | mediatek-pcie.txt | 4 - compatible: Should contain one of the following strings: 5 "mediatek,mt2701-pcie" 6 "mediatek,mt2712-pcie" 7 "mediatek,mt7622-pcie" 8 "mediatek,mt7623-pcie" 9 "mediatek,mt7629-pcie" 10 "airoha,en7523-pcie" 11 - device_type: Must be "pci" 12 - reg: Base addresses and lengths of the root ports. 13 - reg-names: Names of the above areas to use during resource lookup. [all …]
|
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# 7 title: PCI Endpoint Controller 10 Common properties for PCI Endpoint Controller Nodes. 13 - Kishon Vijay Abraham I <kishon@kernel.org> 14 - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 18 pattern: "^pcie-ep@" 20 iommu-map: [all …]
|
/linux/Documentation/translations/zh_CN/PCI/ |
H A D | pci-iov-howto.rst | 1 .. SPDX-License-Identifier: GPL-2.0 3 .. include:: ../disclaimer-zh_CN.rst 5 :Original: Documentation/PCI/pci-iov-howto.rst 15 .. _cn_pci-iov-howto: 18 PCI Express I/O 虚拟化指南 22 :作者: - Yu Zhao <yu.zhao@intel.com> 23 - Donald Dutile <ddutile@redhat.com> 28 什么是SR-IOV 29 ------------ 31 单根I/O虚拟化(SR-IOV)是一种PCI Express扩展功能,它使一个物理设备显示为多个 [all …]
|
/linux/tools/power/cpupower/utils/helpers/ |
H A D | pci.c | 1 // SPDX-License-Identifier: GPL-2.0 9 * PCI access helper function depending on libpci 14 * domain: domain 20 * Pass -1 for one of the six above to match any 24 * to access the PCI config space of matching pci devices 26 struct pci_dev *pci_acc_init(struct pci_access **pacc, int domain, int bus, in pci_acc_init() argument 37 filter_nb_link.domain = domain; in pci_acc_init() 47 for (device = (*pacc)->devices; device; device = device->next) { in pci_acc_init() 55 /* Typically one wants to get a specific slot(device)/func of the root domain 60 return pci_acc_init(pacc, 0, 0, slot, func, -1, -1); in pci_slot_func_init()
|
/linux/arch/mips/pci/ |
H A D | pci-xtalk-bridge.c | 1 // SPDX-License-Identifier: GPL-2.0 4 * Copyright (C) 1999, 2000, 04 Ralf Baechle (ralf@linux-mips.org) 9 #include <linux/pci.h> 11 #include <linux/dma-direct.h> 13 #include <linux/platform_data/xtalk-bridge.h> 14 #include <linux/nvmem-consumer.h> 18 #include <asm/pci/bridge.h> 27 * Common phys<->dma mapping for platforms using pci xtalk bridge 32 struct bridge_controller *bc = BRIDGE_CONTROLLER(pdev->bus); in phys_to_dma() 34 return bc->baddr + paddr; in phys_to_dma() [all …]
|
/linux/drivers/iommu/intel/ |
H A D | svm.c | 1 // SPDX-License-Identifier: GPL-2.0-only 13 #include <linux/pci.h> 14 #include <linux/pci-ats.h> 25 #include "../iommu-pages.h" 34 !cap_fl1gp_support(iommu->cap)) { in intel_svm_check() 36 iommu->name); in intel_svm_check() 41 !cap_fl5lp_support(iommu->cap)) { in intel_svm_check() 43 iommu->name); in intel_svm_check() 47 iommu->flags |= VTD_FLAG_SVM_CAPABLE; in intel_svm_check() 55 struct dmar_domain *domain = container_of(mn, struct dmar_domain, notifier); in intel_arch_invalidate_secondary_tlbs() local [all …]
|
/linux/Documentation/PCI/ |
H A D | pci-iov-howto.rst | 1 .. SPDX-License-Identifier: GPL-2.0 5 PCI Express I/O Virtualization Howto 9 :Authors: - Yu Zhao <yu.zhao@intel.com> 10 - Donald Dutile <ddutile@redhat.com> 15 What is SR-IOV 16 -------------- 18 Single Root I/O Virtualization (SR-IOV) is a PCI Express Extended 25 turned on, each VF's PCI configuration space can be accessed by its own 26 Bus, Device and Function Number (Routing ID). And each VF also has PCI 29 real existing PCI device. [all …]
|
/linux/arch/arm64/kernel/ |
H A D | pci.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Code borrowed from powerpc/kernel/pci-common.c 9 #include <linux/pci.h> 12 * raw_pci_read/write - Platform-specific PCI config space access. 14 int raw_pci_read(unsigned int domain, unsigned int bus, in raw_pci_read() argument 17 struct pci_bus *b = pci_find_bus(domain, bus); in raw_pci_read() 21 return b->ops->read(b, devfn, reg, len, val); in raw_pci_read() 24 int raw_pci_write(unsigned int domain, unsigned int bus, in raw_pci_write() argument 27 struct pci_bus *b = pci_find_bus(domain, bus); in raw_pci_write() 31 return b->ops->write(b, devfn, reg, len, val); in raw_pci_write() [all …]
|
/linux/drivers/scsi/elx/libefc/ |
H A D | efc_cmds.c | 1 // SPDX-License-Identifier: GPL-2.0 15 struct efc *efc = nport->efc; in efc_nport_free_resources() 18 nport->attached = false; in efc_nport_free_resources() 21 if (nport->dma.virt) { in efc_nport_free_resources() 22 dma_free_coherent(&efc->pci->dev, nport->dma.size, in efc_nport_free_resources() 23 nport->dma.virt, nport->dma.phys); in efc_nport_free_resources() 24 memset(&nport->dma, 0, sizeof(struct efc_dma)); in efc_nport_free_resources() 28 sli_resource_free(efc->sli, SLI4_RSRC_VPI, nport->indicator); in efc_nport_free_resources() 36 struct efc *efc = nport->efc; in efc_nport_get_mbox_status() 40 if (status || le16_to_cpu(hdr->status)) { in efc_nport_get_mbox_status() [all …]
|
/linux/arch/mips/ath25/ |
H A D | ar2315.c | 76 struct irq_domain *domain = irq_desc_get_handler_data(desc); in ar2315_misc_irq_handler() local 85 ret = generic_handle_domain_irq(domain, nr); in ar2315_misc_irq_handler() 94 ar2315_rst_reg_mask(AR2315_IMR, 0, BIT(d->hwirq)); in ar2315_misc_irq_unmask() 99 ar2315_rst_reg_mask(AR2315_IMR, BIT(d->hwirq), 0); in ar2315_misc_irq_mask() 103 .name = "ar2315-misc", 147 struct irq_domain *domain; in ar2315_arch_init_irq() local 152 domain = irq_domain_create_linear(NULL, AR2315_MISC_IRQ_COUNT, in ar2315_arch_init_irq() 154 if (!domain) in ar2315_arch_init_irq() 155 panic("Failed to add IRQ domain"); in ar2315_arch_init_irq() 157 irq = irq_create_mapping(domain, AR2315_MISC_IRQ_AHB); in ar2315_arch_init_irq() [all …]
|
/linux/drivers/pci/controller/ |
H A D | pcie-xilinx.c | 1 // SPDX-License-Identifier: GPL-2.0+ 5 * Copyright (c) 2012 - 2014 Xilinx, Inc. 10 * ARM PCI Host generic driver. 23 #include <linux/pci.h> 24 #include <linux/pci-ecam.h> 27 #include "../pci.h" 94 * struct xilinx_pcie - PCIe port information 99 * @msi_domain: MSI IRQ domain pointer 100 * @leg_domain: Legacy IRQ domain pointer 115 return readl(pcie->reg_base + reg); in pcie_read() [all …]
|
/linux/Documentation/ABI/testing/ |
H A D | sysfs-devices-mapping | 9 For example, on 4-die Xeon platform with up to 6 IIO stacks per 14 -r--r--r-- /sys/devices/uncore_iio_0/die0 15 -r--r--r-- /sys/devices/uncore_iio_0/die1 16 -r--r--r-- /sys/devices/uncore_iio_0/die2 17 -r--r--r-- /sys/devices/uncore_iio_0/die3 31 IIO PMU 0 on die 0 belongs to PCI RP on bus 0x00, domain 0x0000 32 IIO PMU 0 on die 1 belongs to PCI RP on bus 0x40, domain 0x0000 33 IIO PMU 0 on die 2 belongs to PCI RP on bus 0x80, domain 0x0000 34 IIO PMU 0 on die 3 belongs to PCI RP on bus 0xc0, domain 0x0000 44 For example, 4-die Sapphire Rapids platform has the following
|