Commit Graph

5129 Commits

Author SHA1 Message Date
Thierry Reding
a52d1443bb PCI: Export host bridge registration interface
Allow PCI host bridge drivers to use the new host bridge interfaces to
register their host bridge.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Bjorn Helgaas <helgaas@kernel.org>
2016-12-07 12:05:58 -06:00
Thierry Reding
5909406598 PCI: Allow driver-specific data in host bridge
Provide a way to allocate driver-specific data along with a PCI host bridge
structure. The bridge's ->private field points to this data.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Bjorn Helgaas <helgaas@kernel.org>
2016-12-07 12:05:48 -06:00
Arnd Bergmann
37d6a0a6f4 PCI: Add pci_register_host_bridge() interface
Make the existing pci_host_bridge structure a proper device that is usable
by PCI host drivers in a more standard way. In addition to the existing
pci_scan_bus(), pci_scan_root_bus(), pci_scan_root_bus_msi(), and
pci_create_root_bus() interfaces, this unfortunately means having to add
yet another interface doing basically the same thing, and add some extra
code in the initial step.

However, this time it's more likely to be extensible enough that we won't
have to do another one again in the future, and we should be able to reduce
code much more as a result.

The main idea is to pull the allocation of 'struct pci_host_bridge' out of
the registration, and let individual host drivers and architecture code
fill the members before calling the registration function.

There are a number of things we can do based on this:

* Use a single memory allocation for the driver-specific structure
  and the generic PCI host bridge
* consolidate the contents of driver-specific structures by moving
  them into pci_host_bridge
* Add a consistent interface for removing a PCI host bridge again
  when unloading a host driver module
* Replace the architecture specific __weak pcibios_*() functions with
  callbacks in a pci_host_bridge device
* Move common boilerplate code from host drivers into the generic
  function, based on contents of the structure
* Extend pci_host_bridge with additional members when needed without
  having to add arguments to pci_scan_*().
* Move members of struct pci_bus into pci_host_bridge to avoid
  having lots of identical copies.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Bjorn Helgaas <helgaas@kernel.org>
