projects/linux·commit 80213c03

Merge tag 'pci-v3.18-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci

80213c03 · Linus Torvalds <[email protected]> · 2014-10-09 15:03:49 -04:00

Pull PCI updates from Bjorn Helgaas:
 "The interesting things here are:

   - Turn on Config Request Retry Status Software Visibility.  This
     caused hangs last time, but we included a fix this time.
   - Rework PCI device configuration to use _HPP/_HPX more aggressively
   - Allow PCI devices to be put into D3cold during system suspend
   - Add arm64 PCI support
   - Add APM X-Gene host bridge driver
   - Add TI Keystone host bridge driver
   - Add Xilinx AXI host bridge driver

  More detailed summary:

  Enumeration
    - Check Vendor ID only for Config Request Retry Status (Rajat Jain)
    - Enable Config Request Retry Status when supported (Rajat Jain)
    - Add generic domain handling (Catalin Marinas)
    - Generate uppercase hex for modalias interface class (Ricardo Ribalda Delgado)

  Resource management
    - Add missing MEM_64 mask in pci_assign_unassigned_bridge_resources() (Yinghai Lu)
    - Increase IBM ipr SAS Crocodile BARs to at least system page size (Douglas Lehr)

  PCI device hotplug
    - Prevent NULL dereference during pciehp probe (Andreas Noever)
    - Move _HPP & _HPX handling into core (Bjorn Helgaas)
    - Apply _HPP to PCIe devices as well as PCI (Bjorn Helgaas)
    - Apply _HPP/_HPX to display devices (Bjorn Helgaas)
    - Preserve SERR & PARITY settings when applying _HPP/_HPX (Bjorn Helgaas)
    - Preserve MPS and MRRS settings when applying _HPP/_HPX (Bjorn Helgaas)
    - Apply _HPP/_HPX to all devices, not just hot-added ones (Bjorn Helgaas)
    - Fix wait time in pciehp timeout message (Yinghai Lu)
    - Add more pciehp Slot Control debug output (Yinghai Lu)
    - Stop disabling pciehp notifications during init (Yinghai Lu)

  MSI
    - Remove arch_msi_check_device() (Alexander Gordeev)
    - Rename pci_msi_check_device() to pci_msi_supported() (Alexander Gordeev)
    - Move D0 check into pci_msi_check_device() (Alexander Gordeev)
    - Remove unused kobject from struct msi_desc (Yijing Wang)
    - Remove "pos" from the struct msi_desc msi_attrib (Yijing Wang)
    - Add "msi_bus" sysfs MSI/MSI-X control for endpoints (Yijing Wang)
    - Use __get_cached_msi_msg() instead of get_cached_msi_msg() (Yijing Wang)
    - Use __read_msi_msg() instead of read_msi_msg() (Yijing Wang)
    - Use __write_msi_msg() instead of write_msi_msg() (Yijing Wang)

  Power management
    - Drop unused runtime PM support code for PCIe ports (Rafael J.  Wysocki)
    - Allow PCI devices to be put into D3cold during system suspend (Rafael J. Wysocki)

  AER
    - Add additional AER error strings (Gong Chen)
    - Make <linux/aer.h> standalone includable (Thierry Reding)

  Virtualization
    - Add ACS quirk for Solarflare SFC9120 & SFC9140 (Alex Williamson)
    - Add ACS quirk for Intel 10G NICs (Alex Williamson)
    - Add ACS quirk for AMD A88X southbridge (Marti Raudsepp)
    - Remove unused pci_find_upstream_pcie_bridge(), pci_get_dma_source() (Alex Williamson)
    - Add device flag helpers (Ethan Zhao)
    - Assume all Mellanox devices have broken INTx masking (Gavin Shan)

  Generic host bridge driver
    - Fix ioport_map() for !CONFIG_GENERIC_IOMAP (Liviu Dudau)
    - Add pci_register_io_range() and pci_pio_to_address() (Liviu Dudau)
    - Define PCI_IOBASE as the base of virtual PCI IO space (Liviu Dudau)
    - Fix the conversion of IO ranges into IO resources (Liviu Dudau)
    - Add pci_get_new_domain_nr() and of_get_pci_domain_nr() (Liviu Dudau)
    - Add support for parsing PCI host bridge resources from DT (Liviu Dudau)
    - Add pci_remap_iospace() to map bus I/O resources (Liviu Dudau)
    - Add arm64 architectural support for PCI (Liviu Dudau)

  APM X-Gene
    - Add APM X-Gene PCIe driver (Tanmay Inamdar)
    - Add arm64 DT APM X-Gene PCIe device tree nodes (Tanmay Inamdar)

  Freescale i.MX6
    - Probe in module_init(), not fs_initcall() (Lucas Stach)
    - Delay enabling reference clock for SS until it stabilizes (Tim Harvey)

  Marvell MVEBU
    - Fix uninitialized variable in mvebu_get_tgt_attr() (Thomas Petazzoni)

  NVIDIA Tegra
    - Make sure the PCIe PLL is really reset (Eric Yuen)
    - Add error path tegra_msi_teardown_irq() cleanup (Jisheng Zhang)
    - Fix extended configuration space mapping (Peter Daifuku)
    - Implement resource hierarchy (Thierry Reding)
    - Clear CLKREQ# enable on port disable (Thierry Reding)
    - Add Tegra124 support (Thierry Reding)

  ST Microelectronics SPEAr13xx
    - Pass config resource through reg property (Pratyush Anand)

  Synopsys DesignWare
    - Use NULL instead of false (Fabio Estevam)
    - Parse bus-range property from devicetree (Lucas Stach)
    - Use pci_create_root_bus() instead of pci_scan_root_bus() (Lucas Stach)
    - Remove pci_assign_unassigned_resources() (Lucas Stach)
    - Check private_data validity in single place (Lucas Stach)
    - Setup and clear exactly one MSI at a time (Lucas Stach)
    - Remove open-coded bitmap operations (Lucas Stach)
    - Fix configuration base address when using 'reg' (Minghuan Lian)
    - Fix IO resource end address calculation (Minghuan Lian)
    - Rename get_msi_data() to get_msi_addr() (Minghuan Lian)
    - Add get_msi_data() to pcie_host_ops (Minghuan Lian)
    - Add support for v3.65 hardware (Murali Karicheri)
    - Fold struct pcie_port_info into struct pcie_port (Pratyush Anand)

  TI Keystone
    - Add TI Keystone PCIe driver (Murali Karicheri)
    - Limit MRSS for all downstream devices (Murali Karicheri)
    - Assume controller is already in RC mode (Murali Karicheri)
    - Set device ID based on SoC to support multiple ports (Murali Karicheri)

  Xilinx AXI
    - Add Xilinx AXI PCIe driver (Srikanth Thokala)
    - Fix xilinx_pcie_assign_msi() return value test (Dan Carpenter)

  Miscellaneous
    - Clean up whitespace (Quentin Lambert)
    - Remove assignments from "if" conditions (Quentin Lambert)
    - Move PCI_VENDOR_ID_VMWARE to pci_ids.h (Francesco Ruggeri)
    - x86: Mark DMI tables as initialization data (Mathias Krause)
    - x86: Move __init annotation to the correct place (Mathias Krause)
    - x86: Mark constants of pci_mmcfg_nvidia_mcp55() as __initconst (Mathias Krause)
    - x86: Constify pci_mmcfg_probes[] array (Mathias Krause)
    - x86: Mark PCI BIOS initialization code as such (Mathias Krause)
    - Parenthesize PCI_DEVID and PCI_VPD_LRDT_ID parameters (Megan Kamiya)
    - Remove unnecessary variable in pci_add_dynid() (Tobias Klauser)"

