All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Rob Herring <robh@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Scott Branden <scott.branden@broadcom.com>,
	linux-pci@vger.kernel.org, Jan Kiszka <jan.kiszka@siemens.com>,
	Ley Foon Tan <lftan@altera.com>,
	Russell King <linux@armlinux.org.uk>
Subject: Re: [v4] PCI: improve host drivers compile test coverage
Date: Wed, 13 Jun 2018 11:11:46 -0700	[thread overview]
Message-ID: <20180613181146.GA28856@roeck-us.net> (raw)
In-Reply-To: <20180613100935.GA7707@e107981-ln.cambridge.arm.com>

On Wed, Jun 13, 2018 at 11:09:35AM +0100, Lorenzo Pieralisi wrote:
> [+Jan, Ley Foon, RMK]
> 
> On Tue, Jun 12, 2018 at 10:02:29AM -0700, Guenter Roeck wrote:
> > On Thu, Apr 05, 2018 at 02:31:54PM -0500, Rob Herring wrote:
> > > Add COMPILE_TEST on driver config options with it. Some ARM drivers
> > > still have arch dependencies, so we have to keep those dependent on ARM.
> > > 
> > > Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> > > Cc: Bjorn Helgaas <bhelgaas@google.com>
> > > Cc: linux-pci@vger.kernel.org
> > > Signed-off-by: Rob Herring <robh@kernel.org>
> > 
> > This patch has the undesirable side effect that it selects PCI_DOMAINS for
> > sparc32:allmodconfig, which in turn results in
> > 
> > drivers/ata/pata_ali.c: In function 'ali_init_chipset':
> > drivers/ata/pata_ali.c:469:38: error:
> > 	implicit declaration of function 'pci_domain_nr'; did you mean 'pci_iomap_wc'?
> > 
> > Unfortunately, 37bd62d224c82 ("PCI: Enable PCI_DOMAINS along with generic
> > PCI host controller") has pretty much the same result. No idea how to fix
> > the problem, so I won't even try.
> 
> Sorry about that.
> 
> One option would consist in removing all PCI_DOMAINS selection from
> drivers/pci/controller/Kconfig and delegate it to arches even though
> this would force PCI_DOMAINS selection on all ARM platforms (it is
> already selected for ARCH_MULTIPLATFORM).
> 
> Or we add back arch dependency to the relevant host bridges.
> 
> Everything else I have in mind seems overkill to me given that this
> patch was added to improve test coverage (we could add a default
> pci_domain_nr() stub - weak or #define - that returns 0 in case arches
> do not provide an implementation but do we really want to do that ?).
> 
> Thoughts appreciated.
> 

>From the definition of PCI_DOMAINS, I suspect the original idea was that
drivers should depend on it, not select it. Especially auto-selecting
it with PCI_HOST_GENERIC seems like a bad idea to me. However, that is
just me. I'll leave it up to Bjorn to decide what if anything he wants
to do about it.

Guenter

> Lorenzo
> 
> > Guenter
> > 
> > > ---
> > > v4: Drop iProc hunks
> > > 
> > >  drivers/pci/dwc/Kconfig  | 24 ++++++++++++------------
> > >  drivers/pci/host/Kconfig | 31 ++++++++++++++-----------------
> > >  2 files changed, 26 insertions(+), 29 deletions(-)
> > > 
> > > diff --git a/drivers/pci/dwc/Kconfig b/drivers/pci/dwc/Kconfig
> > > index 8c1a5167fb5b..2902544f5834 100644
> > > --- a/drivers/pci/dwc/Kconfig
> > > +++ b/drivers/pci/dwc/Kconfig
> > > @@ -64,21 +64,21 @@ config PCIE_DW_PLAT
> > >  
> > >  config PCI_EXYNOS
> > >  	bool "Samsung Exynos PCIe controller"
> > > -	depends on SOC_EXYNOS5440
> > > +	depends on SOC_EXYNOS5440 || COMPILE_TEST
> > >  	depends on PCI_MSI_IRQ_DOMAIN
> > >  	select PCIEPORTBUS
> > >  	select PCIE_DW_HOST
> > >  
> > >  config PCI_IMX6
> > >  	bool "Freescale i.MX6 PCIe controller"
> > > -	depends on SOC_IMX6Q
> > > +	depends on SOC_IMX6Q || (ARM && COMPILE_TEST)
> > >  	depends on PCI_MSI_IRQ_DOMAIN
> > >  	select PCIEPORTBUS
> > >  	select PCIE_DW_HOST
> > >  
> > >  config PCIE_SPEAR13XX
> > >  	bool "STMicroelectronics SPEAr PCIe controller"
> > > -	depends on ARCH_SPEAR13XX
> > > +	depends on ARCH_SPEAR13XX || COMPILE_TEST
> > >  	depends on PCI_MSI_IRQ_DOMAIN
> > >  	select PCIEPORTBUS
> > >  	select PCIE_DW_HOST
> > > @@ -87,7 +87,7 @@ config PCIE_SPEAR13XX
> > >  
> > >  config PCI_KEYSTONE
> > >  	bool "TI Keystone PCIe controller"
> > > -	depends on ARCH_KEYSTONE
> > > +	depends on ARCH_KEYSTONE || (ARM && COMPILE_TEST)
> > >  	depends on PCI_MSI_IRQ_DOMAIN
> > >  	select PCIEPORTBUS
> > >  	select PCIE_DW_HOST
> > > @@ -99,7 +99,7 @@ config PCI_KEYSTONE
> > >  
> > >  config PCI_LAYERSCAPE
> > >  	bool "Freescale Layerscape PCIe controller"
> > > -	depends on OF && (ARM || ARCH_LAYERSCAPE)
> > > +	depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
> > >  	depends on PCI_MSI_IRQ_DOMAIN
> > >  	select MFD_SYSCON
> > >  	select PCIE_DW_HOST
> > > @@ -107,7 +107,7 @@ config PCI_LAYERSCAPE
> > >  	  Say Y here if you want PCIe controller support on Layerscape SoCs.
> > >  
> > >  config PCI_HISI
> > > -	depends on OF && ARM64
> > > +	depends on OF && (ARM64 || COMPILE_TEST)
> > >  	bool "HiSilicon Hip05 and Hip06 SoCs PCIe controllers"
> > >  	depends on PCI_MSI_IRQ_DOMAIN
> > >  	select PCIEPORTBUS
> > > @@ -119,7 +119,7 @@ config PCI_HISI
> > >  
> > >  config PCIE_QCOM
> > >  	bool "Qualcomm PCIe controller"
> > > -	depends on ARCH_QCOM && OF
> > > +	depends on OF && (ARCH_QCOM || COMPILE_TEST)
> > >  	depends on PCI_MSI_IRQ_DOMAIN
> > >  	select PCIEPORTBUS
> > >  	select PCIE_DW_HOST
> > > @@ -130,7 +130,7 @@ config PCIE_QCOM
> > >  
> > >  config PCIE_ARMADA_8K
> > >  	bool "Marvell Armada-8K PCIe controller"
> > > -	depends on ARCH_MVEBU
> > > +	depends on ARCH_MVEBU || COMPILE_TEST
> > >  	depends on PCI_MSI_IRQ_DOMAIN
> > >  	select PCIEPORTBUS
> > >  	select PCIE_DW_HOST
> > > @@ -145,7 +145,7 @@ config PCIE_ARTPEC6
> > >  
> > >  config PCIE_ARTPEC6_HOST
> > >  	bool "Axis ARTPEC-6 PCIe controller Host Mode"
> > > -	depends on MACH_ARTPEC6
> > > +	depends on MACH_ARTPEC6 || COMPILE_TEST
> > >  	depends on PCI_MSI_IRQ_DOMAIN
> > >  	select PCIEPORTBUS
> > >  	select PCIE_DW_HOST
> > > @@ -156,7 +156,7 @@ config PCIE_ARTPEC6_HOST
> > >  
> > >  config PCIE_ARTPEC6_EP
> > >  	bool "Axis ARTPEC-6 PCIe controller Endpoint Mode"
> > > -	depends on MACH_ARTPEC6
> > > +	depends on MACH_ARTPEC6 || COMPILE_TEST
> > >  	depends on PCI_ENDPOINT
> > >  	select PCIE_DW_EP
> > >  	select PCIE_ARTPEC6
> > > @@ -165,7 +165,7 @@ config PCIE_ARTPEC6_EP
> > >  	  endpoint mode. This uses the DesignWare core.
> > >  
> > >  config PCIE_KIRIN
> > > -	depends on OF && ARM64
> > > +	depends on OF && (ARM64 || COMPILE_TEST)
> > >  	bool "HiSilicon Kirin series SoCs PCIe controllers"
> > >  	depends on PCI_MSI_IRQ_DOMAIN
> > >  	select PCIEPORTBUS
> > > @@ -176,7 +176,7 @@ config PCIE_KIRIN
> > >  
> > >  config PCIE_HISI_STB
> > >  	bool "HiSilicon STB SoCs PCIe controllers"
> > > -	depends on ARCH_HISI
> > > +	depends on ARCH_HISI || COMPILE_TEST
> > >  	depends on PCI_MSI_IRQ_DOMAIN
> > >  	select PCIEPORTBUS
> > >  	select PCIE_DW_HOST
> > > diff --git a/drivers/pci/host/Kconfig b/drivers/pci/host/Kconfig
> > > index 0d0177ce436c..3d180b594ff2 100644
> > > --- a/drivers/pci/host/Kconfig
> > > +++ b/drivers/pci/host/Kconfig
> > > @@ -5,13 +5,13 @@ menu "PCI host controller drivers"
> > >  
> > >  config PCI_MVEBU
> > >  	bool "Marvell EBU PCIe controller"
> > > -	depends on ARCH_MVEBU || ARCH_DOVE
> > > +	depends on ARCH_MVEBU || ARCH_DOVE || COMPILE_TEST
> > >  	depends on ARM
> > >  	depends on OF
> > >  
> > >  config PCI_AARDVARK
> > >  	bool "Aardvark PCIe controller"
> > > -	depends on ARCH_MVEBU && ARM64
> > > +	depends on (ARCH_MVEBU && ARM64) || COMPILE_TEST
> > >  	depends on OF
> > >  	depends on PCI_MSI_IRQ_DOMAIN
> > >  	help
> > > @@ -21,7 +21,7 @@ config PCI_AARDVARK
> > >  
> > >  config PCIE_XILINX_NWL
> > >  	bool "NWL PCIe Core"
> > > -	depends on ARCH_ZYNQMP
> > > +	depends on ARCH_ZYNQMP || COMPILE_TEST
> > >  	depends on PCI_MSI_IRQ_DOMAIN
> > >  	help
> > >  	 Say 'Y' here if you want kernel support for Xilinx
> > > @@ -32,12 +32,11 @@ config PCIE_XILINX_NWL
> > >  config PCI_FTPCI100
> > >  	bool "Faraday Technology FTPCI100 PCI controller"
> > >  	depends on OF
> > > -	depends on ARM
> > >  	default ARCH_GEMINI
> > >  
> > >  config PCI_TEGRA
> > >  	bool "NVIDIA Tegra PCIe controller"
> > > -	depends on ARCH_TEGRA
> > > +	depends on ARCH_TEGRA || COMPILE_TEST
> > >  	depends on PCI_MSI_IRQ_DOMAIN
> > >  	help
> > >  	  Say Y here if you want support for the PCIe host controller found
> > > @@ -45,8 +44,8 @@ config PCI_TEGRA
> > >  
> > >  config PCI_RCAR_GEN2
> > >  	bool "Renesas R-Car Gen2 Internal PCI controller"
> > > -	depends on ARM
> > >  	depends on ARCH_RENESAS || COMPILE_TEST
> > > +	depends on ARM
> > >  	help
> > >  	  Say Y here if you want internal PCI support on R-Car Gen2 SoC.
> > >  	  There are 3 internal PCI controllers available with a single
> > > @@ -54,7 +53,7 @@ config PCI_RCAR_GEN2
> > >  
> > >  config PCIE_RCAR
> > >  	bool "Renesas R-Car PCIe controller"
> > > -	depends on ARCH_RENESAS || (ARM && COMPILE_TEST)
> > > +	depends on ARCH_RENESAS || COMPILE_TEST
> > >  	depends on PCI_MSI_IRQ_DOMAIN
> > >  	help
> > >  	  Say Y here if you want PCIe controller support on R-Car SoCs.
> > > @@ -65,7 +64,7 @@ config PCI_HOST_COMMON
> > >  
> > >  config PCI_HOST_GENERIC
> > >  	bool "Generic PCI host controller"
> > > -	depends on (ARM || ARM64) && OF
> > > +	depends on OF
> > >  	select PCI_HOST_COMMON
> > >  	select IRQ_DOMAIN
> > >  	help
> > > @@ -74,14 +73,14 @@ config PCI_HOST_GENERIC
> > >  
> > >  config PCIE_XILINX
> > >  	bool "Xilinx AXI PCIe host bridge support"
> > > -	depends on ARCH_ZYNQ || MICROBLAZE || (MIPS && PCI_DRIVERS_GENERIC)
> > > +	depends on ARCH_ZYNQ || MICROBLAZE || (MIPS && PCI_DRIVERS_GENERIC) || COMPILE_TEST
> > >  	help
> > >  	  Say 'Y' here if you want kernel to support the Xilinx AXI PCIe
> > >  	  Host Bridge driver.
> > >  
> > >  config PCI_XGENE
> > >  	bool "X-Gene PCIe controller"
> > > -	depends on ARM64
> > > +	depends on ARM64 || COMPILE_TEST
> > >  	depends on OF || (ACPI && PCI_QUIRKS)
> > >  	select PCIEPORTBUS
> > >  	help
> > > @@ -101,7 +100,7 @@ config PCI_XGENE_MSI
> > >  config PCI_V3_SEMI
> > >  	bool "V3 Semiconductor PCI controller"
> > >  	depends on OF
> > > -	depends on ARM
> > > +	depends on ARM || COMPILE_TEST
> > >  	default ARCH_INTEGRATOR_AP
> > >  
> > >  config PCI_VERSATILE
> > > @@ -147,8 +146,7 @@ config PCIE_IPROC_MSI
> > >  
> > >  config PCIE_ALTERA
> > >  	bool "Altera PCIe controller"
> > > -	depends on ARM || NIOS2
> > > -	depends on OF_PCI
> > > +	depends on ARM || NIOS2 || COMPILE_TEST
> > >  	select PCI_DOMAINS
> > >  	help
> > >  	  Say Y here if you want to enable PCIe controller support on Altera
> > > @@ -164,7 +162,7 @@ config PCIE_ALTERA_MSI
> > >  
> > >  config PCI_HOST_THUNDER_PEM
> > >  	bool "Cavium Thunder PCIe controller to off-chip devices"
> > > -	depends on ARM64
> > > +	depends on ARM64 || COMPILE_TEST
> > >  	depends on OF || (ACPI && PCI_QUIRKS)
> > >  	select PCI_HOST_COMMON
> > >  	help
> > > @@ -172,7 +170,7 @@ config PCI_HOST_THUNDER_PEM
> > >  
> > >  config PCI_HOST_THUNDER_ECAM
> > >  	bool "Cavium Thunder ECAM controller to on-chip devices on pass-1.x silicon"
> > > -	depends on ARM64
> > > +	depends on ARM64 || COMPILE_TEST
> > >  	depends on OF || (ACPI && PCI_QUIRKS)
> > >  	select PCI_HOST_COMMON
> > >  	help
> > > @@ -191,9 +189,8 @@ config PCIE_ROCKCHIP
> > >  
> > >  config PCIE_MEDIATEK
> > >  	bool "MediaTek PCIe controller"
> > > -	depends on (ARM || ARM64) && (ARCH_MEDIATEK || COMPILE_TEST)
> > > +	depends on ARCH_MEDIATEK || COMPILE_TEST
> > >  	depends on OF
> > > -	depends on PCI
> > >  	select PCIEPORTBUS
> > >  	help
> > >  	  Say Y here if you want to enable PCIe controller support on

  reply	other threads:[~2018-06-13 18:11 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-05 19:31 [PATCH v4] PCI: improve host drivers compile test coverage Rob Herring
2018-05-18 21:42 ` Bjorn Helgaas
2018-05-19 19:22   ` Rob Herring
2018-06-12 17:02 ` [v4] " Guenter Roeck
2018-06-13 10:09   ` Lorenzo Pieralisi
2018-06-13 18:11     ` Guenter Roeck [this message]
2018-06-14 16:53       ` Lorenzo Pieralisi
2018-06-15 12:58       ` Lorenzo Pieralisi
2018-06-15 17:55         ` Scott Branden
2018-06-15 17:58           ` Scott Branden
2018-06-18 11:34             ` Lorenzo Pieralisi
2018-06-15 18:34           ` Rob Herring
2018-06-18  9:32             ` Lorenzo Pieralisi
2018-06-18 11:42               ` Jan Kiszka
2018-06-18 12:52                 ` Lorenzo Pieralisi
2018-06-18 16:53                   ` Jan Kiszka
2018-06-19  9:27                     ` Lorenzo Pieralisi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180613181146.GA28856@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=bhelgaas@google.com \
    --cc=jan.kiszka@siemens.com \
    --cc=lftan@altera.com \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=robh@kernel.org \
    --cc=scott.branden@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.