2016-12-07 11:05:42 -06:00
Linus Torvalds
40bd3a5f34 PCI changes for the v4.9 merge window:
Altera host bridge driver
     Add local struct device pointers (Bjorn Helgaas)
     Remove unused platform data (Bjorn Helgaas)
     Remove redundant platform_get_resource() return value check (Bjorn Helgaas)
     Rename altera_pcie_valid_config() to altera_pcie_valid_device() (Bjorn Helgaas)
     Simplify TLB_CFG_DW0 usage (Bjorn Helgaas)
     Simplify TLP_CFG_DW1 usage (Bjorn Helgaas)
 
   APM X-Gene host bridge driver
     Add local struct device pointers (Bjorn Helgaas)
     Remove unused platform data (Bjorn Helgaas)
     Pass struct xgene_pcie_port to setup functions (Bjorn Helgaas)
     Add register accessors (Bjorn Helgaas)
 
   Axis ARTPEC-6 host bridge driver
     Add local struct device pointers (Bjorn Helgaas)
     Remove unused platform data (Bjorn Helgaas)
     Add register accessors (Bjorn Helgaas)
     Use generic DesignWare accessors (Bjorn Helgaas)
     Remove unnecessary artpec6_pcie_link_up() (Bjorn Helgaas)
     Pass device-specific struct to internal functions (Bjorn Helgaas)
     Add resource name comments (Bjorn Helgaas)
 
   Broadcom iProc host bridge driver
     Add local struct device pointers (Bjorn Helgaas)
     Set drvdata at end of probe function (Bjorn Helgaas)
     Validate CSR base in BCMA setup code (Bjorn Helgaas)
     Remove redundant null pointer checking (Bjorn Helgaas)
     Hard-code PCIe capability offset instead of searching (Bjorn Helgaas)
 
   Freescale i.MX6 host bridge driver
     Add local struct device pointers (Bjorn Helgaas)
     Remove redundant of_node pointer (Bjorn Helgaas)
     Removed unused struct imx6_pcie.mem_base (Bjorn Helgaas)
     Pass struct imx6_pcie to PHY accessors (Bjorn Helgaas)
     Pass device-specific struct to internal functions (Bjorn Helgaas)
     Use generic DesignWare accessors (Bjorn Helgaas)
     Reorder struct imx6_pcie (Bjorn Helgaas)
     Remove unused return values (Bjorn Helgaas)
 
   Freescale Layerscape host bridge driver
     Add local struct device pointers (Bjorn Helgaas)
     Remove unused platform data (Bjorn Helgaas)
     Remove redundant struct ls_pcie.dbi (Bjorn Helgaas)
     Pass device-specific struct to internal functions (Bjorn Helgaas)
     Move struct pcie_port setup to probe function (Bjorn Helgaas)
     Remove unused ls_add_pcie_port() platform_device arg (Bjorn Helgaas)
     Reorder struct ls_pcie (Bjorn Helgaas)
 
   HiSilicon host bridge driver
     Add local struct device pointers (Bjorn Helgaas)
     Remove unused platform data (Bjorn Helgaas)
     Name private struct pointer "hisi_pcie" consistently (Bjorn Helgaas)
     Remove redundant struct hisi_pcie.reg_base (Bjorn Helgaas)
     Use generic DesignWare accessors (Bjorn Helgaas)
     Include register block base in PCIE_SYS_STATE4 address (Bjorn Helgaas)
     Pass device-specific struct to internal functions (Bjorn Helgaas)
     Reorder struct hisi_pcie (Bjorn Helgaas)
 
   Marvell Aardvark host bridge driver
     Add local struct device pointers (Bjorn Helgaas)
     Remove unused platform data (Bjorn Helgaas)
     MAINTAINERS: Add DT binding to the Aardvark PCIe driver maintainer (Thomas Petazzoni)
 
   Marvell Armada host bridge driver
     Remove unused platform data (Bjorn Helgaas)
     Add local base pointer (Bjorn Helgaas)
     Remove redundant struct armada8k_pcie.base (Bjorn Helgaas)
     Use generic DesignWare accessors (Bjorn Helgaas)
     Pass device-specific struct to internal functions (Bjorn Helgaas)
     Reorder struct armada8k_pcie (Bjorn Helgaas)
     MAINTAINERS: Add maintainer for the PCIe Marvell Armada 8K driver (Thomas Petazzoni)
 
   Marvell MVEBU host bridge driver
     Add local struct device pointers (Bjorn Helgaas)
     Use existing of_node pointer (Bjorn Helgaas)
 
   NVIDIA Tegra host bridge driver
     Fix argument order in tegra_pcie_phy_disable() (Bjorn Helgaas)
     Add local struct device pointers (Bjorn Helgaas)
     Remove unused platform data (Bjorn Helgaas)
 
   Qualcomm host bridge driver
     Remove unused platform data (Bjorn Helgaas)
     Remove redundant struct qcom_pcie.dbi (Bjorn Helgaas)
     Remove redundant struct qcom_pcie.dev (Bjorn Helgaas)
     Reorder struct qcom_pcie (Bjorn Helgaas)
 
   Renesas R-Car host bridge driver
     Add local struct device pointers (Bjorn Helgaas)
     Remove unused platform data (Bjorn Helgaas)
     Remove unused rcar_pcie_get_resources() platform_device arg (Bjorn Helgaas)
     Remove DRV_NAME macro (Bjorn Helgaas)
     rcar-gen2: Add local struct device pointers (Bjorn Helgaas)
 
   Rockchip host bridge driver
     Remove unused platform data (Bjorn Helgaas)
     Indent "if" statement body (Dan Carpenter)
 
   Samsung Exynos host bridge driver
     Add local struct device pointers (Bjorn Helgaas)
     Uninline register accessors (Bjorn Helgaas)
     Name private struct pointer "exynos_pcie" consistently (Bjorn Helgaas)
     Pass device-specific struct to internal functions (Bjorn Helgaas)
     Reorder struct exynos_pcie (Bjorn Helgaas)
 
   ST Microelectronics SPEAr13xx host bridge driver
     Remove unused constants (Bjorn Helgaas)
     Pass device-specific struct to internal functions (Bjorn Helgaas)
     Reorder struct spear13xx_pcie (Bjorn Helgaas)
     Clean up struct device usage (Bjorn Helgaas)
 
   Synopsys DesignWare host bridge driver
     Rename dw_pcie_valid_config() to dw_pcie_valid_device() (Bjorn Helgaas)
     Simplify pcie_host_ops.readl_rc() and .writel_rc() interfaces (Bjorn Helgaas)
     Swap order of dw_pcie_writel_rc() reg/val arguments (Bjorn Helgaas)
     Export dw_pcie_readl_rc(), dw_pcie_writel_rc() (Bjorn Helgaas)
     Uninline register accessors (Bjorn Helgaas)
     Simplify dw_pcie_readl_unroll(), dw_pcie_writel_unroll() (Kishon Vijay Abraham I)
     Swap order of dw_pcie_writel_unroll() reg/val arguments (Bjorn Helgaas)
     designware-plat: Remove redundant dw_plat_pcie.mem_base (Bjorn Helgaas)
     designware-plat: Add local struct device pointers (Bjorn Helgaas)
     designware-plat: Remove unused platform data (Bjorn Helgaas)
 
   TI DRA7xx host bridge driver
     Add local struct device pointers (Bjorn Helgaas)
     Remove redundant struct device pointer from dra7xx_pcie (Bjorn Helgaas)
     Set drvdata at end of probe function (Bjorn Helgaas)
     Use generic DesignWare accessors (Bjorn Helgaas)
     Pass device-specific struct to internal functions (Bjorn Helgaas)
     Move struct pcie_port setup to probe function (Bjorn Helgaas)
     Reorder struct dra7xx_pcie (Bjorn Helgaas)
 
   TI Keystone host bridge driver
     Add local struct device pointers (Bjorn Helgaas)
     Use generic DesignWare accessors (Bjorn Helgaas)
     Pass keystone_pcie, not address, to IRQ functions (Bjorn Helgaas)
     Pass keystone_pcie, not va_app_base, to DBI functions (Bjorn Helgaas)
     Add app register accessors (Bjorn Helgaas)
     Reorder struct keystone_pcie (Bjorn Helgaas)
 
   Xilinx AXI host bridge driver
     Add local struct device pointers (Bjorn Helgaas)
     Remove unused platform data (Bjorn Helgaas)
     Removed unused xilinx_pcie_assign_msi() argument (Bjorn Helgaas)
 
   Xilinx NWL host bridge driver
     Add local struct device pointers (Bjorn Helgaas)
     Remove unused platform data (Bjorn Helgaas)
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJX/5JSAAoJEFmIoMA60/r8DgwQAL3rqok3OMp5mOFPTosLiGA5
 Pibrke/01imrOGT+vxo07K7AZhTkiOoVDDdwrYSOdTELc0bk8cjZUtjjzwQ0p1KP
 Xpq8mbX9EIZKrVhRYAFvtBMehw51l4D8RENF5GnyeJ04MDWzV7re1zsHuWAkUGC5
 9BP6DE0RGjddnyi8gRe39ZRVQofvZT9WgLb5LgnjpTgCpAcSBQBUlyynRlKcqmcY
 S2noNrIDb9KElpbw45egy11p79z6A6h9n6pfrzKff07Y3N1DFK2XeFoyoEHUnABM
 sicjjbR0W/udWm2eONLB8s1tYTJKL3zvNzWI1ywC3ESfmmt2iZ22pu0yxnjmdCRa
 vbBpQp/BfXH0yBd2Onl06EvyIBMEO35vBgiRUW/Su76JTh0jAHQh1k0lvK3l85qK
 mcpWQ5AwGquwywr3IhcAtuGI8SbrTZ2wElOJhRukwbZYF/RDKMKn71dSqd9ULTKl
 0w2hpeJW8Csl+2UwJQTtH9Pld3FXslBa1zM9WqUskxgbsch+ARb1zRwzXJj50E1A
 ekbWb/W7oxDPHKkK+hh5jc0zb/sEBdoBL0Vz1QuP7Al50b1FOS3tX4FdnfVZntTL
 vhDdo+0tCmbVAI6bRLPi0Q2Uyw6fl0f0preDXNs9siNDUjqRSqpGmY/qYXX97MRk
 /pFdD9BJw9uUONm4AQOf
 =Zq8E
 -----END PGP SIGNATURE-----