* tag 'pci-v3.18-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (109 commits)
  arm64: dts: Add APM X-Gene PCIe device tree nodes
  PCI: Add ACS quirk for AMD A88X southbridge devices
  PCI: xgene: Add APM X-Gene PCIe driver
  PCI: designware: Remove open-coded bitmap operations
  PCI/MSI: Remove unnecessary temporary variable
  PCI/MSI: Use __write_msi_msg() instead of write_msi_msg()
  MSI/powerpc: Use __read_msi_msg() instead of read_msi_msg()
  PCI/MSI: Use __get_cached_msi_msg() instead of get_cached_msi_msg()
  PCI/MSI: Add "msi_bus" sysfs MSI/MSI-X control for endpoints
  PCI/MSI: Remove "pos" from the struct msi_desc msi_attrib
  PCI/MSI: Remove unused kobject from struct msi_desc
  PCI/MSI: Rename pci_msi_check_device() to pci_msi_supported()
  PCI/MSI: Move D0 check into pci_msi_check_device()
  PCI/MSI: Remove arch_msi_check_device()
  irqchip: armada-370-xp: Remove arch_msi_check_device()
  PCI/MSI/PPC: Remove arch_msi_check_device()
  arm64: Add architectural support for PCI
  PCI: Add pci_remap_iospace() to map bus I/O resources
  of/pci: Add support for parsing PCI host bridge resources from DT
  of/pci: Add pci_get_new_domain_nr() and of_get_pci_domain_nr()
  ...

Conflicts:
	arch/arm64/boot/dts/apm-storm.dtsi
Commit
80213c03c4151d900cf293ef0fc51f8d88495e14
Parents
ea584595 · f92d9ee3

Merge commit. Changes below are compared with the first parent: ea584595.

Changes

111 files changed · +4911 −1333

