1. 01 Aug, 2016 19 commits
    • Bjorn Helgaas's avatar
      Merge branches 'pci/demodularize-hosts' and 'pci/host-request-windows' into next · 79dd9934
      Bjorn Helgaas authored
      * pci/demodularize-hosts:
        PCI: xgene: Make explicitly non-modular
        PCI: thunder-pem: Make explicitly non-modular
        PCI: thunder-ecam: Make explicitly non-modular
        PCI: tegra: Make explicitly non-modular
        PCI: rcar-gen2: Make explicitly non-modular
        PCI: rcar: Make explicitly non-modular
        PCI: mvebu: Make explicitly non-modular
        PCI: layerscape: Make explicitly non-modular
        PCI: keystone: Make explicitly non-modular
        PCI: hisi: Make explicitly non-modular
        PCI: generic: Make explicitly non-modular
        PCI: designware-plat: Make it explicitly non-modular
        PCI: artpec6: Make explicitly non-modular
        PCI: armada8k: Make explicitly non-modular
        PCI: artpec: Add PCI_MSI_IRQ_DOMAIN dependency
        PCI: artpec: Add Axis ARTPEC-6 PCIe controller driver
        PCI: Add DT binding for Axis ARTPEC-6 PCIe controller
        PCI: generic: Select IRQ_DOMAIN
      
      * pci/host-request-windows:
        PCI: versatile: Simplify host bridge window iteration
        PCI: versatile: Request host bridge window resources with core function
        PCI: tegra: Request host bridge window resources with core function
        PCI: tegra: Remove top-level resource from hierarchy
        PCI: rcar: Simplify host bridge window iteration
        PCI: rcar: Request host bridge window resources with core function
        PCI: rcar Gen2: Request host bridge window resources
        PCI: rcar: Drop gen2 dummy I/O port region
        ARM: Make PCI I/O space optional
        PCI: mvebu: Request host bridge window resources with core function
        PCI: generic: Simplify host bridge window iteration
        PCI: generic: Request host bridge window resources with core function
        PCI: altera: Simplify host bridge window iteration
        PCI: altera: Request host bridge window resources with core function
        PCI: xilinx-nwl: Use dev_printk() when possible
        PCI: xilinx-nwl: Request host bridge window resources
        PCI: xilinx-nwl: Free bridge resource list on failure
        PCI: xilinx: Request host bridge window resources
        PCI: xilinx: Free bridge resource list on failure
        PCI: xgene: Request host bridge window resources
        PCI: xgene: Free bridge resource list on failure
        PCI: iproc: Request host bridge window resources
        PCI: designware: Simplify host bridge window iteration
        PCI: designware: Request host bridge window resources
        PCI: designware: Free bridge resource list on failure
        PCI: Add devm_request_pci_bus_resources()
      79dd9934
    • Bjorn Helgaas's avatar
      Merge branch 'pci/resource' into next · 3efc7023
      Bjorn Helgaas authored
      * pci/resource:
        unicore32/PCI: Remove pci=firmware command line parameter handling
        ARM/PCI: Remove arch-specific pcibios_enable_device()
        ARM64/PCI: Remove arch-specific pcibios_enable_device()
        MIPS/PCI: Claim bus resources on PCI_PROBE_ONLY set-ups
        ARM/PCI: Claim bus resources on PCI_PROBE_ONLY set-ups
        PCI: generic: Claim bus resources on PCI_PROBE_ONLY set-ups
        PCI: Add generic pci_bus_claim_resources()
        alx: Use pci_(request|release)_mem_regions
        ethernet/intel: Use pci_(request|release)_mem_regions
        GenWQE: Use pci_(request|release)_mem_regions
        lpfc: Use pci_(request|release)_mem_regions
        NVMe: Use pci_(request|release)_mem_regions
        PCI: Add helpers to request/release memory and I/O regions
        PCI: Extending pci=resource_alignment to specify device/vendor IDs
        sparc/PCI: Implement pci_resource_to_user() with pcibios_resource_to_bus()
        powerpc/pci: Implement pci_resource_to_user() with pcibios_resource_to_bus()
        microblaze/PCI: Implement pci_resource_to_user() with pcibios_resource_to_bus()
        PCI: Unify pci_resource_to_user() declarations
        microblaze/PCI: Remove useless __pci_mmap_set_pgprot()
        powerpc/pci: Remove __pci_mmap_set_pgprot()
        PCI: Ignore write combining when mapping I/O port space
      3efc7023
    • Bjorn Helgaas's avatar
      Merge branches 'pci/aspm', 'pci/dpc', 'pci/hotplug', 'pci/misc', 'pci/msi',... · a00c74c1
      Bjorn Helgaas authored
      Merge branches 'pci/aspm', 'pci/dpc', 'pci/hotplug', 'pci/misc', 'pci/msi', 'pci/pm' and 'pci/virtualization' into next
      
      * pci/aspm:
        PCI/ASPM: Remove redundant check of pcie_set_clkpm
      
      * pci/dpc:
        PCI: Remove DPC tristate module option
        PCI: Bind DPC to Root Ports as well as Downstream Ports
        PCI: Fix whitespace in struct dpc_dev
        PCI: Convert Downstream Port Containment driver to use devm_* functions
      
      * pci/hotplug:
        PCI: Allow additional bus numbers for hotplug bridges
      
      * pci/misc:
        PCI: Include <asm/dma.h> for isa_dma_bridge_buggy
        PCI: Make bus_attr_resource_alignment static
        MAINTAINERS: Add file patterns for PCI device tree bindings
        PCI: Fix comment typo
      
      * pci/msi:
        PCI/MSI: irqchip: Fix PCI_MSI dependencies
      
      * pci/pm:
        PCI: pciehp: Ignore interrupts during D3cold
        PCI: Document connection between pci_power_t and hardware PM capability
        PCI: Add runtime PM support for PCIe ports
        ACPI / hotplug / PCI: Runtime resume bridge before rescan
        PCI: Power on bridges before scanning new devices
        PCI: Put PCIe ports into D3 during suspend
        PCI: Don't clear d3cold_allowed for PCIe ports
        PCI / PM: Enforce type casting for pci_power_t
      
      * pci/virtualization:
        PCI: Add ACS quirk for Solarflare SFC9220
        PCI: Add DMA alias quirk for Adaptec 3805
        PCI: Mark Atheros AR9485 and QCA9882 to avoid bus reset
        PCI: Add function 1 DMA alias quirk for Marvell 88SE9182
      a00c74c1
    • Bjorn Helgaas's avatar
      Merge branch 'pci/arm64-acpi' into next · c5cb85b2
      Bjorn Helgaas authored
      * pci/arm64-acpi:
        ARM64: PCI: Support ACPI-based PCI host controller
        ARM64: PCI: Implement AML accessors for PCI_Config region
        ARM64: PCI: ACPI support for legacy IRQs parsing and consolidation with DT code
        ARM64: PCI: Add acpi_pci_bus_find_domain_nr()
        PCI: Factor DT-specific pci_bus_find_domain_nr() code out
        PCI: Refactor pci_bus_assign_domain_nr() for CONFIG_PCI_DOMAINS_GENERIC
        PCI/ACPI: Add generic MCFG table handling
        PCI/ACPI: Support I/O resources when parsing host bridge resources
        PCI: Add pci_unmap_iospace() to unmap I/O resources
        PCI: Add parent device field to ECAM struct pci_config_window
        PCI: Move ecam.h to linux/include/pci-ecam.h
      c5cb85b2
    • Paul Gortmaker's avatar
      PCI: xgene: Make explicitly non-modular · 50dcd290
      Paul Gortmaker authored
      This code is not being built as a module by anyone:
      
        drivers/pci/host/Kconfig:config PCI_XGENE
        drivers/pci/host/Kconfig:       bool "X-Gene PCIe controller"
      
      Remove uses of MODULE_DESCRIPTION(), MODULE_AUTHOR(), MODULE_LICENSE(),
      etc., so that when reading the driver there is no doubt it is builtin-only.
      The information is preserved in comments at the top of the file.
      
      Replace module_platform_driver() with builtin_platform_driver(), which uses
      the same init level priority, so init ordering is unchanged.
      
      [bhelgaas: changelog]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      CC: Tanmay Inamdar <tinamdar@apm.com>
      50dcd290
    • Paul Gortmaker's avatar
      PCI: thunder-pem: Make explicitly non-modular · 0b3cd164
      Paul Gortmaker authored
      This code is not being built as a module by anyone:
      
        drivers/pci/host/Kconfig:config PCI_HOST_THUNDER_PEM
        drivers/pci/host/Kconfig:       bool "Cavium Thunder PCIe controller to off-chip devices"
      
      Remove uses of MODULE_DESCRIPTION(), MODULE_AUTHOR(), MODULE_LICENSE(),
      etc., so that when reading the driver there is no doubt it is builtin-only.
      The information is preserved in comments at the top of the file.
      
      Replace module_platform_driver() with builtin_platform_driver(), which uses
      the same init level priority, so init ordering is unchanged.
      
      Note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      [bhelgaas: changelog]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      CC: David Daney <david.daney@cavium.com>
      0b3cd164
    • Paul Gortmaker's avatar
      PCI: thunder-ecam: Make explicitly non-modular · d0c6fd76
      Paul Gortmaker authored
      This code is not being built as a module by anyone:
      
        drivers/pci/host/Kconfig:config PCI_HOST_THUNDER_ECAM
        drivers/pci/host/Kconfig:       bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
      
      Remove uses of MODULE_DESCRIPTION(), MODULE_AUTHOR(), MODULE_LICENSE(),
      etc., so that when reading the driver there is no doubt it is builtin-only.
      The information is preserved in comments at the top of the file.
      
      Replace module_platform_driver() with builtin_platform_driver(), which uses
      the same init level priority, so init ordering is unchanged.
      
      Note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      [bhelgaas: changelog]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      CC: David Daney <david.daney@cavium.com>
      d0c6fd76
    • Paul Gortmaker's avatar
      PCI: tegra: Make explicitly non-modular · ad183271
      Paul Gortmaker authored
      This code is not being built as a module by anyone:
      
        drivers/pci/host/Kconfig:config PCI_TEGRA
        drivers/pci/host/Kconfig:       bool "NVIDIA Tegra PCIe controller"
      
      Remove uses of MODULE_DESCRIPTION(), MODULE_AUTHOR(), MODULE_LICENSE(),
      etc., so that when reading the driver there is no doubt it is builtin-only.
      The information is preserved in comments at the top of the file.
      
      Replace module_platform_driver() with builtin_platform_driver(), which uses
      the same init level priority, so init ordering is unchanged.
      
      Note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      [bhelgaas: changelog]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      CC: Thierry Reding <thierry.reding@gmail.com>
      CC: Stephen Warren <swarren@wwwdotorg.org>
      CC: Alexandre Courbot <gnurou@gmail.com>
      CC: linux-tegra@vger.kernel.org
      ad183271
    • Paul Gortmaker's avatar
      PCI: rcar-gen2: Make explicitly non-modular · 0b9c1589
      Paul Gortmaker authored
      This code is not being built as a module by anyone:
      
        drivers/pci/host/Kconfig:config PCI_RCAR_GEN2
        drivers/pci/host/Kconfig:       bool "Renesas R-Car Gen2 Internal PCI controller"
      
      Remove uses of MODULE_DESCRIPTION(), MODULE_AUTHOR(), MODULE_LICENSE(),
      etc., so that when reading the driver there is no doubt it is builtin-only.
      The information is preserved in comments at the top of the file.
      
      Replace module_platform_driver() with builtin_platform_driver(), which uses
      the same init level priority, so init ordering is unchanged.
      
      Note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      [bhelgaas: changelog, remove "Module" from author comment]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarSimon Horman <horms+renesas@verge.net.au>
      Acked-by: default avatarPhil Edworthy <phil.edworthy@renesas.com>
      CC: Valentine Barshak <valentine.barshak@cogentembedded.com>
      0b9c1589
    • Paul Gortmaker's avatar
      PCI: rcar: Make explicitly non-modular · 42d10719
      Paul Gortmaker authored
      This code is not being built as a module by anyone:
      
        drivers/pci/host/Kconfig:config PCI_RCAR_GEN2_PCIE
        drivers/pci/host/Kconfig:       bool "Renesas R-Car PCIe controller"
      
      Remove uses of MODULE_DESCRIPTION(), MODULE_AUTHOR(), MODULE_LICENSE(),
      etc., so that when reading the driver there is no doubt it is builtin-only.
      The information is preserved in comments at the top of the file.
      
      Replace module_platform_driver() with builtin_platform_driver(), which uses
      the same init level priority, so init ordering is unchanged.
      
      Note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      [bhelgaas: changelog, remove "Module" from author comment]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarSimon Horman <horms+renesas@verge.net.au>
      Acked-by: default avatarPhil Edworthy <phil.edworthy@renesas.com>
      42d10719
    • Paul Gortmaker's avatar
      PCI: mvebu: Make explicitly non-modular · 82641d9b
      Paul Gortmaker authored
      This code is not being built as a module by anyone:
      
        drivers/pci/host/Kconfig:config PCI_MVEBU
        drivers/pci/host/Kconfig:       bool "Marvell EBU PCIe controller"
      
      Remove uses of MODULE_DESCRIPTION(), MODULE_AUTHOR(), MODULE_LICENSE(),
      etc., so that when reading the driver there is no doubt it is builtin-only.
      The information is preserved in comments at the top of the file.
      
      Replace module_platform_driver() with builtin_platform_driver(), which uses
      the same init level priority, so init ordering is unchanged.
      
      Note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      [bhelgaas: changelog, remove "Module" from author comment]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Reviewed-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      CC: Jason Cooper <jason@lakedaemon.net>
      82641d9b
    • Paul Gortmaker's avatar
      PCI: layerscape: Make explicitly non-modular · 154fb600
      Paul Gortmaker authored
      This code is not being built as a module by anyone:
      
        drivers/pci/host/Kconfig:config PCI_LAYERSCAPE
        drivers/pci/host/Kconfig:       bool "Freescale Layerscape PCIe controller"
      
      Remove uses of MODULE_DESCRIPTION(), MODULE_AUTHOR(), MODULE_LICENSE(),
      etc., so that when reading the driver there is no doubt it is builtin-only.
      The information is preserved in comments at the top of the file.
      
      Replace module_platform_driver() with builtin_platform_driver(), which uses
      the same init level priority, so init ordering is unchanged.
      
      Note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      [bhelgaas: changelog]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      CC: Minghuan Lian <minghuan.Lian@freescale.com>
      CC: Mingkai Hu <mingkai.hu@freescale.com>
      CC: Roy Zang <tie-fei.zang@freescale.com>
      154fb600
    • Paul Gortmaker's avatar
      PCI: keystone: Make explicitly non-modular · 1481bf21
      Paul Gortmaker authored
      This code is not being built as a module by anyone:
      
        drivers/pci/host/Kconfig:config PCI_KEYSTONE
        drivers/pci/host/Kconfig:       bool "TI Keystone PCIe controller"
      
      Remove uses of MODULE_DESCRIPTION(), MODULE_AUTHOR(), MODULE_LICENSE(),
      etc., so that when reading the driver there is no doubt it is builtin-only.
      The information is preserved in comments at the top of the file.
      
      Replace module_platform_driver() with builtin_platform_driver(), which uses
      the same init level priority, so init ordering is unchanged.
      
      Note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      [bhelgaas: changelog]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Tested-By: default avatarMurali Karicheri <m-karicheri2@ti.com>
      1481bf21
    • Paul Gortmaker's avatar
      PCI: hisi: Make explicitly non-modular · fb38118d
      Paul Gortmaker authored
      This code is not being built as a module by anyone:
      
        host/Kconfig:config PCI_HISI
        host/Kconfig:    bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers"
      
      Remove uses of MODULE_DESCRIPTION(), MODULE_AUTHOR(), MODULE_LICENSE(),
      etc., so that when reading the driver there is no doubt it is builtin-only.
      The information is preserved in comments at the top of the file.
      
      Replace module_platform_driver() with builtin_platform_driver(), which uses
      the same init level priority, so init ordering is unchanged.
      
      Note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      [bhelgaas: changelog]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      CC: Zhou Wang <wangzhou1@hisilicon.com>
      CC: Dacai Zhu <zhudacai@hisilicon.com>
      CC: Gabriele Paoloni <gabriele.paoloni@huawei.com>
      fb38118d
    • Paul Gortmaker's avatar
      PCI: generic: Make explicitly non-modular · 99849bf3
      Paul Gortmaker authored
      This code is not being built as a module by anyone:
      
        drivers/pci/host/Kconfig:config PCI_HOST_GENERIC
        drivers/pci/host/Kconfig:       bool "Generic PCI host controller"
      
      Remove uses of MODULE_DESCRIPTION(), MODULE_AUTHOR(), MODULE_LICENSE(),
      etc., so that when reading the driver there is no doubt it is builtin-only.
      The information is preserved in comments at the top of the file.
      
      Replace module_platform_driver() with builtin_platform_driver(), which uses
      the same init level priority, so init ordering is unchanged.
      
      Note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      [bhelgaas: changelog]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      99849bf3
    • Paul Gortmaker's avatar
      PCI: designware-plat: Make it explicitly non-modular · ca8d3346
      Paul Gortmaker authored
      This code is not being built as a module by anyone:
      
        drivers/pci/host/Kconfig:config PCIE_DW_PLAT
        drivers/pci/host/Kconfig:       bool "Platform bus based DesignWare PCIe Controller"
      
      Remove uses of MODULE_DESCRIPTION(), MODULE_AUTHOR(), MODULE_LICENSE(),
      etc., so that when reading the driver there is no doubt it is builtin-only.
      The information is preserved in comments at the top of the file.
      
      Replace module_platform_driver() with builtin_platform_driver(), which uses
      the same init level priority, so init ordering is unchanged.
      
      Note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      [bhelgaas: changelog]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarJoao Pinto <jpinto@synopsys.com>
      CC: Jingoo Han <jingoohan1@gmail.com>
      CC: Pratyush Anand <pratyush.anand@gmail.com>
      ca8d3346
    • Paul Gortmaker's avatar
      PCI: artpec6: Make explicitly non-modular · 58bdaa1d
      Paul Gortmaker authored
      This code is not being built as a module by anyone:
      
        drivers/pci/host/Kconfig:config PCIE_ARTPEC6
        drivers/pci/host/Kconfig:       bool "Axis ARTPEC-6 PCIe controller"
      
      Remove uses of MODULE_DESCRIPTION(), MODULE_AUTHOR(), MODULE_LICENSE(),
      etc., so that when reading the driver there is no doubt it is builtin-only.
      The information is preserved in comments at the top of the file.
      
      Replace module_platform_driver() with builtin_platform_driver(), which uses
      the same init level priority, so init ordering is unchanged.
      
      Note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      [bhelgaas: changelog, add "Author" comment]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      CC: Niklas Cassel <niklas.cassel@axis.com>
      CC: Jesper Nilsson <jesper.nilsson@axis.com>
      58bdaa1d
    • Paul Gortmaker's avatar
      PCI: armada8k: Make explicitly non-modular · 0e6f98cb
      Paul Gortmaker authored
      This code is not being built as a module by anyone:
      
        drivers/pci/host/Kconfig:config PCIE_ARMADA_8K
        drivers/pci/host/Kconfig:       bool "Marvell Armada-8K PCIe controller"
      
      Remove uses of MODULE_DESCRIPTION(), MODULE_AUTHOR(), MODULE_LICENSE(),
      etc., so that when reading the driver there is no doubt it is builtin-only.
      The information is preserved in comments at the top of the file.
      
      Replace module_platform_driver() with builtin_platform_driver(), which uses
      the same init level priority, so init ordering is unchanged.
      
      Note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
      
      [bhelgaas: changelog]
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
      0e6f98cb
    • Bjorn Helgaas's avatar
      Merge branches 'pci/host-artpec' and 'pci/host-generic' into pci/demodularize-hosts · 499e858e
      Bjorn Helgaas authored
      * pci/host-artpec:
        PCI: artpec: Add PCI_MSI_IRQ_DOMAIN dependency
        PCI: artpec: Add Axis ARTPEC-6 PCIe controller driver
        PCI: Add DT binding for Axis ARTPEC-6 PCIe controller
      
      * pci/host-generic:
        PCI: generic: Select IRQ_DOMAIN
      499e858e
  2. 29 Jul, 2016 2 commits
  3. 25 Jul, 2016 3 commits
  4. 19 Jul, 2016 2 commits
  5. 25 Jun, 2016 8 commits
    • Bjorn Helgaas's avatar
      PCI: versatile: Simplify host bridge window iteration · da6163ad
      Bjorn Helgaas authored
      The switch is the only statement in the resource_list_for_each_entry()
      loop, so remove unnecessary "continue" statements in the switch.  Simplify
      checking for the required non-prefetchable memory aperture.
      
      No functional change intended.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      da6163ad
    • Bjorn Helgaas's avatar
      PCI: versatile: Request host bridge window resources with core function · 2fbb3530
      Bjorn Helgaas authored
      Use devm_request_pci_bus_resources() to request host bridge window
      resources instead of doing it by hand in the driver.
      
      No functional change intended.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      2fbb3530
    • Bjorn Helgaas's avatar
      PCI: tegra: Request host bridge window resources with core function · 45c64b6a
      Bjorn Helgaas authored
      Use devm_request_pci_bus_resources() to request host bridge window
      resources instead of doing it by hand in the driver.
      
      No functional change intended.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      45c64b6a
    • Bjorn Helgaas's avatar
      PCI: tegra: Remove top-level resource from hierarchy · c4102c92
      Bjorn Helgaas authored
      41534e53 ("PCI: tegra: Implement a proper resource hierarchy") did two
      things:
      
        1) It added a top-level resource that encloses all resources declared in
           the DT description, including registers and bridge apertures, and
      
        2) It requested the bridge apertures, which means the PCI core can track
           the resources used by PCI devices below the bridge.
      
      The latter is necessary, but the former is questionable because there's no
      guarantee that the bridge registers and the apertures are contiguous.  In
      this example:
      
        # cat /proc/iomem
        00000000-3fffffff : /pcie-controller@00003000
          00000000-00000fff : /pcie-controller@00003000/pci@1,0
          00003000-000037ff : pads
          00003800-000039ff : afi
          10000000-1fffffff : cs
      
      the resource tree claims that [mem 0x00003a00-0x0fffffff] is consumed by
      /pcie-controller@00003000, but it's not mentioned in the DT, and it might
      actually be used by other devices.
      
      Remove the top-level resource so we don't claim more than the device
      actually consumes.
      
      This reintroduces the problem that we can't match the resources, e.g.,
      "pads", "afi", "cs", etc., to the DT device.  I think this should be solved
      by having the DT core request all resources of all devices in the DT (it
      does not do that today).  If a driver claims the device, it can request the
      resources it uses.  For example:
      
        # cat /proc/iomem
        00000000-00000fff : /pcie-controller@00003000
          00000000-00000fff : /pcie-controller@00003000/pci@1,0
        00003000-000037ff : /pcie-controller@00003000
          00003000-000037ff : pads
        00003800-000039ff : /pcie-controller@00003000
          00003800-000039ff : afi
        10000000-1fffffff : /pcie-controller@00003000
          10000000-1fffffff : cs
        ...
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      c4102c92
    • Bjorn Helgaas's avatar
      PCI: rcar: Simplify host bridge window iteration · 4c540a35
      Bjorn Helgaas authored
      The switch is the only statement in the resource_list_for_each_entry()
      loop, so remove unnecessary cases and "continue" statements in the switch.
      Inline rcar_pcie_release_of_pci_ranges(), which is only called once.
      
      No functional change intended.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      4c540a35
    • Bjorn Helgaas's avatar
      PCI: rcar: Request host bridge window resources with core function · 6fd7f550
      Bjorn Helgaas authored
      Use devm_request_pci_bus_resources() to request host bridge window
      resources instead of doing it by hand in the driver.
      
      No functional change intended.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      6fd7f550
    • Bjorn Helgaas's avatar
      PCI: rcar Gen2: Request host bridge window resources · ac575ead
      Bjorn Helgaas authored
      Request host bridge window resources so they appear in ioport_resource and
      iomem_resource and are reflected in /proc/ioports and /proc/iomem.
      Tested-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      ac575ead
    • Bjorn Helgaas's avatar
      PCI: rcar: Drop gen2 dummy I/O port region · b2a5d3e2
      Bjorn Helgaas authored
      Previously we added a dummy I/O port region even though the R-Car
      controller doesn't support PCI port I/O.  This resulted in bogus root bus
      resources like this:
      
        pci_bus 0000:00: root bus resource [io  0xee080000-0xee0810ff]
        pci_bus 0000:00: root bus resource [mem 0xee080000-0xee0810ff]
      
      Drop the unused dummy I/O port region and set struct hw_pci.io_optional so
      the ARM PCI code doesn't add a default one for us.
      Tested-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      b2a5d3e2
  6. 23 Jun, 2016 6 commits
    • Bjorn Helgaas's avatar
      unicore32/PCI: Remove pci=firmware command line parameter handling · ab2b750c
      Bjorn Helgaas authored
      Remove support for the "pci=firmware" command line parameter, which was
      way to keep the kernel from changing any PCI BAR assignments.  This was
      copied from ARM, but is not actually needed on unicore32.
      
      The corresponding ARM support was removed by 903589ca ("ARM: 8554/1:
      kernel: pci: remove pci=firmware command line parameter handling").
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      ab2b750c
    • Lorenzo Pieralisi's avatar
      ARM/PCI: Remove arch-specific pcibios_enable_device() · 313cb902
      Lorenzo Pieralisi authored
      On systems with PCI_PROBE_ONLY set, we rely on BAR assignments from
      firmware.  Previously we did not insert those resources into the resource
      tree, so we had to skip pci_enable_resources() because it fails if
      resources are not in the resource tree.
      
      Now that we *do* insert resources even when PCI_PROBE_ONLY is set, we no
      longer need the ARM-specific pcibios_enable_device().  Remove it so we
      use the generic version.
      
      [bhelgaas: changelog]
      Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      CC: Arnd Bergmann <arnd@arndb.de>
      CC: Russell King <linux@arm.linux.org.uk>
      313cb902
    • Lorenzo Pieralisi's avatar
      ARM64/PCI: Remove arch-specific pcibios_enable_device() · f615bca4
      Lorenzo Pieralisi authored
      On systems with PCI_PROBE_ONLY set, we rely on BAR assignments from
      firmware.  Previously we did not insert those resources into the resource
      tree, so we had to skip pci_enable_resources() because it fails if
      resources are not in the resource tree.
      
      Now that we *do* insert resources even when PCI_PROBE_ONLY is set, we no
      longer need the ARM64-specific pcibios_enable_device().  Remove it so we
      use the generic version.
      
      [bhelgaas: changelog]
      Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      CC: Arnd Bergmann <arnd@arndb.de>
      CC: Catalin Marinas <catalin.marinas@arm.com>
      f615bca4
    • Bjorn Helgaas's avatar
      MIPS/PCI: Claim bus resources on PCI_PROBE_ONLY set-ups · 04613617
      Bjorn Helgaas authored
      We claim PCI BAR and bridge window resources in pci_bus_assign_resources(),
      but when PCI_PROBE_ONLY is set, we treat those resources as immutable and
      don't call pci_bus_assign_resources(), so the resources aren't put in the
      resource tree.
      
      When the resources aren't in the tree, they don't show up in /proc/iomem,
      we can't detect conflicts, and we need special cases elsewhere for
      PCI_PROBE_ONLY or resources without a parent pointer.
      
      Claim all PCI BAR and window resources in the PCI_PROBE_ONLY case.
      
      If a PCI_PROBE_ONLY platform assigns conflicting resources, Linux can't fix
      the conflicts.  Previously we didn't notice the conflicts, but now we will,
      which may expose new failures.
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      04613617
    • Lorenzo Pieralisi's avatar
      ARM/PCI: Claim bus resources on PCI_PROBE_ONLY set-ups · b30742aa
      Lorenzo Pieralisi authored
      We claim PCI BAR and bridge window resources in pci_bus_assign_resources(),
      but when PCI_PROBE_ONLY is set, we treat those resources as immutable and
      don't call pci_bus_assign_resources(), so the resources aren't put in the
      resource tree.
      
      When the resources aren't in the tree, they don't show up in /proc/iomem,
      we can't detect conflicts, and we need special cases elsewhere for
      PCI_PROBE_ONLY or resources without a parent pointer.
      
      Claim all PCI BAR and window resources in the PCI_PROBE_ONLY case.
      
      If a PCI_PROBE_ONLY platform assigns conflicting resources, Linux can't fix
      the conflicts.  Previously we didn't notice the conflicts, but now we will,
      which may expose new failures.
      
      [bhelgaas: changelog, add resource comment, remove size/assign comments]
      Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      CC: Russell King <linux@armlinux.org.uk>
      b30742aa
    • Lorenzo Pieralisi's avatar
      PCI: generic: Claim bus resources on PCI_PROBE_ONLY set-ups · dcce0f15
      Lorenzo Pieralisi authored
      We claim PCI BAR and bridge window resources in pci_bus_assign_resources(),
      but when PCI_PROBE_ONLY is set, we treat those resources as immutable and
      don't call pci_bus_assign_resources(), so the resources aren't put in the
      resource tree.
      
      When the resources aren't in the tree, they don't show up in /proc/iomem,
      we can't detect conflicts, and we need special cases elsewhere for
      PCI_PROBE_ONLY or resources without a parent pointer.
      
      Claim all PCI BAR and window resources in the PCI_PROBE_ONLY case.
      
      If a PCI_PROBE_ONLY platform assigns conflicting resources, Linux can't fix
      the conflicts.  Previously we didn't notice the conflicts, but now we will,
      which may expose new failures.
      
      [bhelgaas: changelog, summarize comment]
      Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      CC: Arnd Bergmann <arnd@arndb.de>
      CC: David Daney <david.daney@cavium.com>
      dcce0f15