Merge tag 'pci-v4.9-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci

PCI changes for the v4.9 merge window:
 "Here are some more changes I'd like to have in v4.9.  There's one
  small Tegra bug fix in the PHY poweroff path, which is only used in
  failure paths.

  The rest is all strictly cleanup that should make host bridge drivers
  more readable, but shouldn't actually change any behavior.

  Summary:

   - use local struct device pointers in many host bridge drivers for
     clarity

   - remove unused platform data

   - use generic DesignWare accessors

   - misc cleanups: remove redundant structure entries and re-order
     structure members to put comon generic fields first etc"

* tag 'pci-v4.9-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (108 commits)
  MAINTAINERS: Add maintainer for the PCIe Marvell Armada 8K driver
  MAINTAINERS: Add DT binding to the Aardvark PCIe driver maintainer
  PCI: rockchip: Indent "if" statement body
  PCI: hisi: Reorder struct hisi_pcie
  PCI: hisi: Pass device-specific struct to internal functions
  PCI: hisi: Include register block base in PCIE_SYS_STATE4 address
  PCI: dra7xx: Reorder struct dra7xx_pcie
  PCI: xilinx-nwl: Remove unused platform data
  PCI: xilinx-nwl: Add local struct device pointers
  PCI: xilinx: Removed unused xilinx_pcie_assign_msi() argument
  PCI: xilinx: Remove unused platform data
  PCI: xilinx: Add local struct device pointers
  PCI: xgene: Add register accessors
  PCI: xgene: Pass struct xgene_pcie_port to setup functions
  PCI: xgene: Remove unused platform data
  PCI: tegra: Remove unused platform data
  PCI: tegra: Add local struct device pointers
  PCI: tegra: Fix argument order in tegra_pcie_phy_disable()
  PCI: rockchip: Remove unused platform data
  PCI: rcar-gen2: Add local struct device pointers
  ...