FileStatusAddDelContent
Documentation/ABI/testing/sysfs-bus-pcimodified+10−0View file
Documentation/devicetree/bindings/pci/designware-pcie.txtmodified+3−0View file
Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txtmodified+24−1View file
Documentation/devicetree/bindings/pci/pci-keystone.txtadded+63−0View file
Documentation/devicetree/bindings/pci/xgene-pci.txtadded+57−0View file
Documentation/devicetree/bindings/pci/xilinx-pcie.txtadded+62−0View file
Documentation/driver-model/devres.txtmodified+2−0View file
MAINTAINERSmodified+15−0View file
arch/arm/boot/dts/spear1310.dtsimodified+9−9View file
arch/arm/boot/dts/spear1340.dtsimodified+3−3View file
arch/arm/include/asm/io.hmodified+1−0View file
arch/arm/mach-integrator/pci_v3.cmodified+12−11View file
arch/arm64/Kconfigmodified+21−1View file
arch/arm64/boot/dts/apm-mustang.dtsmodified+8−0View file
arch/arm64/boot/dts/apm-storm.dtsimodified+165−0View file
arch/arm64/include/asm/Kbuildmodified+1−0View file
arch/arm64/include/asm/io.hmodified+2−1View file
arch/arm64/include/asm/pci.hadded+37−0View file
arch/arm64/include/asm/pgtable.hmodified+2−0View file
arch/arm64/kernel/Makefilemodified+1−0View file
arch/arm64/kernel/pci.cadded+70−0View file
arch/ia64/kernel/msi_ia64.cmodified+1−1View file
arch/ia64/sn/kernel/msi_sn.cmodified+2−2View file
arch/mips/pci/msi-octeon.cmodified+2−4View file
arch/powerpc/include/asm/machdep.hmodified+0−2View file
arch/powerpc/kernel/msi.cmodified+1−11View file
arch/powerpc/platforms/cell/axon_msi.cmodified+0−9View file
arch/powerpc/platforms/powernv/pci.cmodified+5−14View file
arch/powerpc/platforms/pseries/msi.cmodified+17−27View file
arch/powerpc/sysdev/fsl_msi.cmodified+3−9View file
arch/powerpc/sysdev/mpic_pasemi_msi.cmodified+2−9View file
arch/powerpc/sysdev/mpic_u3msi.cmodified+11−17View file
arch/powerpc/sysdev/ppc4xx_hsta_msi.cmodified+6−12View file
arch/powerpc/sysdev/ppc4xx_msi.cmodified+6−13View file
arch/x86/pci/common.cmodified+10−10View file
arch/x86/pci/mmconfig-shared.cmodified+22−18View file
arch/x86/pci/pcbios.cmodified+4−4View file
drivers/gpu/drm/vmwgfx/svga_reg.hmodified+0−1View file
drivers/irqchip/irq-armada-370-xp.cmodified+4−10View file
drivers/misc/vmw_vmci/vmci_guest.cmodified+0−1View file
drivers/net/vmxnet3/vmxnet3_int.hmodified+0−1View file
drivers/of/address.cmodified+154−0View file
drivers/of/of_pci.cmodified+142−0View file
drivers/pci/host/Kconfigmodified+28−0View file
drivers/pci/host/Makefilemodified+3−0View file
drivers/pci/host/pci-imx6.cmodified+7−6View file
drivers/pci/host/pci-keystone-dw.cadded+516−0View file
drivers/pci/host/pci-keystone.cadded+415−0View file
drivers/pci/host/pci-keystone.hadded+58−0View file
drivers/pci/host/pci-mvebu.cmodified+3−3View file
drivers/pci/host/pci-tegra.cmodified+237−40View file
drivers/pci/host/pci-xgene.cadded+659−0View file
drivers/pci/host/pcie-designware.cmodified+100−168View file
drivers/pci/host/pcie-designware.hmodified+11−11View file
drivers/pci/host/pcie-rcar.cmodified+15−6View file
drivers/pci/host/pcie-spear13xx.cmodified+1−1View file
drivers/pci/host/pcie-xilinx.cadded+970−0View file
drivers/pci/hotplug/Makefilemodified+1−1View file
drivers/pci/hotplug/acpi_pcihp.cmodified+2−252View file
drivers/pci/hotplug/acpiphp_glue.cmodified+1−10View file
drivers/pci/hotplug/acpiphp_ibm.cmodified+1−1View file
drivers/pci/hotplug/cpci_hotplug_core.cmodified+8−5View file
drivers/pci/hotplug/cpcihp_generic.cmodified+14−14View file
drivers/pci/hotplug/cpcihp_zt5550.cmodified+22−22View file
drivers/pci/hotplug/cpqphp.hmodified+1−1View file
drivers/pci/hotplug/cpqphp_core.cmodified+1−2View file
drivers/pci/hotplug/cpqphp_ctrl.cmodified+7−12View file
drivers/pci/hotplug/cpqphp_nvram.cmodified+5−8View file
drivers/pci/hotplug/ibmphp_core.cmodified+11−8View file
drivers/pci/hotplug/ibmphp_ebda.cmodified+1−2View file
drivers/pci/hotplug/ibmphp_hpc.cmodified+1−2View file
drivers/pci/hotplug/ibmphp_pci.cmodified+4−2View file
drivers/pci/hotplug/ibmphp_res.cmodified+31−14View file
drivers/pci/hotplug/pciehp.hmodified+1−1View file
drivers/pci/hotplug/pciehp_core.cmodified+7−0View file
drivers/pci/hotplug/pciehp_hpc.cmodified+11−6View file
drivers/pci/hotplug/pciehp_pci.cmodified+1−8View file
drivers/pci/hotplug/pcihp_slot.cdeleted+0−176View before deletion
drivers/pci/hotplug/shpchp_ctrl.cmodified+9−5View file
drivers/pci/hotplug/shpchp_hpc.cmodified+3−2View file
drivers/pci/hotplug/shpchp_pci.cmodified+1−7View file
drivers/pci/iov.cmodified+1−1View file
drivers/pci/msi.cmodified+18−57View file
drivers/pci/pci-acpi.cmodified+262−14View file
drivers/pci/pci-driver.cmodified+1−4View file
drivers/pci/pci-sysfs.cmodified+20−21View file
drivers/pci/pci.cmodified+50−7View file
drivers/pci/pcie/aer/aerdrv_errprint.cmodified+9−2View file
drivers/pci/pcie/portdrv_pci.cmodified+0−74View file
drivers/pci/probe.cmodified+162−5View file
drivers/pci/quirks.cmodified+68−51View file
drivers/pci/search.cmodified+0−34View file
drivers/pci/setup-bus.cmodified+1−1View file
drivers/scsi/vmw_pvscsi.hmodified+0−1View file
drivers/vfio/pci/vfio_pci_config.cmodified+1−1View file
drivers/xen/xen-pciback/pci_stub.cmodified+2−2View file
include/asm-generic/io.hmodified+1−1View file
include/asm-generic/pgtable.hmodified+4−0View file
include/linux/aer.hmodified+2−0View file
include/linux/ioport.hmodified+5−0View file
include/linux/msi.hmodified+0−6View file
include/linux/of_address.hmodified+16−11View file
include/linux/of_pci.hmodified+13−0View file
include/linux/pci.hmodified+42−18View file
include/linux/pci_hotplug.hmodified+0−2View file
include/linux/pci_ids.hmodified+2−0View file
include/ras/ras_event.hmodified+29−19View file
include/uapi/linux/pci_regs.hmodified+2−1View file
kernel/resource.cmodified+70−0View file
virt/kvm/assigned-dev.cmodified+1−1View file
virt/kvm/iommu.cmodified+2−2View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/ABI/testing/sysfs-bus-pci

