The most notable pieces here are - Supporting BARs up to 8GB for Xeon Phi, etc - Restricting 64-bit prefetchable bridge windows to 64-bit resources to make SR-IOV devices with large MMIO requirements work - More control over driver binding for virtualization - New generic DT and R-Car PCIe host bridge drivers - Updates to i.MX6, R-Car, Exynos, DesignWare host bridge drivers The following changes since commit c9eaa447e77efe77b7fa4c953bd62de8297fd6c5: Linux 3.15-rc1 (2014-04-13 14:18:35 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git pci-v3.16-changes for you to fetch changes up to 617b4157a5c82ab3e9509aa388bfd3d47e0e623a: Merge branches 'pci/host-exynos', 'pci/host-imx6', 'pci/resource' and 'pci/misc' into next (2014-05-30 11:41:17 -0600) ---------------------------------------------------------------- PCI changes for the v3.16 merge window: Enumeration - Notify driver before and after device reset (Keith Busch) - Use reset notification in NVMe (Keith Busch) NUMA - Warn if we have to guess host bridge node information (Myron Stowe) - Work around AMD Fam15h BIOSes that fail to provide _PXM (Suravee Suthikulpanit) - Clean up and mark early_root_info_init() as deprecated (Suravee Suthikulpanit) Driver binding - Add "driver_override" for force specific binding (Alex Williamson) - Fail "new_id" addition for devices we already know about (Bandan Das) Resource management - Support BAR sizes up to 8GB (Nikhil Rao, Alan Cox) - Don't move IORESOURCE_PCI_FIXED resources (Bjorn Helgaas) - Mark SBx00 HPET BAR as IORESOURCE_PCI_FIXED (Bjorn Helgaas) - Fail safely if we can't handle BARs larger than 4GB (Bjorn Helgaas) - Reject BAR above 4GB if dma_addr_t is too small (Bjorn Helgaas) - Don't convert BAR address to resource if dma_addr_t is too small (Bjorn Helgaas) - Don't set BAR to zero if dma_addr_t is too small (Bjorn Helgaas) - Don't print anything while decoding is disabled (Bjorn Helgaas) - Don't add disabled subtractive decode bus resources (Bjorn Helgaas) - Add resource allocation comments (Bjorn Helgaas) - Restrict 64-bit prefetchable bridge windows to 64-bit resources (Yinghai Lu) - Assign i82875p_edac PCI resources before adding device (Yinghai Lu) PCI device hotplug - Remove unnecessary "dev->bus" test (Bjorn Helgaas) - Use PCI_EXP_SLTCAP_PSN define (Bjorn Helgaas) - Fix rphahp endianess issues (Laurent Dufour) - Acknowledge spurious "cmd completed" event (Rajat Jain) - Allow hotplug service drivers to operate in polling mode (Rajat Jain) - Fix cpqphp possible NULL dereference (Rickard Strandqvist) MSI - Replace pci_enable_msi_block() by pci_enable_msi_exact() (Alexander Gordeev) - Replace pci_enable_msix() by pci_enable_msix_exact() (Alexander Gordeev) - Simplify populate_msi_sysfs() (Jan Beulich) Virtualization - Add Intel Patsburg (X79) root port ACS quirk (Alex Williamson) - Mark RTL8110SC INTx masking as broken (Alex Williamson) Generic host bridge driver - Add generic PCI host controller driver (Will Deacon) Freescale i.MX6 - Use new clock names (Lucas Stach) - Drop old IRQ mapping (Lucas Stach) - Remove optional (and unused) IRQs (Lucas Stach) - Add support for MSI (Lucas Stach) - Fix imx6_add_pcie_port() section mismatch warning (Sachin Kamat) Renesas R-Car - Add gen2 device tree support (Ben Dooks) - Use new OF interrupt mapping when possible (Lucas Stach) - Add PCIe driver (Phil Edworthy) - Add PCIe MSI support (Phil Edworthy) - Add PCIe device tree bindings (Phil Edworthy) Samsung Exynos - Remove unnecessary OOM messages (Jingoo Han) - Fix add_pcie_port() section mismatch warning (Sachin Kamat) Synopsys DesignWare - Make MSI ISR shared IRQ aware (Lucas Stach) Miscellaneous - Check for broken config space aliasing (Alex Williamson) - Update email address (Ben Hutchings) - Fix Broadcom CNB20LE unintended sign extension (Bjorn Helgaas) - Fix incorrect vgaarb conditional in WARN_ON() (Bjorn Helgaas) - Remove unnecessary __ref annotations (Bjorn Helgaas) - Add arch/x86/kernel/quirks.c to MAINTAINERS PCI file patterns (Bjorn Helgaas) - Fix use of uninitialized MPS value (Bjorn Helgaas) - Tidy x86/gart messages (Bjorn Helgaas) - Fix return value from pci_user_{read,write}_config_*() (Gavin Shan) - Turn pcibios_penalize_isa_irq() into a weak function (Hanjun Guo) - Remove unused serial device IDs (Jean Delvare) - Use designated initialization in PCI_VDEVICE (Mark Rustad) - Fix powerpc NULL dereference in pci_root_buses traversal (Mike Qiu) - Configure MPS on ARM (Murali Karicheri) - Remove unnecessary includes of <linux/init.h> (Paul Gortmaker) - Move Open Firmware devspec attribute to PCI common code (Sebastian Ott) - Use pdev->dev.groups for attribute creation on s390 (Sebastian Ott) - Remove pcibios_add_platform_entries() (Sebastian Ott) - Add new ID for Intel GPU "spurious interrupt" quirk (Thomas Jarosch) - Rename pci_is_bridge() to pci_has_subordinate() (Yijing Wang) - Add and use new pci_is_bridge() interface (Yijing Wang) - Make pci_bus_add_device() void (Yijing Wang) DMA API - Clarify physical/bus address distinction in docs (Bjorn Helgaas) - Fix typos in docs (Emilio López) - Update dma_pool_create ()and dma_pool_alloc() descriptions (Gioh Kim) - Change dma_declare_coherent_memory() CPU address to phys_addr_t (Bjorn Helgaas) - Pass GAPSPCI_DMA_BASE CPU & bus address to dma_declare_coherent_memory() (Bjorn Helgaas) ---------------------------------------------------------------- Alan (1): PCI: Support BAR sizes up to 8GB Alex Williamson (4): PCI: Add Patsburg (X79) to Intel PCH root port ACS quirk PCI: Mark RTL8110SC INTx masking as broken PCI: Test for std config alias when testing extended config space PCI: Introduce new device binding path using pci_dev.driver_override Alexander Gordeev (3): PCI/portdrv: Use pci_enable_msix_exact() instead of pci_enable_msix() GenWQE: Use pci_enable_msi_exact() instead of pci_enable_msi_block() PCI/MSI: Remove pci_enable_msi_block() Bandan Das (1): PCI: Fail new_id for vendor/device values already built into driver Ben Dooks (1): PCI: rcar: Add gen2 device tree support Ben Hutchings (1): PCI: Update my email address Bjorn Helgaas (35): PCI: hotplug: Remove unnecessary "dev->bus" test PCI: pciehp: Use PCI_EXP_SLTCAP_PSN define x86/PCI: Fix Broadcom CNB20LE unintended sign extension x86/PCI: Don't try to move IORESOURCE_PCI_FIXED resources x86/PCI: Mark ATI SBx00 HPET BAR as IORESOURCE_PCI_FIXED PCI: Fix incorrect vgaarb conditional in WARN_ON() PCI: Remove unnecessary __ref annotations MAINTAINERS: Add arch/x86/kernel/quirks.c to PCI file patterns PCI: Remove dead code PCI: Fix use of uninitialized MPS value Merge branches 'pci/hotplug', 'pci/msi', 'pci/virtualization' and 'pci/misc' into next DMA-API: Clarify physical/bus address distinction DMA-API: Change dma_declare_coherent_memory() CPU address to phys_addr_t sh/PCI: Pass GAPSPCI_DMA_BASE CPU & bus address to dma_declare_coherent_memory() x86/PCI: Move pcibios_assign_resources() annotation to definition x86/gart: Replace printk() with pr_info() x86/gart: Tidy messages and add bridge device info PCI: Fail safely if we can't handle BARs larger than 4GB PCI: Reject BAR above 4GB if dma_addr_t is too small PCI: Don't convert BAR address to resource if dma_addr_t is too small PCI: Don't set BAR to zero if dma_addr_t is too small PCI: Don't print anything while decoding is disabled PCI: Don't add disabled subtractive decode bus resources resources: Clarify sanity check message PCI: Change pbus_size_mem() return values to be more conventional PCI: Simplify __pci_assign_resource() coding style PCI: Add resource allocation comments DMA-API: Capitalize "CPU" consistently iommu/exynos: Remove unnecessary "&" from function pointers Merge branches 'dma-api', 'pci/virtualization', 'pci/msi', 'pci/misc' and 'pci/resource' into next Merge branches 'pci/host-exynos', 'pci/host-rcar' and 'pci/amd-numa' into next Merge branches 'pci/hotplug', 'pci/pci_is_bridge' and 'pci/virtualization' into next Merge branch 'pci/misc' into next Merge branch 'pci/host-generic' into next Merge branches 'pci/host-exynos', 'pci/host-imx6', 'pci/resource' and 'pci/misc' into next Emilio López (1): DMA-API: Fix duplicated word in DMA-API-HOWTO.txt Gavin Shan (1): PCI: Fix return value from pci_user_{read,write}_config_*() Gioh Kim (1): DMA-API: Update dma_pool_create ()and dma_pool_alloc() descriptions Hanjun Guo (1): PCI: Turn pcibios_penalize_isa_irq() into a weak function Jan Beulich (1): PCI/MSI: Simplify populate_msi_sysfs() Jean Delvare (1): PCI: Remove old serial device IDs Jingoo Han (1): PCI: exynos: Remove unnecessary OOM messages Keith Busch (2): PCI: Notify driver before and after device reset NVMe: Implement PCIe reset notification callback Laurent Dufour (1): PCI: rphahp: Fix endianess issues Lucas Stach (6): PCI: rcar: Use new OF interrupt mapping when possible PCI: imx6: Use new clock names PCI: imx6: Drop old IRQ mapping PCI: imx6: Remove optional (and unused) IRQs PCI: designware: Make MSI ISR shared IRQ aware PCI: imx6: Add support for MSI Mark Rustad (1): PCI: Use designated initialization in PCI_VDEVICE Mike Qiu (1): powerpc/PCI: Fix NULL dereference in sys_pciconfig_iobase() list traversal Murali Karicheri (1): ARM/PCI: Call pcie_bus_configure_settings() to set MPS Myron Stowe (1): x86/PCI: Warn if we have to "guess" host bridge node information Paul Gortmaker (1): PCI: Remove unnecessary includes of <linux/init.h> Phil Edworthy (3): PCI: rcar: Add Renesas R-Car PCIe driver PCI: rcar: Add MSI support for PCIe PCI: rcar: Add R-Car PCIe device tree bindings Rajat Jain (2): PCI: pciehp: Acknowledge spurious "cmd completed" event PCI: Allow hotplug service drivers to operate in polling mode Rickard Strandqvist (1): PCI: cpqphp: Fix possible null pointer dereference Sachin Kamat (2): PCI: exynos: Fix add_pcie_port() section mismatch warning PCI: imx6: Fix imx6_add_pcie_port() section mismatch warning Sebastian Ott (3): PCI: Move Open Firmware devspec attribute to PCI common code s390/pci: use pdev->dev.groups for attribute creation PCI: Remove pcibios_add_platform_entries() Suravee Suthikulpanit (2): x86/PCI: Work around AMD Fam15h BIOSes that fail to provide _PXM x86/PCI: Clean up and mark early_root_info_init() as deprecated Thomas Jarosch (1): PCI: Add new ID for Intel GPU "spurious interrupt" quirk Will Deacon (2): PCI: generic: Add generic PCI host controller driver MAINTAINERS: Add generic PCI host controller driver Yijing Wang (14): PCI: Rename pci_is_bridge() to pci_has_subordinate() PCI: Add new pci_is_bridge() interface PCI: Use pci_is_bridge() to simplify code x86/PCI: Use pci_is_bridge() to simplify code ia64/PCI: Use pci_is_bridge() to simplify code powerpc/PCI: Use pci_is_bridge() to simplify code sparc/PCI: Use pci_is_bridge() to simplify code PCI: rpaphp: Use pci_is_bridge() to simplify code PCI: shpchp: Use pci_is_bridge() to simplify code PCI: cpcihp: Use pci_is_bridge() to simplify code PCI: acpiphp: Use pci_is_bridge() to simplify code PCI: pciehp: Use pci_is_bridge() to simplify code pcmcia: Use pci_is_bridge() to simplify code PCI: Make pci_bus_add_device() void Yinghai Lu (2): PCI: Restrict 64-bit prefetchable bridge windows to 64-bit resources i82875p_edac: Assign PCI resources before adding device Documentation/ABI/testing/sysfs-bus-pci | 23 +- Documentation/DMA-API-HOWTO.txt | 210 ++-- Documentation/DMA-API.txt | 150 +-- Documentation/DMA-ISA-LPC.txt | 4 +- .../devicetree/bindings/pci/host-generic-pci.txt | 100 ++ .../devicetree/bindings/pci/pci-rcar-gen2.txt | 66 ++ Documentation/devicetree/bindings/pci/rcar-pci.txt | 47 + MAINTAINERS | 9 + arch/alpha/include/asm/pci.h | 5 - arch/arm/include/asm/pci.h | 5 - arch/arm/kernel/bios32.c | 12 + arch/blackfin/include/asm/pci.h | 5 - arch/cris/include/asm/pci.h | 1 - arch/frv/include/asm/pci.h | 2 - arch/frv/mb93090-mb00/pci-irq.c | 4 - arch/ia64/include/asm/pci.h | 6 - arch/ia64/pci/fixup.c | 4 +- arch/microblaze/include/asm/pci.h | 5 - arch/microblaze/pci/pci-common.c | 20 - arch/mips/include/asm/pci.h | 5 - arch/mn10300/include/asm/pci.h | 1 - arch/mn10300/unit-asb2305/pci-irq.c | 4 - arch/parisc/include/asm/pci.h | 5 - arch/powerpc/include/asm/pci.h | 5 - arch/powerpc/kernel/pci-common.c | 20 - arch/powerpc/kernel/pci-hotplug.c | 3 +- arch/powerpc/kernel/pci_64.c | 10 +- arch/powerpc/kernel/pci_of_scan.c | 3 +- arch/s390/include/asm/pci.h | 6 +- arch/s390/pci/pci.c | 6 +- arch/s390/pci/pci_sysfs.c | 44 +- arch/sh/drivers/pci/fixups-dreamcast.c | 18 +- arch/sh/include/asm/pci.h | 5 - arch/sparc/include/asm/pci_32.h | 5 - arch/sparc/include/asm/pci_64.h | 5 - arch/sparc/kernel/pci.c | 3 +- arch/unicore32/include/asm/pci.h | 5 - arch/x86/include/asm/pci.h | 1 - arch/x86/kernel/aperture_64.c | 59 +- arch/x86/pci/acpi.c | 6 +- arch/x86/pci/amd_bus.c | 83 +- arch/x86/pci/broadcom_bus.c | 4 +- arch/x86/pci/fixup.c | 18 +- arch/x86/pci/i386.c | 27 +- arch/xtensa/include/asm/pci.h | 5 - drivers/base/dma-coherent.c | 10 +- drivers/base/dma-mapping.c | 6 +- drivers/block/nvme-core.c | 11 + drivers/edac/i82875p_edac.c | 8 +- drivers/iommu/exynos-iommu.c | 14 +- drivers/misc/genwqe/card_utils.c | 2 +- drivers/pci/access.c | 12 +- drivers/pci/bus.c | 11 +- drivers/pci/host-bridge.c | 1 - drivers/pci/host/Kconfig | 13 + drivers/pci/host/Makefile | 2 + drivers/pci/host/pci-exynos.c | 11 +- drivers/pci/host/pci-host-generic.c | 388 ++++++++ drivers/pci/host/pci-imx6.c | 147 ++- drivers/pci/host/pci-rcar-gen2.c | 39 +- drivers/pci/host/pcie-designware.c | 6 +- drivers/pci/host/pcie-designware.h | 2 +- drivers/pci/host/pcie-rcar.c | 1008 ++++++++++++++++++++ drivers/pci/hotplug-pci.c | 2 +- drivers/pci/hotplug/acpiphp_glue.c | 6 +- drivers/pci/hotplug/cpci_hotplug_pci.c | 5 +- drivers/pci/hotplug/cpqphp_ctrl.c | 3 +- drivers/pci/hotplug/cpqphp_nvram.c | 1 - drivers/pci/hotplug/pciehp.h | 2 +- drivers/pci/hotplug/pciehp_hpc.c | 2 + drivers/pci/hotplug/pciehp_pci.c | 3 +- drivers/pci/hotplug/pcihp_slot.c | 3 +- drivers/pci/hotplug/rpadlpar_core.c | 3 +- drivers/pci/hotplug/rpaphp_core.c | 15 +- drivers/pci/hotplug/s390_pci_hpc.c | 1 - drivers/pci/hotplug/shpchp_pci.c | 5 +- drivers/pci/iov.c | 2 +- drivers/pci/msi.c | 96 +- drivers/pci/pci-acpi.c | 8 +- drivers/pci/pci-driver.c | 58 +- drivers/pci/pci-sysfs.c | 68 +- drivers/pci/pci.c | 34 +- drivers/pci/pci.h | 10 +- drivers/pci/pcie/portdrv_core.c | 9 +- drivers/pci/probe.c | 101 +- drivers/pci/quirks.c | 11 + drivers/pci/search.c | 1 - drivers/pci/setup-bus.c | 251 +++-- drivers/pci/setup-irq.c | 1 - drivers/pci/setup-res.c | 42 +- drivers/pcmcia/cardbus.c | 3 +- drivers/platform/x86/asus-wmi.c | 3 +- drivers/platform/x86/eeepc-laptop.c | 3 +- include/asm-generic/dma-coherent.h | 13 +- include/linux/dma-mapping.h | 13 +- include/linux/pci.h | 40 +- include/linux/pci_ids.h | 3 - include/linux/types.h | 1 + kernel/resource.c | 7 +- 99 files changed, 2724 insertions(+), 830 deletions(-) create mode 100644 Documentation/devicetree/bindings/pci/host-generic-pci.txt create mode 100644 Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt create mode 100644 Documentation/devicetree/bindings/pci/rcar-pci.txt create mode 100644 drivers/pci/host/pci-host-generic.c create mode 100644 drivers/pci/host/pcie-rcar.c -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html