2016-10-13 17:08:58 -07:00
Bjorn Helgaas
217c6d21e9 Merge branches 'pci/host-armada', 'pci/host-artpec', 'pci/host-dra7xx', 'pci/host-exynos', 'pci/host-hisi', 'pci/host-imx6', 'pci/host-keystone', 'pci/host-layerscape', 'pci/host-qcom' and 'pci/host-spear' into next
* pci/host-armada:
  MAINTAINERS: Add maintainer for the PCIe Marvell Armada 8K driver
  PCI: armada: Reorder struct armada8k_pcie
  PCI: armada: Pass device-specific struct to internal functions
  PCI: armada: Use generic DesignWare accessors
  PCI: armada: Remove redundant struct armada8k_pcie.base
  PCI: armada: Add local base pointer
  PCI: armada: Remove unused platform data

* pci/host-artpec:
  PCI: artpec6: Add resource name comments
  PCI: artpec6: Pass device-specific struct to internal functions
  PCI: artpec6: Remove unnecessary artpec6_pcie_link_up()
  PCI: artpec6: Use generic DesignWare accessors
  PCI: artpec6: Add register accessors
  PCI: artpec6: Remove unused platform data
  PCI: artpec6: Add local struct device pointers

* pci/host-dra7xx:
  PCI: dra7xx: Reorder struct dra7xx_pcie
  PCI: dra7xx: Move struct pcie_port setup to probe function
  PCI: dra7xx: Pass device-specific struct to internal functions
  PCI: dra7xx: Use generic DesignWare accessors
  PCI: dra7xx: Set drvdata at end of probe function
  PCI: dra7xx: Remove redundant struct device pointer from dra7xx_pcie
  PCI: dra7xx: Add local struct device pointers

* pci/host-exynos:
  PCI: exynos: Reorder struct exynos_pcie
  PCI: exynos: Pass device-specific struct to internal functions
  PCI: exynos: Name private struct pointer "exynos_pcie" consistently
  PCI: exynos: Uninline register accessors
  PCI: exynos: Add local struct device pointers