View file
diff --git a/Documentation/ABI/testing/sysfs-bus-pci b/Documentation/ABI/testing/sysfs-bus-pci
index 6615fda..ee6c040 100644
--- a/Documentation/ABI/testing/sysfs-bus-pci
+++ b/Documentation/ABI/testing/sysfs-bus-pci
@@ -65,6 +65,16 @@ Description:
force a rescan of all PCI buses in the system, and
re-discover previously removed devices.
+What: /sys/bus/pci/devices/.../msi_bus
+Date: September 2014
+Contact: Linux PCI developers <[email protected]>
+Description:
+ Writing a zero value to this attribute disallows MSI and
+ MSI-X for any future drivers of the device. If the device
+ is a bridge, MSI and MSI-X will be disallowed for future
+ drivers of all child devices under the bridge. Drivers
+ must be reloaded for the new setting to take effect.
+
What: /sys/bus/pci/devices/.../msi_irqs/
Date: September, 2011
Contact: Neil Horman <[email protected]>

Documentation/devicetree/bindings/pci/designware-pcie.txt

View file
diff --git a/Documentation/devicetree/bindings/pci/designware-pcie.txt b/Documentation/devicetree/bindings/pci/designware-pcie.txt
index ed0d9b9..9f4faa8 100644
--- a/Documentation/devicetree/bindings/pci/designware-pcie.txt
+++ b/Documentation/devicetree/bindings/pci/designware-pcie.txt
@@ -23,3 +23,6 @@ Required properties:
Optional properties:
- reset-gpio: gpio pin number of power good signal
+- bus-range: PCI bus numbers covered (it is recommended for new devicetrees to
+ specify this property, to keep backwards compatibility a range of 0x00-0xff
+ is assumed if not present)

Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt

View file
diff --git a/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt
index 0823362..d763e04 100644
--- a/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt
+++ b/Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt
@@ -1,7 +1,10 @@
NVIDIA Tegra PCIe controller
Required properties:
-- compatible: "nvidia,tegra20-pcie" or "nvidia,tegra30-pcie"
+- compatible: Must be one of:
+ - "nvidia,tegra20-pcie"
+ - "nvidia,tegra30-pcie"
+ - "nvidia,tegra124-pcie"
- device_type: Must be "pci"
- reg: A list of physical base address and length for each set of controller
registers. Must contain an entry for each entry in the reg-names property.
@@ -57,6 +60,11 @@ Required properties:
- afi
- pcie_x
+Required properties on Tegra124 and later:
+- phys: Must contain an entry for each entry in phy-names.
+- phy-names: Must include the following entries:
+ - pcie
+
Power supplies for Tegra20:
- avdd-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V.
- vdd-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
@@ -84,6 +92,21 @@ Power supplies for Tegra30:
- avdd-pexb-supply: Power supply for analog PCIe logic. Must supply 1.05 V.
- vdd-pexb-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
+Power supplies for Tegra124:
+- Required:
+ - avddio-pex-supply: Power supply for analog PCIe logic. Must supply 1.05 V.
+ - dvddio-pex-supply: Power supply for digital PCIe I/O. Must supply 1.05 V.
+ - avdd-pex-pll-supply: Power supply for dedicated (internal) PCIe PLL. Must
+ supply 1.05 V.
+ - hvdd-pex-supply: High-voltage supply for PCIe I/O and PCIe output clocks.
+ Must supply 3.3 V.
+ - hvdd-pex-pll-e-supply: High-voltage supply for PLLE (shared with USB3).
+ Must supply 3.3 V.
+ - vddio-pex-ctl-supply: Power supply for PCIe control I/O partition. Must
+ supply 2.8-3.3 V.
+ - avdd-pll-erefe-supply: Power supply for PLLE (shared with USB3). Must
+ supply 1.05 V.
+
Root ports are defined as subnodes of the PCIe controller node.
Required properties:

Documentation/devicetree/bindings/pci/pci-keystone.txt

View file
diff --git a/Documentation/devicetree/bindings/pci/pci-keystone.txt b/Documentation/devicetree/bindings/pci/pci-keystone.txt
new file mode 100644
index 0000000..54eae29
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/pci-keystone.txt
@@ -0,0 +1,63 @@
+TI Keystone PCIe interface
+
+Keystone PCI host Controller is based on Designware PCI h/w version 3.65.
+It shares common functions with PCIe Designware core driver and inherit
+common properties defined in
+Documentation/devicetree/bindings/pci/designware-pci.txt
+
+Please refer to Documentation/devicetree/bindings/pci/designware-pci.txt
+for the details of Designware DT bindings. Additional properties are
+described here as well as properties that are not applicable.
+
+Required Properties:-
+
+compatibility: "ti,keystone-pcie"
+reg: index 1 is the base address and length of DW application registers.
+ index 2 is the base address and length of PCI device ID register.
+
+pcie_msi_intc : Interrupt controller device node for MSI IRQ chip
+ interrupt-cells: should be set to 1
+ interrupt-parent: Parent interrupt controller phandle
+ interrupts: GIC interrupt lines connected to PCI MSI interrupt lines
+
+ Example:
+ pcie_msi_intc: msi-interrupt-controller {
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ interrupt-parent = <&gic>;
+ interrupts = <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>;
+ };
+
+pcie_intc: Interrupt controller device node for Legacy IRQ chip
+ interrupt-cells: should be set to 1
+ interrupt-parent: Parent interrupt controller phandle
+ interrupts: GIC interrupt lines connected to PCI Legacy interrupt lines
+
+ Example:
+ pcie_intc: legacy-interrupt-controller {
+ interrupt-controller;
+ #interrupt-cells = <1>;
+ interrupt-parent = <&gic>;
+ interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 28 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 29 IRQ_TYPE_EDGE_RISING>;
+ };
+
+Optional properties:-
+ phys: phandle to Generic Keystone SerDes phy for PCI
+ phy-names: name of the Generic Keystine SerDes phy for PCI
+ - If boot loader already does PCI link establishment, then phys and
+ phy-names shouldn't be present.
+
+Designware DT Properties not applicable for Keystone PCI
+
+1. pcie_bus clock-names not used. Instead, a phandle to phys is used.
+

