/linux-6.15/drivers/pci/msi/ |
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-6.15/include/linux/ |
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-6.15/drivers/pci/ |
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 …]
|
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 …]
|
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-6.15/drivers/pci/controller/dwc/ |
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-6.15/kernel/irq/ |
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 */ 65 * msi_alloc_desc - Allocate an initialized msi_desc [all …]
|
/linux-6.15/drivers/xen/xen-pciback/ |
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 …]
|
D | pci_stub.c | 2 * PCI Stub Driver - Grabs devices in backend to be exported later 17 #include <linux/pci.h> 22 #include <xen/pci.h> 45 int domain; member 58 struct xen_pcibk_device *pdev;/* non-NULL if struct pci_dev is in use */ 80 dev_dbg(&dev->dev, "pcistub_device_alloc\n"); in pcistub_device_alloc() 86 psdev->dev = pci_dev_get(dev); in pcistub_device_alloc() 87 if (!psdev->dev) { in pcistub_device_alloc() 92 kref_init(&psdev->kref); in pcistub_device_alloc() 93 spin_lock_init(&psdev->lock); in pcistub_device_alloc() [all …]
|
D | pciback.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * PCI Backend Common Data Structures & Function Declarations 10 #include <linux/pci.h> 20 #define DRV_NAME "xen-pciback" 55 unsigned int ack_intr:1; /* .. and ACK-ing */ 57 unsigned int irq; /* Saved in case device transitions to MSI/MSI-X */ 58 char irq_name[]; /* xen-pcibk[000:04:00.0] */ 66 /* Get/Put PCI Devices that are hidden from the PCI Backend Domain */ 68 int domain, int bus, 80 /* Access a virtual configuration space for a PCI device */ [all …]
|
/linux-6.15/Documentation/arch/s390/ |
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-6.15/drivers/xen/ |
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 …]
|
D | pci.c | 1 // SPDX-License-Identifier: GPL-2.0-only 8 #include <linux/pci.h> 10 #include <linux/pci-acpi.h> 11 #include <xen/pci.h> 18 #include "../pci/pci.h" 32 struct pci_dev *physfn = pci_dev->physfn; in xen_add_device() 47 if (pci_domain_nr(pci_dev->bus) >> 16) { in xen_add_device() 49 * The hypercall interface is limited to 16bit PCI segment in xen_add_device() 54 "not registering with Xen: invalid PCI segment\n"); in xen_add_device() 61 add->seg = pci_domain_nr(pci_dev->bus); in xen_add_device() [all …]
|
/linux-6.15/arch/s390/pci/ |
D | pci_bus.c | 1 // SPDX-License-Identifier: GPL-2.0 20 #include <linux/pci.h> 22 #include <linux/dma-direct.h> 34 /* zpci_bus_prepare_device - Prepare a zPCI function for scanning 37 * The PCI resources for the function are set up and added to its zbus and the 39 * a PCI bus created. If an error occurs the zPCI function is not enabled. 53 if (!zdev->has_resources) { in zpci_bus_prepare_device() 56 if (zdev->bars[i].res) in zpci_bus_prepare_device() 57 pci_bus_add_resource(zdev->zbus->bus, zdev->bars[i].res); in zpci_bus_prepare_device() 64 /* zpci_bus_scan_device - Scan a single device adding it to the PCI core [all …]
|
/linux-6.15/Documentation/devicetree/bindings/pci/ |
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 max-functions: [all …]
|
D | pci.txt | 1 PCI bus bridges have standardized Device Tree bindings: 3 PCI Bus Binding to: IEEE Std 1275-1994 4 https://www.devicetree.org/open-firmware/bindings/pci/pci2_1.pdf 9 https://www.devicetree.org/open-firmware/practice/imap/imap0_9d.pdf 14 - linux,pci-domain: 15 If present this property assigns a fixed PCI domain number to a host bridge, 18 host bridges in the system, otherwise potentially conflicting domain numbers 19 may be assigned to root buses behind different host bridges. The domain 21 - max-link-speed: 22 If present this property specifies PCI gen for link capability. Host [all …]
|
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 …]
|
/linux-6.15/drivers/iommu/ |
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-6.15/arch/x86/pci/ |
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 …]
|
D | acpi.c | 1 // SPDX-License-Identifier: GPL-2.0 3 #define pr_fmt(fmt) "PCI: " fmt 5 #include <linux/pci.h> 11 #include <linux/pci-acpi.h> 43 pr_info("%s detected: ignoring ACPI _SEG\n", id->ident); in set_ignore_seg() 51 id->ident); in set_no_e820() 70 .ident = "ASRock ALiveSATA2-GLAN", 72 DMI_MATCH(DMI_PRODUCT_NAME, "ALiveSATA2-GLAN"), 79 .ident = "ASUS M2V-MX SE", 82 DMI_MATCH(DMI_BOARD_NAME, "M2V-MX SE"), [all …]
|
D | xen.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Xen PCI - handle PCI (INTx) and MSI infrastructure calls for PV, HVM and 4 * initial domain support. We also handle the DSDT _PRT callbacks for GSI's 5 * used in HVM and initial domain mode (PV does not parse ACPI, so it has no 7 * 0xcf8 PCI configuration read/write. 15 #include <linux/pci.h> 26 #include <xen/pci.h> 27 #include <asm/xen/pci.h> 42 dev_warn(&dev->dev, "Xen PCI: failed to read interrupt line: %d\n", in xen_pcifront_enable_irq() 46 /* In PV DomU the Xen PCI backend puts the PIRQ in the interrupt line.*/ in xen_pcifront_enable_irq() [all …]
|
/linux-6.15/drivers/net/ethernet/sun/ |
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-6.15/tools/power/cpupower/utils/helpers/ |
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-6.15/Documentation/translations/zh_CN/PCI/ |
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-6.15/arch/arm64/kernel/ |
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 …]
|