* pci/host-hisi:
  PCI: hisi: Reorder struct hisi_pcie
  PCI: hisi: Pass device-specific struct to internal functions
  PCI: hisi: Include register block base in PCIE_SYS_STATE4 address
  PCI: hisi: Use generic DesignWare accessors
  PCI: hisi: Remove redundant struct hisi_pcie.reg_base
  PCI: hisi: Name private struct pointer "hisi_pcie" consistently
  PCI: hisi: Remove unused platform data
  PCI: hisi: Add local struct device pointers

* pci/host-imx6:
  PCI: imx6: Remove unused return values
  PCI: imx6: Reorder struct imx6_pcie
  PCI: imx6: Use generic DesignWare accessors
  PCI: imx6: Pass device-specific struct to internal functions
  PCI: imx6: Pass struct imx6_pcie to PHY accessors
  PCI: imx6: Removed unused struct imx6_pcie.mem_base
  PCI: imx6: Remove redundant of_node pointer
  PCI: imx6: Add local struct device pointers

* pci/host-keystone:
  PCI: keystone: Reorder struct keystone_pcie
  PCI: keystone: Add app register accessors
  PCI: keystone: Pass keystone_pcie, not va_app_base, to DBI functions
  PCI: keystone: Pass keystone_pcie, not address, to IRQ functions
  PCI: keystone: Use generic DesignWare accessors
  PCI: keystone: Add local struct device pointers

* pci/host-layerscape:
  PCI: layerscape: Reorder struct ls_pcie
  PCI: layerscape: Remove unused ls_add_pcie_port() platform_device arg
  PCI: layerscape: Move struct pcie_port setup to probe function
  PCI: layerscape: Pass device-specific struct to internal functions
  PCI: layerscape: Remove redundant struct ls_pcie.dbi
  PCI: layerscape: Remove unused platform data
  PCI: layerscape: Add local struct device pointers

* pci/host-qcom:
  PCI: qcom: Reorder struct qcom_pcie
  PCI: qcom: Remove redundant struct qcom_pcie.dev
  PCI: qcom: Remove redundant struct qcom_pcie.dbi
  PCI: qcom: Remove unused platform data

* pci/host-spear:
  PCI: spear: Clean up struct device usage
  PCI: spear: Reorder struct spear13xx_pcie
  PCI: spear: Pass device-specific struct to internal functions
  PCI: spear: Remove unused constants
2016-10-12 11:15:06 -05:00
Bjorn Helgaas
22c7e1d4b4 Merge branch 'pci/host-designware' into next
* pci/host-designware:
  PCI: designware-plat: Remove unused platform data
  PCI: designware-plat: Add local struct device pointers
  PCI: designware-plat: Remove redundant dw_plat_pcie.mem_base
  PCI: designware: Swap order of dw_pcie_writel_unroll() reg/val arguments
  PCI: designware: Uninline register accessors
  PCI: designware: Export dw_pcie_readl_rc(), dw_pcie_writel_rc()
  PCI: designware: Swap order of dw_pcie_writel_rc() reg/val arguments
  PCI: designware: Simplify pcie_host_ops.readl_rc() and .writel_rc() interfaces
  PCI: designware: Simplify dw_pcie_readl_unroll(), dw_pcie_writel_unroll()
  PCI: designware: Rename dw_pcie_valid_config() to dw_pcie_valid_device()
2016-10-12 11:14:58 -05:00
Bjorn Helgaas
dd5bba52d3 Merge branches 'pci/host-aardvark', 'pci/host-altera', 'pci/host-iproc', 'pci/host-mvebu', 'pci/host-rcar', 'pci/host-rockchip', 'pci/host-tegra', 'pci/host-xgene' and 'pci/host-xilinx' into next
* pci/host-aardvark:
  MAINTAINERS: Add DT binding to the Aardvark PCIe driver maintainer
  PCI: aardvark: Remove unused platform data
  PCI: aardvark: Add local struct device pointers

* pci/host-altera:
  PCI: altera: Simplify TLP_CFG_DW1 usage
  PCI: altera: Simplify TLB_CFG_DW0 usage
  PCI: altera: Rename altera_pcie_valid_config() to altera_pcie_valid_device()
  PCI: altera: Remove redundant platform_get_resource() return value check
  PCI: altera: Remove unused platform data
  PCI: altera: Add local struct device pointers