Documentation/devicetree/bindings/pci/xgene-pci.txt

View file
diff --git a/Documentation/devicetree/bindings/pci/xgene-pci.txt b/Documentation/devicetree/bindings/pci/xgene-pci.txt
new file mode 100644
index 0000000..1070b06
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/xgene-pci.txt
@@ -0,0 +1,57 @@
+* AppliedMicro X-Gene PCIe interface
+
+Required properties:
+- device_type: set to "pci"
+- compatible: should contain "apm,xgene-pcie" to identify the core.
+- reg: A list of physical base address and length for each set of controller
+ registers. Must contain an entry for each entry in the reg-names
+ property.
+- reg-names: Must include the following entries:
+ "csr": controller configuration registers.
+ "cfg": pcie configuration space registers.
+- #address-cells: set to <3>
+- #size-cells: set to <2>
+- ranges: ranges for the outbound memory, I/O regions.
+- dma-ranges: ranges for the inbound memory regions.
+- #interrupt-cells: set to <1>
+- interrupt-map-mask and interrupt-map: standard PCI properties
+ to define the mapping of the PCIe interface to interrupt
+ numbers.
+- clocks: from common clock binding: handle to pci clock.
+
+Optional properties:
+- status: Either "ok" or "disabled".
+- dma-coherent: Present if dma operations are coherent
+
+Example:
+
+SoC specific DT Entry:
+
+ pcie0: pcie@1f2b0000 {
+ status = "disabled";
+ device_type = "pci";
+ compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
+ #interrupt-cells = <1>;
+ #size-cells = <2>;
+ #address-cells = <3>;
+ reg = < 0x00 0x1f2b0000 0x0 0x00010000 /* Controller registers */
+ 0xe0 0xd0000000 0x0 0x00040000>; /* PCI config space */
+ reg-names = "csr", "cfg";
+ ranges = <0x01000000 0x00 0x00000000 0xe0 0x10000000 0x00 0x00010000 /* io */
+ 0x02000000 0x00 0x80000000 0xe1 0x80000000 0x00 0x80000000>; /* mem */
+ dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
+ 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
+ interrupt-map-mask = <0x0 0x0 0x0 0x7>;
+ interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x1
+ 0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x1
+ 0x0 0x0 0x0 0x3 &gic 0x0 0xc4 0x1
+ 0x0 0x0 0x0 0x4 &gic 0x0 0xc5 0x1>;
+ dma-coherent;
+ clocks = <&pcie0clk 0>;
+ };
+
+
+Board specific DT Entry:
+ &pcie0 {
+ status = "ok";
+ };

Documentation/devicetree/bindings/pci/xilinx-pcie.txt

View file
diff --git a/Documentation/devicetree/bindings/pci/xilinx-pcie.txt b/Documentation/devicetree/bindings/pci/xilinx-pcie.txt
new file mode 100644
index 0000000..3e2c88d
--- /dev/null
+++ b/Documentation/devicetree/bindings/pci/xilinx-pcie.txt
@@ -0,0 +1,62 @@
+* Xilinx AXI PCIe Root Port Bridge DT description
+
+Required properties:
+- #address-cells: Address representation for root ports, set to <3>
+- #size-cells: Size representation for root ports, set to <2>
+- #interrupt-cells: specifies the number of cells needed to encode an
+ interrupt source. The value must be 1.
+- compatible: Should contain "xlnx,axi-pcie-host-1.00.a"
+- reg: Should contain AXI PCIe registers location and length
+- device_type: must be "pci"
+- interrupts: Should contain AXI PCIe interrupt
+- interrupt-map-mask,
+ interrupt-map: standard PCI properties to define the mapping of the
+ PCI interface to interrupt numbers.
+- ranges: ranges for the PCI memory regions (I/O space region is not
+ supported by hardware)
+ Please refer to the standard PCI bus binding document for a more
+ detailed explanation
+
+Optional properties:
+- bus-range: PCI bus numbers covered
+
+Interrupt controller child node
++++++++++++++++++++++++++++++++
+Required properties:
+- interrupt-controller: identifies the node as an interrupt controller
+- #address-cells: specifies the number of cells needed to encode an
+ address. The value must be 0.
+- #interrupt-cells: specifies the number of cells needed to encode an
+ interrupt source. The value must be 1.
+
+NOTE:
+The core provides a single interrupt for both INTx/MSI messages. So,
+created a interrupt controller node to support 'interrupt-map' DT
+functionality. The driver will create an IRQ domain for this map, decode
+the four INTx interrupts in ISR and route them to this domain.
+
+
+Example:
+++++++++
+
+ pci_express: axi-pcie@50000000 {
+ #address-cells = <3>;
+ #size-cells = <2>;
+ #interrupt-cells = <1>;
+ compatible = "xlnx,axi-pcie-host-1.00.a";
+ reg = < 0x50000000 0x10000000 >;
+ device_type = "pci";
+ interrupts = < 0 52 4 >;
+ interrupt-map-mask = <0 0 0 7>;
+ interrupt-map = <0 0 0 1 &pcie_intc 1>,
+ <0 0 0 2 &pcie_intc 2>,
+ <0 0 0 3 &pcie_intc 3>,
+ <0 0 0 4 &pcie_intc 4>;
+ ranges = < 0x02000000 0 0x60000000 0x60000000 0 0x10000000 >;
+
+ pcie_intc: interrupt-controller {
+ interrupt-controller;
+ #address-cells = <0>;
+ #interrupt-cells = <1>;
+ }
+ };

Documentation/driver-model/devres.txt

View file
diff --git a/Documentation/driver-model/devres.txt b/Documentation/driver-model/devres.txt
index 4067744..b5ab416 100644
--- a/Documentation/driver-model/devres.txt
+++ b/Documentation/driver-model/devres.txt
@@ -264,8 +264,10 @@ IIO
IO region
devm_release_mem_region()
devm_release_region()
+ devm_release_resource()
devm_request_mem_region()
devm_request_region()
+ devm_request_resource()
IOMAP
devm_ioport_map()

