| /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/irqchip/ |
| H A D | irq-msi-lib.c | 1 // SPDX-License-Identifier: GPL-2.0-only 7 #include <linux/irqchip/irq-msi-lib.h> 10 * msi_lib_init_dev_msi_info - Domain info setup for MSI domains 11 * @dev: The device for which the domain is created for 12 * @domain: The domain providing this callback 13 * @real_parent: The real parent domain of the domain to be initialized 14 * which might be a domain built on top of @domain or 15 * @domain itself 16 * @info: The domain info for the domain to be initialize 19 * parent domain and any intermediates. The topmost parent domain specific [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 "../../pci.h" 22 #include "pcie-designware.h" 55 * struct amd_mdb_pcie - PCIe port information 56 * @pci: DesignWare PCIe controller structure 58 * @intx_domain: INTx IRQ domain pointer 59 * @mdb_domain: MDB IRQ domain pointer 64 struct dw_pcie pci; member [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 …]
|
| H A 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 …]
|
| /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/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/pci/endpoint/ |
| H A D | pci-ep-msi.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * PCI Endpoint *Controller* (EPC) MSI library 15 #include <linux/pci-epc.h> 16 #include <linux/pci-epf.h> 17 #include <linux/pci-ep-cfs.h> 18 #include <linux/pci-ep-msi.h> 30 epf = list_first_entry_or_null(&epc->pci_epf, struct pci_epf, list); in pci_epf_write_msi_msg() 32 if (epf && epf->db_msg && desc->msi_index < epf->num_db) in pci_epf_write_msi_msg() 33 memcpy(&epf->db_msg[desc->msi_index].msg, msg, sizeof(*msg)); in pci_epf_write_msi_msg() 40 struct pci_epc *epc = epf->epc; in pci_epf_alloc_doorbell() [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/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/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/arch/riscv/boot/dts/sophgo/ |
| H A D | sg2044-sophgo-srd3-10.dts | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 6 /dts-v1/; 11 model = "Sophgo SG2044 SRD3-10"; 12 compatible = "sophgo,srd3-10", "sophgo,sg2044"; 22 stdout-path = "serial1:115200n8"; 27 clock-frequency = <25000000>; 31 bus-width = <4>; 32 no-sdio; 33 no-sd; 34 non-removable; [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/drivers/iommu/amd/ |
| H A D | amd_iommu_types.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * Copyright (C) 2007-2010 Advanced Micro Devices, Inc. 19 #include <linux/pci.h> 121 * The current driver only support 16-bit PASID. 122 * Currently, hardware only implement upto 16-bit PASID 312 /* Special mode where page-sizes are limited to 4 KiB */ 415 /* global flag if IOMMUs cache non-present entries */ 431 /* IVRS indicates that pre-boot remapping was enabled */ 439 /* Make iterating over all pci segment easier */ 451 /* Making iterating over protection_domain->dev_data_list easier */ [all …]
|
| /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. 15 #include <linux/irqchip/irq-msi-lib.h> 24 #include <linux/pci.h> 25 #include <linux/pci-ecam.h> 28 #include "../pci.h" 95 * struct xilinx_pcie - PCIe port information 100 * @msi_domain: MSI IRQ domain pointer 101 * @leg_domain: Legacy IRQ domain pointer [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
|