* pci/host-iproc:
  PCI: iproc: Hard-code PCIe capability offset instead of searching
  PCI: iproc: Remove redundant null pointer checking
  PCI: iproc: Validate CSR base in BCMA setup code
  PCI: iproc: Set drvdata at end of probe function
  PCI: iproc: Add local struct device pointers

* pci/host-mvebu:
  PCI: mvebu: Use existing of_node pointer
  PCI: mvebu: Add local struct device pointers

* pci/host-rcar:
  PCI: rcar-gen2: Add local struct device pointers
  PCI: rcar: Remove DRV_NAME macro
  PCI: rcar: Remove unused rcar_pcie_get_resources() platform_device arg
  PCI: rcar: Remove unused platform data
  PCI: rcar: Add local struct device pointers

* pci/host-rockchip:
  PCI: rockchip: Indent "if" statement body
  PCI: rockchip: Remove unused platform data

* pci/host-tegra:
  PCI: tegra: Remove unused platform data
  PCI: tegra: Add local struct device pointers
  PCI: tegra: Fix argument order in tegra_pcie_phy_disable()

* pci/host-xgene:
  PCI: xgene: Add register accessors
  PCI: xgene: Pass struct xgene_pcie_port to setup functions
  PCI: xgene: Remove unused platform data
  PCI: xgene: Add local struct device pointers

* pci/host-xilinx:
  PCI: xilinx-nwl: Remove unused platform data
  PCI: xilinx-nwl: Add local struct device pointers
  PCI: xilinx: Removed unused xilinx_pcie_assign_msi() argument
  PCI: xilinx: Remove unused platform data
  PCI: xilinx: Add local struct device pointers
2016-10-12 11:14:44 -05:00
Dan Carpenter
08015ee0ff PCI: rockchip: Indent "if" statement body
Body of an "if" statement wasn't indented.  Add a tab.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-12 07:14:09 -05:00
Bjorn Helgaas
f84cfdf721 PCI: hisi: Reorder struct hisi_pcie
Reorder struct hisi_pcie to put generic fields first.  No functional change
intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-12 00:08:32 -05:00
Bjorn Helgaas
e9480b5a7f PCI: hisi: Pass device-specific struct to internal functions
Only interfaces used from outside the driver, e.g., those called by the
DesignWare core, need to accept pointers to the generic struct pcie_port.
Internal interfaces can accept pointers to the device-specific struct,
which makes them more straightforward.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-12 00:08:27 -05:00
Bjorn Helgaas
a458ce33d4 PCI: hisi: Include register block base in PCIE_SYS_STATE4 address
Include the PCIE_HIP06_CTRL_OFF block base in the PCIE_SYS_STATE4 register
address so reads of PCIE_SYS_STATE4 don't have to mention both.  No
functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-12 00:08:25 -05:00
Bjorn Helgaas
8e5ec4143d PCI: dra7xx: Reorder struct dra7xx_pcie
Reorder struct dra7xx_pcie to put generic fields first.  No functional
change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-12 00:05:54 -05:00
Bjorn Helgaas
228ee66c46 PCI: xilinx-nwl: Remove unused platform data
The xilinx-nwl driver never uses the platform drvdata pointer, so don't
bother setting it.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-12 00:00:51 -05:00
Bjorn Helgaas
adf9e284b4 PCI: xilinx-nwl: Add local struct device pointers
Use a local "struct device *dev" for brevity and consistency with other
drivers.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-12 00:00:30 -05:00
Bjorn Helgaas
e59e5ff9a0 PCI: xilinx: Removed unused xilinx_pcie_assign_msi() argument
xilinx_pcie_assign_msi() doesn't use the struct xilinx_pcie_port pointer
passed to it, so remove the argument completely.  No functional change
intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-12 00:00:00 -05:00
Bjorn Helgaas
6a6c2e8a7c PCI: xilinx: Remove unused platform data
The xilinx driver never uses the platform drvdata pointer, so don't
bother setting it.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:59:51 -05:00
Bjorn Helgaas
5d07188e21 PCI: xilinx: Add local struct device pointers
Use a local "struct device *dev" for brevity and consistency with other
drivers.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:59:44 -05:00
Bjorn Helgaas
8e93c5132c PCI: xgene: Add register accessors
Add device-specific register accessors for consistency across host drivers.
No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:54:31 -05:00
Bjorn Helgaas
4ecf6b0f83 PCI: xgene: Pass struct xgene_pcie_port to setup functions
Pass the struct xgene_pcie_port pointer, not addresses, to setup functions.
This enables future simplifications.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:49:52 -05:00
Bjorn Helgaas
c6fe9ebaac PCI: xgene: Remove unused platform data
The xgene driver never uses the platform drvdata pointer, so don't
bother setting it.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:48:33 -05:00
Bjorn Helgaas
16cbff1407 PCI: tegra: Remove unused platform data
The tegra driver never uses the platform drvdata pointer, so don't
bother setting it.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:45:32 -05:00
Bjorn Helgaas
a581fa9936 PCI: tegra: Add local struct device pointers
Use a local "struct device *dev" for brevity and consistency with other
drivers.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:45:25 -05:00
Bjorn Helgaas
8dd99bca7b PCI: tegra: Fix argument order in tegra_pcie_phy_disable()
The tegra_pcie_phy_disable() path called pads_writel() with arguments in
the wrong order.  Swap them to be the "value, offset" order expected by
pads_writel().