MAINTAINERS

View file
diff --git a/MAINTAINERS b/MAINTAINERS
index 0b23084..75b98b4 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -6939,6 +6939,14 @@ F: include/linux/pci*
F: arch/x86/pci/
F: arch/x86/kernel/quirks.c
+PCI DRIVER FOR APPLIEDMICRO XGENE
+M: Tanmay Inamdar <[email protected]>
+S: Maintained
+F: Documentation/devicetree/bindings/pci/xgene-pci.txt
+F: drivers/pci/host/pci-xgene.c
+
PCI DRIVER FOR IMX6
M: Richard Zhu <[email protected]>
M: Lucas Stach <[email protected]>
@@ -6947,6 +6955,13 @@ L: [email protected] (moderated for non-subscribers)
S: Maintained
F: drivers/pci/host/*imx6*
+PCI DRIVER FOR TI KEYSTONE
+M: Murali Karicheri <[email protected]>
+L: [email protected] (moderated for non-subscribers)
+S: Maintained
+F: drivers/pci/host/*keystone*
+
PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
M: Thomas Petazzoni <[email protected]>
M: Jason Cooper <[email protected]>

arch/arm/boot/dts/spear1310.dtsi

View file
diff --git a/arch/arm/boot/dts/spear1310.dtsi b/arch/arm/boot/dts/spear1310.dtsi
index fa5f2bb..9d34292 100644
--- a/arch/arm/boot/dts/spear1310.dtsi
+++ b/arch/arm/boot/dts/spear1310.dtsi
@@ -85,7 +85,8 @@
pcie0: pcie@b1000000 {
compatible = "st,spear1340-pcie", "snps,dw-pcie";
- reg = <0xb1000000 0x4000>;
+ reg = <0xb1000000 0x4000>, <0x80000000 0x20000>;
+ reg-names = "dbi", "config";
interrupts = <0 68 0x4>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0x0 0 &gic 0 68 0x4>;
@@ -95,15 +96,15 @@
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
- ranges = <0x00000800 0 0x80000000 0x80000000 0 0x00020000 /* configuration space */
- 0x81000000 0 0 0x80020000 0 0x00010000 /* downstream I/O */
+ ranges = <0x81000000 0 0 0x80020000 0 0x00010000 /* downstream I/O */
0x82000000 0 0x80030000 0xc0030000 0 0x0ffd0000>; /* non-prefetchable memory */
status = "disabled";
};
pcie1: pcie@b1800000 {
compatible = "st,spear1340-pcie", "snps,dw-pcie";
- reg = <0xb1800000 0x4000>;
+ reg = <0xb1800000 0x4000>, <0x90000000 0x20000>;
+ reg-names = "dbi", "config";
interrupts = <0 69 0x4>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0x0 0 &gic 0 69 0x4>;
@@ -113,15 +114,15 @@
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
- ranges = <0x00000800 0 0x90000000 0x90000000 0 0x00020000 /* configuration space */
- 0x81000000 0 0 0x90020000 0 0x00010000 /* downstream I/O */
+ ranges = <0x81000000 0 0 0x90020000 0 0x00010000 /* downstream I/O */
0x82000000 0 0x90030000 0x90030000 0 0x0ffd0000>; /* non-prefetchable memory */
status = "disabled";
};
pcie2: pcie@b4000000 {
compatible = "st,spear1340-pcie", "snps,dw-pcie";
- reg = <0xb4000000 0x4000>;
+ reg = <0xb4000000 0x4000>, <0xc0000000 0x20000>;
+ reg-names = "dbi", "config";
interrupts = <0 70 0x4>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0x0 0 &gic 0 70 0x4>;
@@ -131,8 +132,7 @@
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
- ranges = <0x00000800 0 0xc0000000 0xc0000000 0 0x00020000 /* configuration space */
- 0x81000000 0 0 0xc0020000 0 0x00010000 /* downstream I/O */
+ ranges = <0x81000000 0 0 0xc0020000 0 0x00010000 /* downstream I/O */
0x82000000 0 0xc0030000 0xc0030000 0 0x0ffd0000>; /* non-prefetchable memory */
status = "disabled";
};

arch/arm/boot/dts/spear1340.dtsi

View file
diff --git a/arch/arm/boot/dts/spear1340.dtsi b/arch/arm/boot/dts/spear1340.dtsi
index e71df0f..13e1aa3 100644
--- a/arch/arm/boot/dts/spear1340.dtsi
+++ b/arch/arm/boot/dts/spear1340.dtsi
@@ -50,7 +50,8 @@
pcie0: pcie@b1000000 {
compatible = "st,spear1340-pcie", "snps,dw-pcie";
- reg = <0xb1000000 0x4000>;
+ reg = <0xb1000000 0x4000>, <0x80000000 0x20000>;
+ reg-names = "dbi", "config";
interrupts = <0 68 0x4>;
interrupt-map-mask = <0 0 0 0>;
interrupt-map = <0x0 0 &gic 0 68 0x4>;
@@ -60,8 +61,7 @@
#address-cells = <3>;
#size-cells = <2>;
device_type = "pci";
- ranges = <0x00000800 0 0x80000000 0x80000000 0 0x00020000 /* configuration space */
- 0x81000000 0 0 0x80020000 0 0x00010000 /* downstream I/O */
+ ranges = <0x81000000 0 0 0x80020000 0 0x00010000 /* downstream I/O */
0x82000000 0 0x80030000 0xc0030000 0 0x0ffd0000>; /* non-prefetchable memory */
status = "disabled";
};

arch/arm/include/asm/io.h