Fixes: 6fe7c187e0 ("PCI: tegra: Support per-lane PHYs")
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Thierry Reding <treding@nvidia.com>
CC: stable@vger.kernel.org	# v4.7+
2016-10-11 23:45:24 -05:00
Bjorn Helgaas
9d274755c6 PCI: rockchip: Remove unused platform data
The rockchip driver never uses the platform drvdata pointer, so don't
bother setting it.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Shawn Lin <shawn.lin@rock-chips.com>
2016-10-11 23:38:10 -05:00
Bjorn Helgaas
de9e6bc84b PCI: rcar-gen2: Add local struct device pointers
Use a local "struct device *dev" for brevity and consistency with other
drivers.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
2016-10-11 23:34:57 -05:00
Bjorn Helgaas
3ff8e4ac3a PCI: rcar: Remove DRV_NAME macro
The DRV_NAME macro is only used once, so there's no real advantage to
having the macro at all.  Remove it and use the "rcar-pcie" name directly
in the struct platform_driver.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
2016-10-11 23:34:49 -05:00
Bjorn Helgaas
d0206f2121 PCI: rcar: Remove unused rcar_pcie_get_resources() platform_device arg
rcar_pcie_get_resources() doesn't use the platform_device pointer passed to
it, so remove it.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
2016-10-11 23:34:34 -05:00
Bjorn Helgaas
d9c64c500a PCI: rcar: Remove unused platform data
The rcar driver never uses the platform drvdata pointer, so don't bother
setting it.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
2016-10-11 23:34:28 -05:00
Bjorn Helgaas
ee05369412 PCI: qcom: Reorder struct qcom_pcie
Reorder struct qcom_pcie to put generic fields first.  No functional change
intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:27:46 -05:00
Bjorn Helgaas
e6a087eeaf PCI: qcom: Remove redundant struct qcom_pcie.dev
Remove the struct qcom_pcie.dev member, which is a duplicate of the generic
pp.dev member.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:26:02 -05:00
Bjorn Helgaas
0edd578e7a PCI: qcom: Remove redundant struct qcom_pcie.dbi
Remove the struct qcom_pcie.dbi member, which is a duplicate of the generic
pp.dbi_base member.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:23:15 -05:00
Bjorn Helgaas
661a0e4ce0 PCI: qcom: Remove unused platform data
The qcom driver never uses the platform drvdata pointer, so don't bother
setting it.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:22:45 -05:00
Bjorn Helgaas
96f61707f2 PCI: mvebu: Use existing of_node pointer
Use the existing "np" pointer instead of looking up dev->of_node again.  No
functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:19:05 -05:00
Bjorn Helgaas
160b4e4189 PCI: mvebu: Add local struct device pointers
Use a local "struct device *dev" for brevity and consistency with other
drivers.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:16:46 -05:00
Bjorn Helgaas
6caaa28d92 PCI: layerscape: Reorder struct ls_pcie
Reorder struct ls_pcie to put generic fields first.  No functional change
intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:15:58 -05:00
Bjorn Helgaas
4726a8231e PCI: layerscape: Remove unused ls_add_pcie_port() platform_device arg
ls_add_pcie_port() doesn't use the platform_device pointer passed to it, so
remove it.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:14:46 -05:00
Bjorn Helgaas
fefe6733e5 PCI: layerscape: Move struct pcie_port setup to probe function
Do the basic pcie_port setup in the probe function for consistency with
other drivers.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:14:29 -05:00
Bjorn Helgaas
7b0b11133c PCI: layerscape: Pass device-specific struct to internal functions
Only interfaces used from outside the driver, e.g., those called by the
DesignWare core, need to accept pointers to the generic struct pcie_port.
Internal interfaces can accept pointers to the device-specific struct,
which makes them more straightforward.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:14:25 -05:00
Bjorn Helgaas
d41d295959 PCI: layerscape: Remove redundant struct ls_pcie.dbi
Remove the struct ls_pcie.dbi member, which is a duplicate of the generic
pp.dbi_base member.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:14:22 -05:00
Bjorn Helgaas
9f6a148f82 PCI: layerscape: Remove unused platform data
The layerscape driver never uses the platform drvdata pointer, so don't
bother setting it.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 23:13:24 -05:00
Bjorn Helgaas
c11125ebe7 PCI: layerscape: Add local struct device pointers
Use a local "struct device *dev" for brevity and consistency with other
drivers.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 22:59:55 -05:00
Bjorn Helgaas
4841f3ad0c PCI: keystone: Reorder struct keystone_pcie
Reorder struct keystone_pcie to put generic fields first.  No functional
change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 22:58:43 -05:00
Bjorn Helgaas
5c725353e1 PCI: keystone: Add app register accessors
Add device-specific register accessors for consistency across host drivers.
No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 22:58:34 -05:00
Bjorn Helgaas
e481e0d00d PCI: keystone: Pass keystone_pcie, not va_app_base, to DBI functions
Instead of passing ks_pcie->va_app_base to DBI mode functions,
pass the struct keystone_pcie.  This will allow them to use register
accessors.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 22:56:55 -05:00
Bjorn Helgaas
5649e4ced9 PCI: keystone: Pass keystone_pcie, not address, to IRQ functions
Instead of passing the application register base to IRQ functions,
pass the struct keystone_pcie.  This will allow them to use register
accessors.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 22:56:46 -05:00
Bjorn Helgaas
f3eca6c4f4 PCI: keystone: Use generic DesignWare accessors
The dw_pcie_readl_rc() and dw_pcie_writel_rc() interfaces already add in
pp->dbi_base, so use those instead of doing it ourselves in the keystone
driver.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 22:54:54 -05:00
Bjorn Helgaas
21fa0c51f0 PCI: keystone: Add local struct device pointers
Use a local "struct device *dev" for brevity and consistency with other
drivers.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 22:53:22 -05:00
Bjorn Helgaas
e3a1698b1e PCI: iproc: Hard-code PCIe capability offset instead of searching
We know where the PCIe capability lives in the host bridge's config space;
in fact, we already hard-coded the offset of the Link Control 2 register.

The hard-coded Link Control 2 offset was 0xdc.  Link Control 2 is at offset
0x30 into the PCIe capability, so the capability itself must be at
0xdc - 0x30 = 0xac.

Hard-code the PCIe capability offset, which means we don't have to search
for it and we can use the standard definitions for registers within the
capability.

No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 22:44:22 -05:00
Bjorn Helgaas
6d76833c52 PCI: iproc: Remove redundant null pointer checking
The callers never pass a null "pcie" pointer (they check for kzalloc
failure), so we don't need to check here.  The bus driver should never call
the probe function with a null ->dev pointer, so we don't need to check
that either.  No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 22:41:07 -05:00
Bjorn Helgaas
f66e5b2907 PCI: iproc: Validate CSR base in BCMA setup code
Validate iproc_pcie->base for BCMA devices just like we already do for
platform devices in iproc_pcie_pltfm_probe().  No functional change
intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-10-11 22:38:51 -05:00