View file
diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h
index 3d23418..1805674 100644
--- a/arch/arm/include/asm/io.h
+++ b/arch/arm/include/asm/io.h
@@ -178,6 +178,7 @@ static inline void __iomem *__typesafe_io(unsigned long addr)
/* PCI fixed i/o mapping */
#define PCI_IO_VIRT_BASE 0xfee00000
+#define PCI_IOBASE ((void __iomem *)PCI_IO_VIRT_BASE)
#if defined(CONFIG_PCI)
void pci_ioremap_set_mem_type(int mem_type);

arch/arm/mach-integrator/pci_v3.c

View file
diff --git a/arch/arm/mach-integrator/pci_v3.c b/arch/arm/mach-integrator/pci_v3.c
index 05e1f73..c186a17 100644
--- a/arch/arm/mach-integrator/pci_v3.c
+++ b/arch/arm/mach-integrator/pci_v3.c
@@ -660,6 +660,7 @@ static void __init pci_v3_preinit(void)
{
unsigned long flags;
unsigned int temp;
+ phys_addr_t io_address = pci_pio_to_address(io_mem.start);
pcibios_min_mem = 0x00100000;
@@ -701,7 +702,7 @@ static void __init pci_v3_preinit(void)
/*
* Setup window 2 - PCI IO
*/
- v3_writel(V3_LB_BASE2, v3_addr_to_lb_base2(io_mem.start) |
+ v3_writel(V3_LB_BASE2, v3_addr_to_lb_base2(io_address) |
V3_LB_BASE_ENABLE);
v3_writew(V3_LB_MAP2, v3_addr_to_lb_map2(0));
@@ -742,6 +743,7 @@ static void __init pci_v3_preinit(void)
static void __init pci_v3_postinit(void)
{
unsigned int pci_cmd;
+ phys_addr_t io_address = pci_pio_to_address(io_mem.start);
pci_cmd = PCI_COMMAND_MEMORY |
PCI_COMMAND_MASTER | PCI_COMMAND_INVALIDATE;
@@ -758,7 +760,7 @@ static void __init pci_v3_postinit(void)
"interrupt: %d\n", ret);
#endif
- register_isa_ports(non_mem.start, io_mem.start, 0);
+ register_isa_ports(non_mem.start, io_address, 0);
}
/*
@@ -867,33 +869,32 @@ static int __init pci_v3_probe(struct platform_device *pdev)
for_each_of_pci_range(&parser, &range) {
if (!range.flags) {
- of_pci_range_to_resource(&range, np, &conf_mem);
+ ret = of_pci_range_to_resource(&range, np, &conf_mem);
conf_mem.name = "PCIv3 config";
}
if (range.flags & IORESOURCE_IO) {
- of_pci_range_to_resource(&range, np, &io_mem);
+ ret = of_pci_range_to_resource(&range, np, &io_mem);
io_mem.name = "PCIv3 I/O";
}
if ((range.flags & IORESOURCE_MEM) &&
!(range.flags & IORESOURCE_PREFETCH)) {
non_mem_pci = range.pci_addr;
non_mem_pci_sz = range.size;
- of_pci_range_to_resource(&range, np, &non_mem);
+ ret = of_pci_range_to_resource(&range, np, &non_mem);
non_mem.name = "PCIv3 non-prefetched mem";
}
if ((range.flags & IORESOURCE_MEM) &&
(range.flags & IORESOURCE_PREFETCH)) {
pre_mem_pci = range.pci_addr;
pre_mem_pci_sz = range.size;
- of_pci_range_to_resource(&range, np, &pre_mem);
+ ret = of_pci_range_to_resource(&range, np, &pre_mem);
pre_mem.name = "PCIv3 prefetched mem";
}
- }
- if (!conf_mem.start || !io_mem.start ||
- !non_mem.start || !pre_mem.start) {
- dev_err(&pdev->dev, "missing ranges in device node\n");
- return -EINVAL;
+ if (ret < 0) {
+ dev_err(&pdev->dev, "missing ranges in device node\n");
+ return ret;
+ }
}
pci_v3.map_irq = of_irq_parse_and_map_pci;

arch/arm64/Kconfig

View file
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 9746dc2..3f0e854 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -83,7 +83,7 @@ config MMU
def_bool y
config NO_IOPORT_MAP
- def_bool y
+ def_bool y if !PCI
config STACKTRACE_SUPPORT
def_bool y
@@ -163,6 +163,26 @@ menu "Bus support"
config ARM_AMBA
bool
+config PCI
+ bool "PCI support"
+ help
+ This feature enables support for PCI bus system. If you say Y
+ here, the kernel will include drivers and infrastructure code
+ to support PCI bus devices.
+
+config PCI_DOMAINS
+ def_bool PCI
+
+config PCI_DOMAINS_GENERIC
+ def_bool PCI
+
+config PCI_SYSCALL
+ def_bool PCI
+
+source "drivers/pci/Kconfig"
+source "drivers/pci/pcie/Kconfig"
+source "drivers/pci/hotplug/Kconfig"
+
endmenu
menu "Kernel Features"

arch/arm64/boot/dts/apm-mustang.dts

View file
diff --git a/arch/arm64/boot/dts/apm-mustang.dts b/arch/arm64/boot/dts/apm-mustang.dts
index b2f5622..f649000 100644
--- a/arch/arm64/boot/dts/apm-mustang.dts
+++ b/arch/arm64/boot/dts/apm-mustang.dts
@@ -25,6 +25,14 @@
};
};
+&pcie0clk {
+ status = "ok";
+};
+
+&pcie0 {
+ status = "ok";
+};
+
&serial0 {
status = "ok";
};

arch/arm64/boot/dts/apm-storm.dtsi

View file
diff --git a/arch/arm64/boot/dts/apm-storm.dtsi b/arch/arm64/boot/dts/apm-storm.dtsi
index f391972..4f6d04d 100644
--- a/arch/arm64/boot/dts/apm-storm.dtsi
+++ b/arch/arm64/boot/dts/apm-storm.dtsi
@@ -282,6 +282,171 @@
enable-mask = <0x10>;
clock-output-names = "rngpkaclk";
};
+
+ pcie0clk: pcie0clk@1f2bc000 {
+ status = "disabled";
+ compatible = "apm,xgene-device-clock";
+ #clock-cells = <1>;
+ clocks = <&socplldiv2 0>;
+ reg = <0x0 0x1f2bc000 0x0 0x1000>;
+ reg-names = "csr-reg";
+ clock-output-names = "pcie0clk";
+ };
+
+ pcie1clk: pcie1clk@1f2cc000 {
+ status = "disabled";
+ compatible = "apm,xgene-device-clock";
+ #clock-cells = <1>;
+ clocks = <&socplldiv2 0>;
+ reg = <0x0 0x1f2cc000 0x0 0x1000>;
+ reg-names = "csr-reg";
+ clock-output-names = "pcie1clk";
+ };
+
+ pcie2clk: pcie2clk@1f2dc000 {
+ status = "disabled";
+ compatible = "apm,xgene-device-clock";
+ #clock-cells = <1>;

This diff is incomplete. Download the complete patch.

arch/arm64/include/asm/Kbuild

View file

This diff is incomplete. Download the complete patch.

arch/arm64/include/asm/io.h

View file

This diff is incomplete. Download the complete patch.

arch/arm64/include/asm/pci.h

View file

This diff is incomplete. Download the complete patch.

arch/arm64/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/arm64/kernel/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/arm64/kernel/pci.c

View file

This diff is incomplete. Download the complete patch.

arch/ia64/kernel/msi_ia64.c

View file

This diff is incomplete. Download the complete patch.

arch/ia64/sn/kernel/msi_sn.c

View file

This diff is incomplete. Download the complete patch.

arch/mips/pci/msi-octeon.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/include/asm/machdep.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/kernel/msi.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/cell/axon_msi.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/powernv/pci.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/platforms/pseries/msi.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/sysdev/fsl_msi.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/sysdev/mpic_pasemi_msi.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/sysdev/mpic_u3msi.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/sysdev/ppc4xx_hsta_msi.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/sysdev/ppc4xx_msi.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/pci/common.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/pci/mmconfig-shared.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/pci/pcbios.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/vmwgfx/svga_reg.h

View file

This diff is incomplete. Download the complete patch.

drivers/irqchip/irq-armada-370-xp.c

View file

This diff is incomplete. Download the complete patch.

drivers/misc/vmw_vmci/vmci_guest.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/vmxnet3/vmxnet3_int.h

View file

This diff is incomplete. Download the complete patch.

drivers/of/address.c

View file

This diff is incomplete. Download the complete patch.

drivers/of/of_pci.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/host/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/pci/host/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/pci/host/pci-imx6.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/host/pci-keystone-dw.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/host/pci-keystone.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/host/pci-keystone.h

View file

This diff is incomplete. Download the complete patch.

drivers/pci/host/pci-mvebu.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/host/pci-tegra.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/host/pci-xgene.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/host/pcie-designware.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/host/pcie-designware.h

View file

This diff is incomplete. Download the complete patch.

drivers/pci/host/pcie-rcar.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/host/pcie-spear13xx.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/host/pcie-xilinx.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/Makefile

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/acpi_pcihp.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/acpiphp_glue.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/acpiphp_ibm.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/cpci_hotplug_core.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/cpcihp_generic.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/cpcihp_zt5550.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/cpqphp.h

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/cpqphp_core.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/cpqphp_ctrl.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/cpqphp_nvram.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/ibmphp_core.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/ibmphp_ebda.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/ibmphp_hpc.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/ibmphp_pci.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/ibmphp_res.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/pciehp.h

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/pciehp_core.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/pciehp_hpc.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/pciehp_pci.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/pcihp_slot.c

View before deletion

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/shpchp_ctrl.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/shpchp_hpc.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/hotplug/shpchp_pci.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/iov.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/msi.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/pci-acpi.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/pci-driver.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/pci-sysfs.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/pci.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/pcie/aer/aerdrv_errprint.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/pcie/portdrv_pci.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/probe.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/quirks.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/search.c

View file

This diff is incomplete. Download the complete patch.

drivers/pci/setup-bus.c

View file

This diff is incomplete. Download the complete patch.

drivers/scsi/vmw_pvscsi.h

View file

This diff is incomplete. Download the complete patch.

drivers/vfio/pci/vfio_pci_config.c

View file

This diff is incomplete. Download the complete patch.

drivers/xen/xen-pciback/pci_stub.c

View file

This diff is incomplete. Download the complete patch.

include/asm-generic/io.h

View file

This diff is incomplete. Download the complete patch.

include/asm-generic/pgtable.h

View file

This diff is incomplete. Download the complete patch.

include/linux/aer.h

View file

This diff is incomplete. Download the complete patch.

include/linux/ioport.h

View file

This diff is incomplete. Download the complete patch.

include/linux/msi.h

View file

This diff is incomplete. Download the complete patch.

include/linux/of_address.h

View file

This diff is incomplete. Download the complete patch.

include/linux/of_pci.h

View file

This diff is incomplete. Download the complete patch.

include/linux/pci.h

View file

This diff is incomplete. Download the complete patch.

include/linux/pci_hotplug.h

View file

This diff is incomplete. Download the complete patch.

include/linux/pci_ids.h

View file

This diff is incomplete. Download the complete patch.

include/ras/ras_event.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/linux/pci_regs.h

View file

This diff is incomplete. Download the complete patch.

kernel/resource.c

View file

This diff is incomplete. Download the complete patch.

virt/kvm/assigned-dev.c

View file

This diff is incomplete. Download the complete patch.

virt/kvm/iommu.c

View file

This diff is incomplete. Download the complete patch.