linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] PCI: controller: Move PCI_DOMAINS selection to arch Kconfig
@ 2018-06-19 11:21 Lorenzo Pieralisi
  2018-06-20  8:07 ` Jan Kiszka
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Lorenzo Pieralisi @ 2018-06-19 11:21 UTC (permalink / raw)
  To: linux-pci
  Cc: linux-kernel, Lorenzo Pieralisi, Scott Branden, Will Deacon,
	Bjorn Helgaas, Rob Herring, Russell King, Jan Kiszka,
	Guenter Roeck, Ley Foon Tan

Commit 51bc085d6454 ("PCI: Improve host drivers compile test coverage")
added configuration options to allow PCI host controller drivers to be
compile tested on all architectures.

Some host controller drivers (eg PCIE_ALTERA) config entries select
the PCI_DOMAINS config option to enable PCI domains management in
the kernel. Now that host controller drivers can be compiled on
all architectures, this triggers build regressions on arches that
do not implement the PCI_DOMAINS required API (ie pci_domain_nr()):

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'?

Furthemore, some software configurations (ie Jailhouse) require a
PCI_DOMAINS enabled kernel to configure multiple host controllers
without having an explicit dependency on the ARM platform on which
they run.

Make PCI_DOMAINS a visible configuration option on ARM so that software
configurations that need it can manually select it and move the
PCI_DOMAINS selection from PCI controllers configuration file to ARM
sub-arch config entries that currently require it, fixing the issue.

Fixes: 51bc085d6454 ("PCI: Improve host drivers compile test coverage")
Link: https://lkml.kernel.org/r/20180612170229.GA10141@roeck-us.net
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Scott Branden <scott.branden@broadcom.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Jan Kiszka <jan.kiszka@siemens.com>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Ley Foon Tan <lftan@altera.com>
---
v1 -> v2
	- Removed ARCH_VIRT PCI_DOMAINS selection
	- Added PCI_DOMAINS visible config option

v1: https://marc.info/?l=linux-pci&m=152932092612352&w=2

 arch/arm/Kconfig               | 8 +++++++-
 arch/arm/mach-bcm/Kconfig      | 1 +
 arch/arm/mach-socfpga/Kconfig  | 1 +
 drivers/pci/controller/Kconfig | 3 ---
 4 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 54eeb8d00bc6..843edfd000be 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1245,8 +1245,14 @@ config PCI
 	  VESA. If you have PCI, say Y, otherwise N.
 
 config PCI_DOMAINS
-	bool
+	bool "Support for multiple PCI domains"
 	depends on PCI
+	help
+	  Enable PCI domains kernel management. Say Y if your machine
+	  has a PCI bus hierarchy that requires more than one PCI
+	  domain (aka segment) to be correctly managed. Say N otherwise.
+
+	  If you don't know what to do here, say N.
 
 config PCI_DOMAINS_GENERIC
 	def_bool PCI_DOMAINS
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
index c46a728df44e..25aac6ee2ab1 100644
--- a/arch/arm/mach-bcm/Kconfig
+++ b/arch/arm/mach-bcm/Kconfig
@@ -20,6 +20,7 @@ config ARCH_BCM_IPROC
 	select GPIOLIB
 	select ARM_AMBA
 	select PINCTRL
+	select PCI_DOMAINS if PCI
 	help
 	  This enables support for systems based on Broadcom IPROC architected SoCs.
 	  The IPROC complex contains one or more ARM CPUs along with common
diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig
index d0f62eacf59d..4adb901dd5eb 100644
--- a/arch/arm/mach-socfpga/Kconfig
+++ b/arch/arm/mach-socfpga/Kconfig
@@ -10,6 +10,7 @@ menuconfig ARCH_SOCFPGA
 	select HAVE_ARM_SCU
 	select HAVE_ARM_TWD if SMP
 	select MFD_SYSCON
+	select PCI_DOMAINS if PCI
 
 if ARCH_SOCFPGA
 config SOCFPGA_SUSPEND
diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
index 18fa09b3ac8f..cc9fa02d32a0 100644
--- a/drivers/pci/controller/Kconfig
+++ b/drivers/pci/controller/Kconfig
@@ -96,7 +96,6 @@ config PCI_HOST_GENERIC
 	depends on OF
 	select PCI_HOST_COMMON
 	select IRQ_DOMAIN
-	select PCI_DOMAINS
 	help
 	  Say Y here if you want to support a simple generic PCI host
 	  controller, such as the one emulated by kvmtool.
@@ -138,7 +137,6 @@ config PCI_VERSATILE
 
 config PCIE_IPROC
 	tristate
-	select PCI_DOMAINS
 	help
 	  This enables the iProc PCIe core controller support for Broadcom's
 	  iProc family of SoCs. An appropriate bus interface driver needs
@@ -176,7 +174,6 @@ config PCIE_IPROC_MSI
 config PCIE_ALTERA
 	bool "Altera PCIe controller"
 	depends on ARM || NIOS2 || COMPILE_TEST
-	select PCI_DOMAINS
 	help
 	  Say Y here if you want to enable PCIe controller support on Altera
 	  FPGA.
-- 
2.15.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v2] PCI: controller: Move PCI_DOMAINS selection to arch Kconfig
  2018-06-19 11:21 [PATCH v2] PCI: controller: Move PCI_DOMAINS selection to arch Kconfig Lorenzo Pieralisi
@ 2018-06-20  8:07 ` Jan Kiszka
  2018-06-21 16:54   ` Lorenzo Pieralisi
  2018-06-26 15:59 ` Lorenzo Pieralisi
  2018-06-26 17:10 ` Bjorn Helgaas
  2 siblings, 1 reply; 11+ messages in thread
From: Jan Kiszka @ 2018-06-20  8:07 UTC (permalink / raw)
  To: Lorenzo Pieralisi, linux-pci
  Cc: linux-kernel, Scott Branden, Will Deacon, Bjorn Helgaas,
	Rob Herring, Russell King, Guenter Roeck, Ley Foon Tan

On 2018-06-19 13:21, Lorenzo Pieralisi wrote:
> Commit 51bc085d6454 ("PCI: Improve host drivers compile test coverage")
> added configuration options to allow PCI host controller drivers to be
> compile tested on all architectures.
> 
> Some host controller drivers (eg PCIE_ALTERA) config entries select
> the PCI_DOMAINS config option to enable PCI domains management in
> the kernel. Now that host controller drivers can be compiled on
> all architectures, this triggers build regressions on arches that
> do not implement the PCI_DOMAINS required API (ie pci_domain_nr()):
> 
> 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'?
> 
> Furthemore, some software configurations (ie Jailhouse) require a
> PCI_DOMAINS enabled kernel to configure multiple host controllers
> without having an explicit dependency on the ARM platform on which
> they run.
> 
> Make PCI_DOMAINS a visible configuration option on ARM so that software
> configurations that need it can manually select it and move the
> PCI_DOMAINS selection from PCI controllers configuration file to ARM
> sub-arch config entries that currently require it, fixing the issue.
> 
> Fixes: 51bc085d6454 ("PCI: Improve host drivers compile test coverage")
> Link: https://lkml.kernel.org/r/20180612170229.GA10141@roeck-us.net
> Reported-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> Cc: Scott Branden <scott.branden@broadcom.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Bjorn Helgaas <bhelgaas@google.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Jan Kiszka <jan.kiszka@siemens.com>
> Cc: Guenter Roeck <linux@roeck-us.net>
> Cc: Ley Foon Tan <lftan@altera.com>
> ---
> v1 -> v2
> 	- Removed ARCH_VIRT PCI_DOMAINS selection
> 	- Added PCI_DOMAINS visible config option
> 
> v1: https://marc.info/?l=linux-pci&m=152932092612352&w=2
> 
>  arch/arm/Kconfig               | 8 +++++++-
>  arch/arm/mach-bcm/Kconfig      | 1 +
>  arch/arm/mach-socfpga/Kconfig  | 1 +
>  drivers/pci/controller/Kconfig | 3 ---
>  4 files changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 54eeb8d00bc6..843edfd000be 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1245,8 +1245,14 @@ config PCI
>  	  VESA. If you have PCI, say Y, otherwise N.
>  
>  config PCI_DOMAINS
> -	bool
> +	bool "Support for multiple PCI domains"
>  	depends on PCI
> +	help
> +	  Enable PCI domains kernel management. Say Y if your machine
> +	  has a PCI bus hierarchy that requires more than one PCI
> +	  domain (aka segment) to be correctly managed. Say N otherwise.
> +
> +	  If you don't know what to do here, say N.
>  
>  config PCI_DOMAINS_GENERIC
>  	def_bool PCI_DOMAINS
> diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
> index c46a728df44e..25aac6ee2ab1 100644
> --- a/arch/arm/mach-bcm/Kconfig
> +++ b/arch/arm/mach-bcm/Kconfig
> @@ -20,6 +20,7 @@ config ARCH_BCM_IPROC
>  	select GPIOLIB
>  	select ARM_AMBA
>  	select PINCTRL
> +	select PCI_DOMAINS if PCI
>  	help
>  	  This enables support for systems based on Broadcom IPROC architected SoCs.
>  	  The IPROC complex contains one or more ARM CPUs along with common
> diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig
> index d0f62eacf59d..4adb901dd5eb 100644
> --- a/arch/arm/mach-socfpga/Kconfig
> +++ b/arch/arm/mach-socfpga/Kconfig
> @@ -10,6 +10,7 @@ menuconfig ARCH_SOCFPGA
>  	select HAVE_ARM_SCU
>  	select HAVE_ARM_TWD if SMP
>  	select MFD_SYSCON
> +	select PCI_DOMAINS if PCI
>  
>  if ARCH_SOCFPGA
>  config SOCFPGA_SUSPEND
> diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
> index 18fa09b3ac8f..cc9fa02d32a0 100644
> --- a/drivers/pci/controller/Kconfig
> +++ b/drivers/pci/controller/Kconfig
> @@ -96,7 +96,6 @@ config PCI_HOST_GENERIC
>  	depends on OF
>  	select PCI_HOST_COMMON
>  	select IRQ_DOMAIN
> -	select PCI_DOMAINS
>  	help
>  	  Say Y here if you want to support a simple generic PCI host
>  	  controller, such as the one emulated by kvmtool.
> @@ -138,7 +137,6 @@ config PCI_VERSATILE
>  
>  config PCIE_IPROC
>  	tristate
> -	select PCI_DOMAINS
>  	help
>  	  This enables the iProc PCIe core controller support for Broadcom's
>  	  iProc family of SoCs. An appropriate bus interface driver needs
> @@ -176,7 +174,6 @@ config PCIE_IPROC_MSI
>  config PCIE_ALTERA
>  	bool "Altera PCIe controller"
>  	depends on ARM || NIOS2 || COMPILE_TEST
> -	select PCI_DOMAINS
>  	help
>  	  Say Y here if you want to enable PCIe controller support on Altera
>  	  FPGA.
> 

Acked-by: Jan Kiszka <jan.kiszka@siemens.com>


-- 
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2] PCI: controller: Move PCI_DOMAINS selection to arch Kconfig
  2018-06-20  8:07 ` Jan Kiszka
@ 2018-06-21 16:54   ` Lorenzo Pieralisi
  2018-06-22  5:08     ` Scott Branden
  0 siblings, 1 reply; 11+ messages in thread
From: Lorenzo Pieralisi @ 2018-06-21 16:54 UTC (permalink / raw)
  To: Jan Kiszka, Scott Branden, Ley Foon Tan
  Cc: linux-pci, linux-kernel, Will Deacon, Bjorn Helgaas, Rob Herring,
	Russell King, Guenter Roeck

On Wed, Jun 20, 2018 at 10:07:33AM +0200, Jan Kiszka wrote:
> On 2018-06-19 13:21, Lorenzo Pieralisi wrote:
> > Commit 51bc085d6454 ("PCI: Improve host drivers compile test coverage")
> > added configuration options to allow PCI host controller drivers to be
> > compile tested on all architectures.
> > 
> > Some host controller drivers (eg PCIE_ALTERA) config entries select
> > the PCI_DOMAINS config option to enable PCI domains management in
> > the kernel. Now that host controller drivers can be compiled on
> > all architectures, this triggers build regressions on arches that
> > do not implement the PCI_DOMAINS required API (ie pci_domain_nr()):
> > 
> > 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'?
> > 
> > Furthemore, some software configurations (ie Jailhouse) require a
> > PCI_DOMAINS enabled kernel to configure multiple host controllers
> > without having an explicit dependency on the ARM platform on which
> > they run.
> > 
> > Make PCI_DOMAINS a visible configuration option on ARM so that software
> > configurations that need it can manually select it and move the
> > PCI_DOMAINS selection from PCI controllers configuration file to ARM
> > sub-arch config entries that currently require it, fixing the issue.
> > 
> > Fixes: 51bc085d6454 ("PCI: Improve host drivers compile test coverage")
> > Link: https://lkml.kernel.org/r/20180612170229.GA10141@roeck-us.net
> > Reported-by: Guenter Roeck <linux@roeck-us.net>
> > Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> > Cc: Scott Branden <scott.branden@broadcom.com>
> > Cc: Will Deacon <will.deacon@arm.com>
> > Cc: Bjorn Helgaas <bhelgaas@google.com>
> > Cc: Rob Herring <robh@kernel.org>
> > Cc: Russell King <linux@armlinux.org.uk>
> > Cc: Jan Kiszka <jan.kiszka@siemens.com>
> > Cc: Guenter Roeck <linux@roeck-us.net>
> > Cc: Ley Foon Tan <lftan@altera.com>
> > ---
> > v1 -> v2
> > 	- Removed ARCH_VIRT PCI_DOMAINS selection
> > 	- Added PCI_DOMAINS visible config option
> > 
> > v1: https://marc.info/?l=linux-pci&m=152932092612352&w=2
> > 
> >  arch/arm/Kconfig               | 8 +++++++-
> >  arch/arm/mach-bcm/Kconfig      | 1 +
> >  arch/arm/mach-socfpga/Kconfig  | 1 +
> >  drivers/pci/controller/Kconfig | 3 ---
> >  4 files changed, 9 insertions(+), 4 deletions(-)
> > 
> > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> > index 54eeb8d00bc6..843edfd000be 100644
> > --- a/arch/arm/Kconfig
> > +++ b/arch/arm/Kconfig
> > @@ -1245,8 +1245,14 @@ config PCI
> >  	  VESA. If you have PCI, say Y, otherwise N.
> >  
> >  config PCI_DOMAINS
> > -	bool
> > +	bool "Support for multiple PCI domains"
> >  	depends on PCI
> > +	help
> > +	  Enable PCI domains kernel management. Say Y if your machine
> > +	  has a PCI bus hierarchy that requires more than one PCI
> > +	  domain (aka segment) to be correctly managed. Say N otherwise.
> > +
> > +	  If you don't know what to do here, say N.
> >  
> >  config PCI_DOMAINS_GENERIC
> >  	def_bool PCI_DOMAINS
> > diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
> > index c46a728df44e..25aac6ee2ab1 100644
> > --- a/arch/arm/mach-bcm/Kconfig
> > +++ b/arch/arm/mach-bcm/Kconfig
> > @@ -20,6 +20,7 @@ config ARCH_BCM_IPROC
> >  	select GPIOLIB
> >  	select ARM_AMBA
> >  	select PINCTRL
> > +	select PCI_DOMAINS if PCI
> >  	help
> >  	  This enables support for systems based on Broadcom IPROC architected SoCs.
> >  	  The IPROC complex contains one or more ARM CPUs along with common
> > diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig
> > index d0f62eacf59d..4adb901dd5eb 100644
> > --- a/arch/arm/mach-socfpga/Kconfig
> > +++ b/arch/arm/mach-socfpga/Kconfig
> > @@ -10,6 +10,7 @@ menuconfig ARCH_SOCFPGA
> >  	select HAVE_ARM_SCU
> >  	select HAVE_ARM_TWD if SMP
> >  	select MFD_SYSCON
> > +	select PCI_DOMAINS if PCI
> >  
> >  if ARCH_SOCFPGA
> >  config SOCFPGA_SUSPEND
> > diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
> > index 18fa09b3ac8f..cc9fa02d32a0 100644
> > --- a/drivers/pci/controller/Kconfig
> > +++ b/drivers/pci/controller/Kconfig
> > @@ -96,7 +96,6 @@ config PCI_HOST_GENERIC
> >  	depends on OF
> >  	select PCI_HOST_COMMON
> >  	select IRQ_DOMAIN
> > -	select PCI_DOMAINS
> >  	help
> >  	  Say Y here if you want to support a simple generic PCI host
> >  	  controller, such as the one emulated by kvmtool.
> > @@ -138,7 +137,6 @@ config PCI_VERSATILE
> >  
> >  config PCIE_IPROC
> >  	tristate
> > -	select PCI_DOMAINS
> >  	help
> >  	  This enables the iProc PCIe core controller support for Broadcom's
> >  	  iProc family of SoCs. An appropriate bus interface driver needs
> > @@ -176,7 +174,6 @@ config PCIE_IPROC_MSI
> >  config PCIE_ALTERA
> >  	bool "Altera PCIe controller"
> >  	depends on ARM || NIOS2 || COMPILE_TEST
> > -	select PCI_DOMAINS
> >  	help
> >  	  Say Y here if you want to enable PCIe controller support on Altera
> >  	  FPGA.
> > 
> 
> Acked-by: Jan Kiszka <jan.kiszka@siemens.com>

Thanks a lot. Scott, Ley Foon, does it work for you ? I would like
to ask Bjorn to send it asap since the build on sparc is still broken.

Thanks,
Lorenzo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2] PCI: controller: Move PCI_DOMAINS selection to arch Kconfig
  2018-06-21 16:54   ` Lorenzo Pieralisi
@ 2018-06-22  5:08     ` Scott Branden
  2018-06-22 15:59       ` Ley Foon Tan
  0 siblings, 1 reply; 11+ messages in thread
From: Scott Branden @ 2018-06-22  5:08 UTC (permalink / raw)
  To: Lorenzo Pieralisi, Jan Kiszka, Ley Foon Tan
  Cc: linux-pci, linux-kernel, Will Deacon, Bjorn Helgaas, Rob Herring,
	Russell King, Guenter Roeck



On 18-06-21 09:54 AM, Lorenzo Pieralisi wrote:
> On Wed, Jun 20, 2018 at 10:07:33AM +0200, Jan Kiszka wrote:
>> On 2018-06-19 13:21, Lorenzo Pieralisi wrote:
>>> Commit 51bc085d6454 ("PCI: Improve host drivers compile test coverage")
>>> added configuration options to allow PCI host controller drivers to be
>>> compile tested on all architectures.
>>>
>>> Some host controller drivers (eg PCIE_ALTERA) config entries select
>>> the PCI_DOMAINS config option to enable PCI domains management in
>>> the kernel. Now that host controller drivers can be compiled on
>>> all architectures, this triggers build regressions on arches that
>>> do not implement the PCI_DOMAINS required API (ie pci_domain_nr()):
>>>
>>> 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'?
>>>
>>> Furthemore, some software configurations (ie Jailhouse) require a
>>> PCI_DOMAINS enabled kernel to configure multiple host controllers
>>> without having an explicit dependency on the ARM platform on which
>>> they run.
>>>
>>> Make PCI_DOMAINS a visible configuration option on ARM so that software
>>> configurations that need it can manually select it and move the
>>> PCI_DOMAINS selection from PCI controllers configuration file to ARM
>>> sub-arch config entries that currently require it, fixing the issue.
>>>
>>> Fixes: 51bc085d6454 ("PCI: Improve host drivers compile test coverage")
>>> Link: https://lkml.kernel.org/r/20180612170229.GA10141@roeck-us.net
>>> Reported-by: Guenter Roeck <linux@roeck-us.net>
>>> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
>>> Cc: Scott Branden <scott.branden@broadcom.com>
>>> Cc: Will Deacon <will.deacon@arm.com>
>>> Cc: Bjorn Helgaas <bhelgaas@google.com>
>>> Cc: Rob Herring <robh@kernel.org>
>>> Cc: Russell King <linux@armlinux.org.uk>
>>> Cc: Jan Kiszka <jan.kiszka@siemens.com>
>>> Cc: Guenter Roeck <linux@roeck-us.net>
>>> Cc: Ley Foon Tan <lftan@altera.com>
>>> ---
>>> v1 -> v2
>>> 	- Removed ARCH_VIRT PCI_DOMAINS selection
>>> 	- Added PCI_DOMAINS visible config option
>>>
>>> v1: https://marc.info/?l=linux-pci&m=152932092612352&w=2
>>>
>>>   arch/arm/Kconfig               | 8 +++++++-
>>>   arch/arm/mach-bcm/Kconfig      | 1 +
>>>   arch/arm/mach-socfpga/Kconfig  | 1 +
>>>   drivers/pci/controller/Kconfig | 3 ---
>>>   4 files changed, 9 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>>> index 54eeb8d00bc6..843edfd000be 100644
>>> --- a/arch/arm/Kconfig
>>> +++ b/arch/arm/Kconfig
>>> @@ -1245,8 +1245,14 @@ config PCI
>>>   	  VESA. If you have PCI, say Y, otherwise N.
>>>   
>>>   config PCI_DOMAINS
>>> -	bool
>>> +	bool "Support for multiple PCI domains"
>>>   	depends on PCI
>>> +	help
>>> +	  Enable PCI domains kernel management. Say Y if your machine
>>> +	  has a PCI bus hierarchy that requires more than one PCI
>>> +	  domain (aka segment) to be correctly managed. Say N otherwise.
>>> +
>>> +	  If you don't know what to do here, say N.
>>>   
>>>   config PCI_DOMAINS_GENERIC
>>>   	def_bool PCI_DOMAINS
>>> diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
>>> index c46a728df44e..25aac6ee2ab1 100644
>>> --- a/arch/arm/mach-bcm/Kconfig
>>> +++ b/arch/arm/mach-bcm/Kconfig
>>> @@ -20,6 +20,7 @@ config ARCH_BCM_IPROC
>>>   	select GPIOLIB
>>>   	select ARM_AMBA
>>>   	select PINCTRL
>>> +	select PCI_DOMAINS if PCI
>>>   	help
>>>   	  This enables support for systems based on Broadcom IPROC architected SoCs.
>>>   	  The IPROC complex contains one or more ARM CPUs along with common
>>> diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig
>>> index d0f62eacf59d..4adb901dd5eb 100644
>>> --- a/arch/arm/mach-socfpga/Kconfig
>>> +++ b/arch/arm/mach-socfpga/Kconfig
>>> @@ -10,6 +10,7 @@ menuconfig ARCH_SOCFPGA
>>>   	select HAVE_ARM_SCU
>>>   	select HAVE_ARM_TWD if SMP
>>>   	select MFD_SYSCON
>>> +	select PCI_DOMAINS if PCI
>>>   
>>>   if ARCH_SOCFPGA
>>>   config SOCFPGA_SUSPEND
>>> diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
>>> index 18fa09b3ac8f..cc9fa02d32a0 100644
>>> --- a/drivers/pci/controller/Kconfig
>>> +++ b/drivers/pci/controller/Kconfig
>>> @@ -96,7 +96,6 @@ config PCI_HOST_GENERIC
>>>   	depends on OF
>>>   	select PCI_HOST_COMMON
>>>   	select IRQ_DOMAIN
>>> -	select PCI_DOMAINS
>>>   	help
>>>   	  Say Y here if you want to support a simple generic PCI host
>>>   	  controller, such as the one emulated by kvmtool.
>>> @@ -138,7 +137,6 @@ config PCI_VERSATILE
>>>   
>>>   config PCIE_IPROC
>>>   	tristate
>>> -	select PCI_DOMAINS
>>>   	help
>>>   	  This enables the iProc PCIe core controller support for Broadcom's
>>>   	  iProc family of SoCs. An appropriate bus interface driver needs
>>> @@ -176,7 +174,6 @@ config PCIE_IPROC_MSI
>>>   config PCIE_ALTERA
>>>   	bool "Altera PCIe controller"
>>>   	depends on ARM || NIOS2 || COMPILE_TEST
>>> -	select PCI_DOMAINS
>>>   	help
>>>   	  Say Y here if you want to enable PCIe controller support on Altera
>>>   	  FPGA.
>>>
>> Acked-by: Jan Kiszka <jan.kiszka@siemens.com>
> Thanks a lot. Scott, Ley Foon, does it work for you ? I would like
> to ask Bjorn to send it asap since the build on sparc is still broken.
Change will have to be made for arm64 for ARCH_BCM_IPROC as well.
>
> Thanks,
> Lorenzo


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2] PCI: controller: Move PCI_DOMAINS selection to arch Kconfig
  2018-06-22  5:08     ` Scott Branden
@ 2018-06-22 15:59       ` Ley Foon Tan
  2018-06-25  9:27         ` Lorenzo Pieralisi
  0 siblings, 1 reply; 11+ messages in thread
From: Ley Foon Tan @ 2018-06-22 15:59 UTC (permalink / raw)
  To: Scott Branden, Lorenzo Pieralisi, Jan Kiszka
  Cc: linux-pci, linux-kernel, Will Deacon, Bjorn Helgaas, Rob Herring,
	Russell King, Guenter Roeck

On Thu, 2018-06-21 at 22:08 -0700, Scott Branden wrote:
> 
> 
> On 18-06-21 09:54 AM, Lorenzo Pieralisi wrote:
> > 
> > 
> > On Wed, Jun 20, 2018 at 10:07:33AM +0200, Jan Kiszka wrote:
> > > 
> > > 
> > > On 2018-06-19 13:21, Lorenzo Pieralisi wrote:
> > > > 
> > > > 
> > > > Commit 51bc085d6454 ("PCI: Improve host drivers compile test
> > > > coverage")
> > > > added configuration options to allow PCI host controller
> > > > drivers to be
> > > > compile tested on all architectures.
> > > > 
> > > > Some host controller drivers (eg PCIE_ALTERA) config entries
> > > > select
> > > > the PCI_DOMAINS config option to enable PCI domains management
> > > > in
> > > > the kernel. Now that host controller drivers can be compiled on
> > > > all architectures, this triggers build regressions on arches
> > > > that
> > > > do not implement the PCI_DOMAINS required API (ie
> > > > pci_domain_nr()):
> > > > 
> > > > 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'?
> > > > 
> > > > Furthemore, some software configurations (ie Jailhouse) require
> > > > a
> > > > PCI_DOMAINS enabled kernel to configure multiple host
> > > > controllers
> > > > without having an explicit dependency on the ARM platform on
> > > > which
> > > > they run.
> > > > 
> > > > Make PCI_DOMAINS a visible configuration option on ARM so that
> > > > software
> > > > configurations that need it can manually select it and move the
> > > > PCI_DOMAINS selection from PCI controllers configuration file
> > > > to ARM
> > > > sub-arch config entries that currently require it, fixing the
> > > > issue.
> > > > 
> > > > Fixes: 51bc085d6454 ("PCI: Improve host drivers compile test
> > > > coverage")
> > > > Link: https://lkml.kernel.org/r/20180612170229.GA10141@roeck-us
> > > > .net
> > > > Reported-by: Guenter Roeck <linux@roeck-us.net>
> > > > Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> > > > Cc: Scott Branden <scott.branden@broadcom.com>
> > > > Cc: Will Deacon <will.deacon@arm.com>
> > > > Cc: Bjorn Helgaas <bhelgaas@google.com>
> > > > Cc: Rob Herring <robh@kernel.org>
> > > > Cc: Russell King <linux@armlinux.org.uk>
> > > > Cc: Jan Kiszka <jan.kiszka@siemens.com>
> > > > Cc: Guenter Roeck <linux@roeck-us.net>
> > > > Cc: Ley Foon Tan <lftan@altera.com>
> > > > ---
> > > > v1 -> v2
> > > >     - Removed ARCH_VIRT PCI_DOMAINS selection
> > > >     - Added PCI_DOMAINS visible config option
> > > > 
> > > > v1: https://marc.info/?l=linux-pci&m=152932092612352&w=2
> > > > 
> > > >   arch/arm/Kconfig               | 8 +++++++-
> > > >   arch/arm/mach-bcm/Kconfig      | 1 +
> > > >   arch/arm/mach-socfpga/Kconfig  | 1 +
> > > >   drivers/pci/controller/Kconfig | 3 ---
> > > >   4 files changed, 9 insertions(+), 4 deletions(-)
> > > > 
> > > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> > > > index 54eeb8d00bc6..843edfd000be 100644
> > > > --- a/arch/arm/Kconfig
> > > > +++ b/arch/arm/Kconfig
> > > > @@ -1245,8 +1245,14 @@ config PCI
> > > >       VESA. If you have PCI, say Y, otherwise N.
> > > > 
> > > >   config PCI_DOMAINS
> > > > -   bool
> > > > +   bool "Support for multiple PCI domains"
> > > >     depends on PCI
> > > > +   help
> > > > +     Enable PCI domains kernel management. Say Y if your
> > > > machine
> > > > +     has a PCI bus hierarchy that requires more than one PCI
> > > > +     domain (aka segment) to be correctly managed. Say N
> > > > otherwise.
> > > > +
> > > > +     If you don't know what to do here, say N.
> > > > 
> > > >   config PCI_DOMAINS_GENERIC
> > > >     def_bool PCI_DOMAINS
> > > > diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-
> > > > bcm/Kconfig
> > > > index c46a728df44e..25aac6ee2ab1 100644
> > > > --- a/arch/arm/mach-bcm/Kconfig
> > > > +++ b/arch/arm/mach-bcm/Kconfig
> > > > @@ -20,6 +20,7 @@ config ARCH_BCM_IPROC
> > > >     select GPIOLIB
> > > >     select ARM_AMBA
> > > >     select PINCTRL
> > > > +   select PCI_DOMAINS if PCI
> > > >     help
> > > >       This enables support for systems based on Broadcom IPROC
> > > > architected SoCs.
> > > >       The IPROC complex contains one or more ARM CPUs along
> > > > with common
> > > > diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-
> > > > socfpga/Kconfig
> > > > index d0f62eacf59d..4adb901dd5eb 100644
> > > > --- a/arch/arm/mach-socfpga/Kconfig
> > > > +++ b/arch/arm/mach-socfpga/Kconfig
> > > > @@ -10,6 +10,7 @@ menuconfig ARCH_SOCFPGA
> > > >     select HAVE_ARM_SCU
> > > >     select HAVE_ARM_TWD if SMP
> > > >     select MFD_SYSCON
> > > > +   select PCI_DOMAINS if PCI
> > > > 
> > > >   if ARCH_SOCFPGA
> > > >   config SOCFPGA_SUSPEND
> > > > diff --git a/drivers/pci/controller/Kconfig
> > > > b/drivers/pci/controller/Kconfig
> > > > index 18fa09b3ac8f..cc9fa02d32a0 100644
> > > > --- a/drivers/pci/controller/Kconfig
> > > > +++ b/drivers/pci/controller/Kconfig
> > > > @@ -96,7 +96,6 @@ config PCI_HOST_GENERIC
> > > >     depends on OF
> > > >     select PCI_HOST_COMMON
> > > >     select IRQ_DOMAIN
> > > > -   select PCI_DOMAINS
> > > >     help
> > > >       Say Y here if you want to support a simple generic PCI
> > > > host
> > > >       controller, such as the one emulated by kvmtool.
> > > > @@ -138,7 +137,6 @@ config PCI_VERSATILE
> > > > 
> > > >   config PCIE_IPROC
> > > >     tristate
> > > > -   select PCI_DOMAINS
> > > >     help
> > > >       This enables the iProc PCIe core controller support for
> > > > Broadcom's
> > > >       iProc family of SoCs. An appropriate bus interface driver
> > > > needs
> > > > @@ -176,7 +174,6 @@ config PCIE_IPROC_MSI
> > > >   config PCIE_ALTERA
> > > >     bool "Altera PCIe controller"
> > > >     depends on ARM || NIOS2 || COMPILE_TEST
> > > > -   select PCI_DOMAINS
> > > >     help
> > > >       Say Y here if you want to enable PCIe controller support
> > > > on Altera
> > > >       FPGA.
> > > > 
> > > Acked-by: Jan Kiszka <jan.kiszka@siemens.com>
> > Thanks a lot. Scott, Ley Foon, does it work for you ? I would like
> > to ask Bjorn to send it asap since the build on sparc is still
> > broken.
> Change will have to be made for arm64 for ARCH_BCM_IPROC as well.
Yes, need to add it to arm64 too. Others are okay.

Acked-by: Ley Foon Tan <ley.foon.tan@intel.com>


Regards
Ley Foon

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2] PCI: controller: Move PCI_DOMAINS selection to arch Kconfig
  2018-06-22 15:59       ` Ley Foon Tan
@ 2018-06-25  9:27         ` Lorenzo Pieralisi
  2018-06-26  6:48           ` Scott Branden
  0 siblings, 1 reply; 11+ messages in thread
From: Lorenzo Pieralisi @ 2018-06-25  9:27 UTC (permalink / raw)
  To: Ley Foon Tan
  Cc: Scott Branden, Jan Kiszka, linux-pci, linux-kernel, Will Deacon,
	Bjorn Helgaas, Rob Herring, Russell King, Guenter Roeck

On Fri, Jun 22, 2018 at 11:59:08PM +0800, Ley Foon Tan wrote:
> On Thu, 2018-06-21 at 22:08 -0700, Scott Branden wrote:
> > 
> > 
> > On 18-06-21 09:54 AM, Lorenzo Pieralisi wrote:
> > > 
> > > 
> > > On Wed, Jun 20, 2018 at 10:07:33AM +0200, Jan Kiszka wrote:
> > > > 
> > > > 
> > > > On 2018-06-19 13:21, Lorenzo Pieralisi wrote:
> > > > > 
> > > > > 
> > > > > Commit 51bc085d6454 ("PCI: Improve host drivers compile test
> > > > > coverage")
> > > > > added configuration options to allow PCI host controller
> > > > > drivers to be
> > > > > compile tested on all architectures.
> > > > > 
> > > > > Some host controller drivers (eg PCIE_ALTERA) config entries
> > > > > select
> > > > > the PCI_DOMAINS config option to enable PCI domains management
> > > > > in
> > > > > the kernel. Now that host controller drivers can be compiled on
> > > > > all architectures, this triggers build regressions on arches
> > > > > that
> > > > > do not implement the PCI_DOMAINS required API (ie
> > > > > pci_domain_nr()):
> > > > > 
> > > > > 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'?
> > > > > 
> > > > > Furthemore, some software configurations (ie Jailhouse) require
> > > > > a
> > > > > PCI_DOMAINS enabled kernel to configure multiple host
> > > > > controllers
> > > > > without having an explicit dependency on the ARM platform on
> > > > > which
> > > > > they run.
> > > > > 
> > > > > Make PCI_DOMAINS a visible configuration option on ARM so that
> > > > > software
> > > > > configurations that need it can manually select it and move the
> > > > > PCI_DOMAINS selection from PCI controllers configuration file
> > > > > to ARM
> > > > > sub-arch config entries that currently require it, fixing the
> > > > > issue.
> > > > > 
> > > > > Fixes: 51bc085d6454 ("PCI: Improve host drivers compile test
> > > > > coverage")
> > > > > Link: https://lkml.kernel.org/r/20180612170229.GA10141@roeck-us
> > > > > .net
> > > > > Reported-by: Guenter Roeck <linux@roeck-us.net>
> > > > > Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> > > > > Cc: Scott Branden <scott.branden@broadcom.com>
> > > > > Cc: Will Deacon <will.deacon@arm.com>
> > > > > Cc: Bjorn Helgaas <bhelgaas@google.com>
> > > > > Cc: Rob Herring <robh@kernel.org>
> > > > > Cc: Russell King <linux@armlinux.org.uk>
> > > > > Cc: Jan Kiszka <jan.kiszka@siemens.com>
> > > > > Cc: Guenter Roeck <linux@roeck-us.net>
> > > > > Cc: Ley Foon Tan <lftan@altera.com>
> > > > > ---
> > > > > v1 -> v2
> > > > >     - Removed ARCH_VIRT PCI_DOMAINS selection
> > > > >     - Added PCI_DOMAINS visible config option
> > > > > 
> > > > > v1: https://marc.info/?l=linux-pci&m=152932092612352&w=2
> > > > > 
> > > > >   arch/arm/Kconfig               | 8 +++++++-
> > > > >   arch/arm/mach-bcm/Kconfig      | 1 +
> > > > >   arch/arm/mach-socfpga/Kconfig  | 1 +
> > > > >   drivers/pci/controller/Kconfig | 3 ---
> > > > >   4 files changed, 9 insertions(+), 4 deletions(-)
> > > > > 
> > > > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> > > > > index 54eeb8d00bc6..843edfd000be 100644
> > > > > --- a/arch/arm/Kconfig
> > > > > +++ b/arch/arm/Kconfig
> > > > > @@ -1245,8 +1245,14 @@ config PCI
> > > > >       VESA. If you have PCI, say Y, otherwise N.
> > > > > 
> > > > >   config PCI_DOMAINS
> > > > > -   bool
> > > > > +   bool "Support for multiple PCI domains"
> > > > >     depends on PCI
> > > > > +   help
> > > > > +     Enable PCI domains kernel management. Say Y if your
> > > > > machine
> > > > > +     has a PCI bus hierarchy that requires more than one PCI
> > > > > +     domain (aka segment) to be correctly managed. Say N
> > > > > otherwise.
> > > > > +
> > > > > +     If you don't know what to do here, say N.
> > > > > 
> > > > >   config PCI_DOMAINS_GENERIC
> > > > >     def_bool PCI_DOMAINS
> > > > > diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-
> > > > > bcm/Kconfig
> > > > > index c46a728df44e..25aac6ee2ab1 100644
> > > > > --- a/arch/arm/mach-bcm/Kconfig
> > > > > +++ b/arch/arm/mach-bcm/Kconfig
> > > > > @@ -20,6 +20,7 @@ config ARCH_BCM_IPROC
> > > > >     select GPIOLIB
> > > > >     select ARM_AMBA
> > > > >     select PINCTRL
> > > > > +   select PCI_DOMAINS if PCI
> > > > >     help
> > > > >       This enables support for systems based on Broadcom IPROC
> > > > > architected SoCs.
> > > > >       The IPROC complex contains one or more ARM CPUs along
> > > > > with common
> > > > > diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-
> > > > > socfpga/Kconfig
> > > > > index d0f62eacf59d..4adb901dd5eb 100644
> > > > > --- a/arch/arm/mach-socfpga/Kconfig
> > > > > +++ b/arch/arm/mach-socfpga/Kconfig
> > > > > @@ -10,6 +10,7 @@ menuconfig ARCH_SOCFPGA
> > > > >     select HAVE_ARM_SCU
> > > > >     select HAVE_ARM_TWD if SMP
> > > > >     select MFD_SYSCON
> > > > > +   select PCI_DOMAINS if PCI
> > > > > 
> > > > >   if ARCH_SOCFPGA
> > > > >   config SOCFPGA_SUSPEND
> > > > > diff --git a/drivers/pci/controller/Kconfig
> > > > > b/drivers/pci/controller/Kconfig
> > > > > index 18fa09b3ac8f..cc9fa02d32a0 100644
> > > > > --- a/drivers/pci/controller/Kconfig
> > > > > +++ b/drivers/pci/controller/Kconfig
> > > > > @@ -96,7 +96,6 @@ config PCI_HOST_GENERIC
> > > > >     depends on OF
> > > > >     select PCI_HOST_COMMON
> > > > >     select IRQ_DOMAIN
> > > > > -   select PCI_DOMAINS
> > > > >     help
> > > > >       Say Y here if you want to support a simple generic PCI
> > > > > host
> > > > >       controller, such as the one emulated by kvmtool.
> > > > > @@ -138,7 +137,6 @@ config PCI_VERSATILE
> > > > > 
> > > > >   config PCIE_IPROC
> > > > >     tristate
> > > > > -   select PCI_DOMAINS
> > > > >     help
> > > > >       This enables the iProc PCIe core controller support for
> > > > > Broadcom's
> > > > >       iProc family of SoCs. An appropriate bus interface driver
> > > > > needs
> > > > > @@ -176,7 +174,6 @@ config PCIE_IPROC_MSI
> > > > >   config PCIE_ALTERA
> > > > >     bool "Altera PCIe controller"
> > > > >     depends on ARM || NIOS2 || COMPILE_TEST
> > > > > -   select PCI_DOMAINS
> > > > >     help
> > > > >       Say Y here if you want to enable PCIe controller support
> > > > > on Altera
> > > > >       FPGA.
> > > > > 
> > > > Acked-by: Jan Kiszka <jan.kiszka@siemens.com>
> > > Thanks a lot. Scott, Ley Foon, does it work for you ? I would like
> > > to ask Bjorn to send it asap since the build on sparc is still
> > > broken.
> > Change will have to be made for arm64 for ARCH_BCM_IPROC as well.
> Yes, need to add it to arm64 too. Others are okay.

On arm64 CONFIG_PCI_DOMAINS defaults to CONFIG_PCI so there is no need
to select it, if that's all you need changed there is nothing to
change and this patch is read to be merged.

Lorenzo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2] PCI: controller: Move PCI_DOMAINS selection to arch Kconfig
  2018-06-25  9:27         ` Lorenzo Pieralisi
@ 2018-06-26  6:48           ` Scott Branden
  2018-06-26 11:23             ` Lorenzo Pieralisi
  0 siblings, 1 reply; 11+ messages in thread
From: Scott Branden @ 2018-06-26  6:48 UTC (permalink / raw)
  To: Lorenzo Pieralisi, Ley Foon Tan
  Cc: Jan Kiszka, linux-pci, linux-kernel, Will Deacon, Bjorn Helgaas,
	Rob Herring, Russell King, Guenter Roeck

Hi Lorenzo,


On 18-06-25 02:27 AM, Lorenzo Pieralisi wrote:
> On Fri, Jun 22, 2018 at 11:59:08PM +0800, Ley Foon Tan wrote:
>> On Thu, 2018-06-21 at 22:08 -0700, Scott Branden wrote:
>>>
>>> On 18-06-21 09:54 AM, Lorenzo Pieralisi wrote:
>>>>
>>>> On Wed, Jun 20, 2018 at 10:07:33AM +0200, Jan Kiszka wrote:
>>>>>
>>>>> On 2018-06-19 13:21, Lorenzo Pieralisi wrote:
>>>>>>
>>>>>> Commit 51bc085d6454 ("PCI: Improve host drivers compile test
>>>>>> coverage")
>>>>>> added configuration options to allow PCI host controller
>>>>>> drivers to be
>>>>>> compile tested on all architectures.
>>>>>>
>>>>>> Some host controller drivers (eg PCIE_ALTERA) config entries
>>>>>> select
>>>>>> the PCI_DOMAINS config option to enable PCI domains management
>>>>>> in
>>>>>> the kernel. Now that host controller drivers can be compiled on
>>>>>> all architectures, this triggers build regressions on arches
>>>>>> that
>>>>>> do not implement the PCI_DOMAINS required API (ie
>>>>>> pci_domain_nr()):
>>>>>>
>>>>>> 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'?
>>>>>>
>>>>>> Furthemore, some software configurations (ie Jailhouse) require
>>>>>> a
>>>>>> PCI_DOMAINS enabled kernel to configure multiple host
>>>>>> controllers
>>>>>> without having an explicit dependency on the ARM platform on
>>>>>> which
>>>>>> they run.
>>>>>>
>>>>>> Make PCI_DOMAINS a visible configuration option on ARM so that
>>>>>> software
>>>>>> configurations that need it can manually select it and move the
>>>>>> PCI_DOMAINS selection from PCI controllers configuration file
>>>>>> to ARM
>>>>>> sub-arch config entries that currently require it, fixing the
>>>>>> issue.
>>>>>>
>>>>>> Fixes: 51bc085d6454 ("PCI: Improve host drivers compile test
>>>>>> coverage")
>>>>>> Link: https://lkml.kernel.org/r/20180612170229.GA10141@roeck-us
>>>>>> .net
>>>>>> Reported-by: Guenter Roeck <linux@roeck-us.net>
>>>>>> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
>>>>>> Cc: Scott Branden <scott.branden@broadcom.com>
>>>>>> Cc: Will Deacon <will.deacon@arm.com>
>>>>>> Cc: Bjorn Helgaas <bhelgaas@google.com>
>>>>>> Cc: Rob Herring <robh@kernel.org>
>>>>>> Cc: Russell King <linux@armlinux.org.uk>
>>>>>> Cc: Jan Kiszka <jan.kiszka@siemens.com>
>>>>>> Cc: Guenter Roeck <linux@roeck-us.net>
>>>>>> Cc: Ley Foon Tan <lftan@altera.com>
>>>>>> ---
>>>>>> v1 -> v2
>>>>>>      - Removed ARCH_VIRT PCI_DOMAINS selection
>>>>>>      - Added PCI_DOMAINS visible config option
>>>>>>
>>>>>> v1: https://marc.info/?l=linux-pci&m=152932092612352&w=2
>>>>>>
>>>>>>    arch/arm/Kconfig               | 8 +++++++-
>>>>>>    arch/arm/mach-bcm/Kconfig      | 1 +
>>>>>>    arch/arm/mach-socfpga/Kconfig  | 1 +
>>>>>>    drivers/pci/controller/Kconfig | 3 ---
>>>>>>    4 files changed, 9 insertions(+), 4 deletions(-)
>>>>>>
>>>>>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>>>>>> index 54eeb8d00bc6..843edfd000be 100644
>>>>>> --- a/arch/arm/Kconfig
>>>>>> +++ b/arch/arm/Kconfig
>>>>>> @@ -1245,8 +1245,14 @@ config PCI
>>>>>>        VESA. If you have PCI, say Y, otherwise N.
>>>>>>
>>>>>>    config PCI_DOMAINS
>>>>>> -   bool
>>>>>> +   bool "Support for multiple PCI domains"
>>>>>>      depends on PCI
>>>>>> +   help
>>>>>> +     Enable PCI domains kernel management. Say Y if your
>>>>>> machine
>>>>>> +     has a PCI bus hierarchy that requires more than one PCI
>>>>>> +     domain (aka segment) to be correctly managed. Say N
>>>>>> otherwise.
>>>>>> +
>>>>>> +     If you don't know what to do here, say N.
>>>>>>
>>>>>>    config PCI_DOMAINS_GENERIC
>>>>>>      def_bool PCI_DOMAINS
>>>>>> diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-
>>>>>> bcm/Kconfig
>>>>>> index c46a728df44e..25aac6ee2ab1 100644
>>>>>> --- a/arch/arm/mach-bcm/Kconfig
>>>>>> +++ b/arch/arm/mach-bcm/Kconfig
>>>>>> @@ -20,6 +20,7 @@ config ARCH_BCM_IPROC
>>>>>>      select GPIOLIB
>>>>>>      select ARM_AMBA
>>>>>>      select PINCTRL
>>>>>> +   select PCI_DOMAINS if PCI
>>>>>>      help
>>>>>>        This enables support for systems based on Broadcom IPROC
>>>>>> architected SoCs.
>>>>>>        The IPROC complex contains one or more ARM CPUs along
>>>>>> with common
>>>>>> diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-
>>>>>> socfpga/Kconfig
>>>>>> index d0f62eacf59d..4adb901dd5eb 100644
>>>>>> --- a/arch/arm/mach-socfpga/Kconfig
>>>>>> +++ b/arch/arm/mach-socfpga/Kconfig
>>>>>> @@ -10,6 +10,7 @@ menuconfig ARCH_SOCFPGA
>>>>>>      select HAVE_ARM_SCU
>>>>>>      select HAVE_ARM_TWD if SMP
>>>>>>      select MFD_SYSCON
>>>>>> +   select PCI_DOMAINS if PCI
>>>>>>
>>>>>>    if ARCH_SOCFPGA
>>>>>>    config SOCFPGA_SUSPEND
>>>>>> diff --git a/drivers/pci/controller/Kconfig
>>>>>> b/drivers/pci/controller/Kconfig
>>>>>> index 18fa09b3ac8f..cc9fa02d32a0 100644
>>>>>> --- a/drivers/pci/controller/Kconfig
>>>>>> +++ b/drivers/pci/controller/Kconfig
>>>>>> @@ -96,7 +96,6 @@ config PCI_HOST_GENERIC
>>>>>>      depends on OF
>>>>>>      select PCI_HOST_COMMON
>>>>>>      select IRQ_DOMAIN
>>>>>> -   select PCI_DOMAINS
>>>>>>      help
>>>>>>        Say Y here if you want to support a simple generic PCI
>>>>>> host
>>>>>>        controller, such as the one emulated by kvmtool.
>>>>>> @@ -138,7 +137,6 @@ config PCI_VERSATILE
>>>>>>
>>>>>>    config PCIE_IPROC
>>>>>>      tristate
>>>>>> -   select PCI_DOMAINS
>>>>>>      help
>>>>>>        This enables the iProc PCIe core controller support for
>>>>>> Broadcom's
>>>>>>        iProc family of SoCs. An appropriate bus interface driver
>>>>>> needs
>>>>>> @@ -176,7 +174,6 @@ config PCIE_IPROC_MSI
>>>>>>    config PCIE_ALTERA
>>>>>>      bool "Altera PCIe controller"
>>>>>>      depends on ARM || NIOS2 || COMPILE_TEST
>>>>>> -   select PCI_DOMAINS
>>>>>>      help
>>>>>>        Say Y here if you want to enable PCIe controller support
>>>>>> on Altera
>>>>>>        FPGA.
>>>>>>
>>>>> Acked-by: Jan Kiszka <jan.kiszka@siemens.com>
>>>> Thanks a lot. Scott, Ley Foon, does it work for you ? I would like
>>>> to ask Bjorn to send it asap since the build on sparc is still
>>>> broken.
>>> Change will have to be made for arm64 for ARCH_BCM_IPROC as well.
>> Yes, need to add it to arm64 too. Others are okay.
> On arm64 CONFIG_PCI_DOMAINS defaults to CONFIG_PCI so there is no need
> to select it, if that's all you need changed there is nothing to
> change and this patch is read to be merged.
I see that now: arm64 is doing things properly.  The same should be done 
for arm: default to CONFIG_PCI so there is no need to select it.
I didn't like the change to have select to begin with.
>
> Lorenzo


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2] PCI: controller: Move PCI_DOMAINS selection to arch Kconfig
  2018-06-26  6:48           ` Scott Branden
@ 2018-06-26 11:23             ` Lorenzo Pieralisi
  0 siblings, 0 replies; 11+ messages in thread
From: Lorenzo Pieralisi @ 2018-06-26 11:23 UTC (permalink / raw)
  To: Scott Branden
  Cc: Ley Foon Tan, Jan Kiszka, linux-pci, linux-kernel, Will Deacon,
	Bjorn Helgaas, Rob Herring, Russell King, Guenter Roeck

On Mon, Jun 25, 2018 at 11:48:11PM -0700, Scott Branden wrote:
> Hi Lorenzo,
> 
> 
> On 18-06-25 02:27 AM, Lorenzo Pieralisi wrote:
> >On Fri, Jun 22, 2018 at 11:59:08PM +0800, Ley Foon Tan wrote:
> >>On Thu, 2018-06-21 at 22:08 -0700, Scott Branden wrote:
> >>>
> >>>On 18-06-21 09:54 AM, Lorenzo Pieralisi wrote:
> >>>>
> >>>>On Wed, Jun 20, 2018 at 10:07:33AM +0200, Jan Kiszka wrote:
> >>>>>
> >>>>>On 2018-06-19 13:21, Lorenzo Pieralisi wrote:
> >>>>>>
> >>>>>>Commit 51bc085d6454 ("PCI: Improve host drivers compile test
> >>>>>>coverage")
> >>>>>>added configuration options to allow PCI host controller
> >>>>>>drivers to be
> >>>>>>compile tested on all architectures.
> >>>>>>
> >>>>>>Some host controller drivers (eg PCIE_ALTERA) config entries
> >>>>>>select
> >>>>>>the PCI_DOMAINS config option to enable PCI domains management
> >>>>>>in
> >>>>>>the kernel. Now that host controller drivers can be compiled on
> >>>>>>all architectures, this triggers build regressions on arches
> >>>>>>that
> >>>>>>do not implement the PCI_DOMAINS required API (ie
> >>>>>>pci_domain_nr()):
> >>>>>>
> >>>>>>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'?
> >>>>>>
> >>>>>>Furthemore, some software configurations (ie Jailhouse) require
> >>>>>>a
> >>>>>>PCI_DOMAINS enabled kernel to configure multiple host
> >>>>>>controllers
> >>>>>>without having an explicit dependency on the ARM platform on
> >>>>>>which
> >>>>>>they run.
> >>>>>>
> >>>>>>Make PCI_DOMAINS a visible configuration option on ARM so that
> >>>>>>software
> >>>>>>configurations that need it can manually select it and move the
> >>>>>>PCI_DOMAINS selection from PCI controllers configuration file
> >>>>>>to ARM
> >>>>>>sub-arch config entries that currently require it, fixing the
> >>>>>>issue.
> >>>>>>
> >>>>>>Fixes: 51bc085d6454 ("PCI: Improve host drivers compile test
> >>>>>>coverage")
> >>>>>>Link: https://lkml.kernel.org/r/20180612170229.GA10141@roeck-us
> >>>>>>.net
> >>>>>>Reported-by: Guenter Roeck <linux@roeck-us.net>
> >>>>>>Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> >>>>>>Cc: Scott Branden <scott.branden@broadcom.com>
> >>>>>>Cc: Will Deacon <will.deacon@arm.com>
> >>>>>>Cc: Bjorn Helgaas <bhelgaas@google.com>
> >>>>>>Cc: Rob Herring <robh@kernel.org>
> >>>>>>Cc: Russell King <linux@armlinux.org.uk>
> >>>>>>Cc: Jan Kiszka <jan.kiszka@siemens.com>
> >>>>>>Cc: Guenter Roeck <linux@roeck-us.net>
> >>>>>>Cc: Ley Foon Tan <lftan@altera.com>
> >>>>>>---
> >>>>>>v1 -> v2
> >>>>>>     - Removed ARCH_VIRT PCI_DOMAINS selection
> >>>>>>     - Added PCI_DOMAINS visible config option
> >>>>>>
> >>>>>>v1: https://marc.info/?l=linux-pci&m=152932092612352&w=2
> >>>>>>
> >>>>>>   arch/arm/Kconfig               | 8 +++++++-
> >>>>>>   arch/arm/mach-bcm/Kconfig      | 1 +
> >>>>>>   arch/arm/mach-socfpga/Kconfig  | 1 +
> >>>>>>   drivers/pci/controller/Kconfig | 3 ---
> >>>>>>   4 files changed, 9 insertions(+), 4 deletions(-)
> >>>>>>
> >>>>>>diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> >>>>>>index 54eeb8d00bc6..843edfd000be 100644
> >>>>>>--- a/arch/arm/Kconfig
> >>>>>>+++ b/arch/arm/Kconfig
> >>>>>>@@ -1245,8 +1245,14 @@ config PCI
> >>>>>>       VESA. If you have PCI, say Y, otherwise N.
> >>>>>>
> >>>>>>   config PCI_DOMAINS
> >>>>>>-   bool
> >>>>>>+   bool "Support for multiple PCI domains"
> >>>>>>     depends on PCI
> >>>>>>+   help
> >>>>>>+     Enable PCI domains kernel management. Say Y if your
> >>>>>>machine
> >>>>>>+     has a PCI bus hierarchy that requires more than one PCI
> >>>>>>+     domain (aka segment) to be correctly managed. Say N
> >>>>>>otherwise.
> >>>>>>+
> >>>>>>+     If you don't know what to do here, say N.
> >>>>>>
> >>>>>>   config PCI_DOMAINS_GENERIC
> >>>>>>     def_bool PCI_DOMAINS
> >>>>>>diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-
> >>>>>>bcm/Kconfig
> >>>>>>index c46a728df44e..25aac6ee2ab1 100644
> >>>>>>--- a/arch/arm/mach-bcm/Kconfig
> >>>>>>+++ b/arch/arm/mach-bcm/Kconfig
> >>>>>>@@ -20,6 +20,7 @@ config ARCH_BCM_IPROC
> >>>>>>     select GPIOLIB
> >>>>>>     select ARM_AMBA
> >>>>>>     select PINCTRL
> >>>>>>+   select PCI_DOMAINS if PCI
> >>>>>>     help
> >>>>>>       This enables support for systems based on Broadcom IPROC
> >>>>>>architected SoCs.
> >>>>>>       The IPROC complex contains one or more ARM CPUs along
> >>>>>>with common
> >>>>>>diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-
> >>>>>>socfpga/Kconfig
> >>>>>>index d0f62eacf59d..4adb901dd5eb 100644
> >>>>>>--- a/arch/arm/mach-socfpga/Kconfig
> >>>>>>+++ b/arch/arm/mach-socfpga/Kconfig
> >>>>>>@@ -10,6 +10,7 @@ menuconfig ARCH_SOCFPGA
> >>>>>>     select HAVE_ARM_SCU
> >>>>>>     select HAVE_ARM_TWD if SMP
> >>>>>>     select MFD_SYSCON
> >>>>>>+   select PCI_DOMAINS if PCI
> >>>>>>
> >>>>>>   if ARCH_SOCFPGA
> >>>>>>   config SOCFPGA_SUSPEND
> >>>>>>diff --git a/drivers/pci/controller/Kconfig
> >>>>>>b/drivers/pci/controller/Kconfig
> >>>>>>index 18fa09b3ac8f..cc9fa02d32a0 100644
> >>>>>>--- a/drivers/pci/controller/Kconfig
> >>>>>>+++ b/drivers/pci/controller/Kconfig
> >>>>>>@@ -96,7 +96,6 @@ config PCI_HOST_GENERIC
> >>>>>>     depends on OF
> >>>>>>     select PCI_HOST_COMMON
> >>>>>>     select IRQ_DOMAIN
> >>>>>>-   select PCI_DOMAINS
> >>>>>>     help
> >>>>>>       Say Y here if you want to support a simple generic PCI
> >>>>>>host
> >>>>>>       controller, such as the one emulated by kvmtool.
> >>>>>>@@ -138,7 +137,6 @@ config PCI_VERSATILE
> >>>>>>
> >>>>>>   config PCIE_IPROC
> >>>>>>     tristate
> >>>>>>-   select PCI_DOMAINS
> >>>>>>     help
> >>>>>>       This enables the iProc PCIe core controller support for
> >>>>>>Broadcom's
> >>>>>>       iProc family of SoCs. An appropriate bus interface driver
> >>>>>>needs
> >>>>>>@@ -176,7 +174,6 @@ config PCIE_IPROC_MSI
> >>>>>>   config PCIE_ALTERA
> >>>>>>     bool "Altera PCIe controller"
> >>>>>>     depends on ARM || NIOS2 || COMPILE_TEST
> >>>>>>-   select PCI_DOMAINS
> >>>>>>     help
> >>>>>>       Say Y here if you want to enable PCIe controller support
> >>>>>>on Altera
> >>>>>>       FPGA.
> >>>>>>
> >>>>>Acked-by: Jan Kiszka <jan.kiszka@siemens.com>
> >>>>Thanks a lot. Scott, Ley Foon, does it work for you ? I would like
> >>>>to ask Bjorn to send it asap since the build on sparc is still
> >>>>broken.
> >>>Change will have to be made for arm64 for ARCH_BCM_IPROC as well.
> >>Yes, need to add it to arm64 too. Others are okay.
> >On arm64 CONFIG_PCI_DOMAINS defaults to CONFIG_PCI so there is no need
> >to select it, if that's all you need changed there is nothing to
> >change and this patch is read to be merged.
> I see that now: arm64 is doing things properly.  The same should be
> done for arm: default to CONFIG_PCI so there is no need to select
> it.
> I didn't like the change to have select to begin with.

I can't select PCI_DOMAINS by default on ARM 32-bit since this would
force it on platforms (eg non-DT legacy) that never relied on it; this
can easily trigger regressions. This patch is ready to go as-is, I do
not like it either but as I tried to explain it is the only reasonable
way forward.

Thanks,
Lorenzo

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2] PCI: controller: Move PCI_DOMAINS selection to arch Kconfig
  2018-06-19 11:21 [PATCH v2] PCI: controller: Move PCI_DOMAINS selection to arch Kconfig Lorenzo Pieralisi
  2018-06-20  8:07 ` Jan Kiszka
@ 2018-06-26 15:59 ` Lorenzo Pieralisi
  2018-06-26 16:50   ` Rob Herring
  2018-06-26 17:10 ` Bjorn Helgaas
  2 siblings, 1 reply; 11+ messages in thread
From: Lorenzo Pieralisi @ 2018-06-26 15:59 UTC (permalink / raw)
  To: linux-pci, Bjorn Helgaas, Rob Herring
  Cc: linux-kernel, Scott Branden, Will Deacon, Russell King,
	Jan Kiszka, Guenter Roeck, Ley Foon Tan

On Tue, Jun 19, 2018 at 12:21:05PM +0100, Lorenzo Pieralisi wrote:
> Commit 51bc085d6454 ("PCI: Improve host drivers compile test coverage")
> added configuration options to allow PCI host controller drivers to be
> compile tested on all architectures.
> 
> Some host controller drivers (eg PCIE_ALTERA) config entries select
> the PCI_DOMAINS config option to enable PCI domains management in
> the kernel. Now that host controller drivers can be compiled on
> all architectures, this triggers build regressions on arches that
> do not implement the PCI_DOMAINS required API (ie pci_domain_nr()):
> 
> 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'?
> 
> Furthemore, some software configurations (ie Jailhouse) require a
> PCI_DOMAINS enabled kernel to configure multiple host controllers
> without having an explicit dependency on the ARM platform on which
> they run.
> 
> Make PCI_DOMAINS a visible configuration option on ARM so that software
> configurations that need it can manually select it and move the
> PCI_DOMAINS selection from PCI controllers configuration file to ARM
> sub-arch config entries that currently require it, fixing the issue.
> 
> Fixes: 51bc085d6454 ("PCI: Improve host drivers compile test coverage")
> Link: https://lkml.kernel.org/r/20180612170229.GA10141@roeck-us.net
> Reported-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> Cc: Scott Branden <scott.branden@broadcom.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Bjorn Helgaas <bhelgaas@google.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Jan Kiszka <jan.kiszka@siemens.com>
> Cc: Guenter Roeck <linux@roeck-us.net>
> Cc: Ley Foon Tan <lftan@altera.com>
> ---

Bjorn, Rob,

if you are OK with this patch I think it is ready to go, hopefully for
-rc3 since currently sparc allmodconfig is still broken as Guenter
reported in the Link I embedded in the patch itself, please let me
know, thanks.

Lorenzo

> v1 -> v2
> 	- Removed ARCH_VIRT PCI_DOMAINS selection
> 	- Added PCI_DOMAINS visible config option
> 
> v1: https://marc.info/?l=linux-pci&m=152932092612352&w=2
> 
>  arch/arm/Kconfig               | 8 +++++++-
>  arch/arm/mach-bcm/Kconfig      | 1 +
>  arch/arm/mach-socfpga/Kconfig  | 1 +
>  drivers/pci/controller/Kconfig | 3 ---
>  4 files changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 54eeb8d00bc6..843edfd000be 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1245,8 +1245,14 @@ config PCI
>  	  VESA. If you have PCI, say Y, otherwise N.
>  
>  config PCI_DOMAINS
> -	bool
> +	bool "Support for multiple PCI domains"
>  	depends on PCI
> +	help
> +	  Enable PCI domains kernel management. Say Y if your machine
> +	  has a PCI bus hierarchy that requires more than one PCI
> +	  domain (aka segment) to be correctly managed. Say N otherwise.
> +
> +	  If you don't know what to do here, say N.
>  
>  config PCI_DOMAINS_GENERIC
>  	def_bool PCI_DOMAINS
> diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
> index c46a728df44e..25aac6ee2ab1 100644
> --- a/arch/arm/mach-bcm/Kconfig
> +++ b/arch/arm/mach-bcm/Kconfig
> @@ -20,6 +20,7 @@ config ARCH_BCM_IPROC
>  	select GPIOLIB
>  	select ARM_AMBA
>  	select PINCTRL
> +	select PCI_DOMAINS if PCI
>  	help
>  	  This enables support for systems based on Broadcom IPROC architected SoCs.
>  	  The IPROC complex contains one or more ARM CPUs along with common
> diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig
> index d0f62eacf59d..4adb901dd5eb 100644
> --- a/arch/arm/mach-socfpga/Kconfig
> +++ b/arch/arm/mach-socfpga/Kconfig
> @@ -10,6 +10,7 @@ menuconfig ARCH_SOCFPGA
>  	select HAVE_ARM_SCU
>  	select HAVE_ARM_TWD if SMP
>  	select MFD_SYSCON
> +	select PCI_DOMAINS if PCI
>  
>  if ARCH_SOCFPGA
>  config SOCFPGA_SUSPEND
> diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
> index 18fa09b3ac8f..cc9fa02d32a0 100644
> --- a/drivers/pci/controller/Kconfig
> +++ b/drivers/pci/controller/Kconfig
> @@ -96,7 +96,6 @@ config PCI_HOST_GENERIC
>  	depends on OF
>  	select PCI_HOST_COMMON
>  	select IRQ_DOMAIN
> -	select PCI_DOMAINS
>  	help
>  	  Say Y here if you want to support a simple generic PCI host
>  	  controller, such as the one emulated by kvmtool.
> @@ -138,7 +137,6 @@ config PCI_VERSATILE
>  
>  config PCIE_IPROC
>  	tristate
> -	select PCI_DOMAINS
>  	help
>  	  This enables the iProc PCIe core controller support for Broadcom's
>  	  iProc family of SoCs. An appropriate bus interface driver needs
> @@ -176,7 +174,6 @@ config PCIE_IPROC_MSI
>  config PCIE_ALTERA
>  	bool "Altera PCIe controller"
>  	depends on ARM || NIOS2 || COMPILE_TEST
> -	select PCI_DOMAINS
>  	help
>  	  Say Y here if you want to enable PCIe controller support on Altera
>  	  FPGA.
> -- 
> 2.15.0
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2] PCI: controller: Move PCI_DOMAINS selection to arch Kconfig
  2018-06-26 15:59 ` Lorenzo Pieralisi
@ 2018-06-26 16:50   ` Rob Herring
  0 siblings, 0 replies; 11+ messages in thread
From: Rob Herring @ 2018-06-26 16:50 UTC (permalink / raw)
  To: Lorenzo Pieralisi
  Cc: linux-pci, Bjorn Helgaas, linux-kernel, Scott Branden,
	Will Deacon, Russell King, Jan Kiszka, Guenter Roeck,
	Ley Foon Tan

On Tue, Jun 26, 2018 at 9:58 AM Lorenzo Pieralisi
<lorenzo.pieralisi@arm.com> wrote:
>
> On Tue, Jun 19, 2018 at 12:21:05PM +0100, Lorenzo Pieralisi wrote:
> > Commit 51bc085d6454 ("PCI: Improve host drivers compile test coverage")
> > added configuration options to allow PCI host controller drivers to be
> > compile tested on all architectures.
> >
> > Some host controller drivers (eg PCIE_ALTERA) config entries select
> > the PCI_DOMAINS config option to enable PCI domains management in
> > the kernel. Now that host controller drivers can be compiled on
> > all architectures, this triggers build regressions on arches that
> > do not implement the PCI_DOMAINS required API (ie pci_domain_nr()):
> >
> > 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'?
> >
> > Furthemore, some software configurations (ie Jailhouse) require a
> > PCI_DOMAINS enabled kernel to configure multiple host controllers
> > without having an explicit dependency on the ARM platform on which
> > they run.
> >
> > Make PCI_DOMAINS a visible configuration option on ARM so that software
> > configurations that need it can manually select it and move the
> > PCI_DOMAINS selection from PCI controllers configuration file to ARM
> > sub-arch config entries that currently require it, fixing the issue.
> >
> > Fixes: 51bc085d6454 ("PCI: Improve host drivers compile test coverage")
> > Link: https://lkml.kernel.org/r/20180612170229.GA10141@roeck-us.net
> > Reported-by: Guenter Roeck <linux@roeck-us.net>
> > Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> > Cc: Scott Branden <scott.branden@broadcom.com>
> > Cc: Will Deacon <will.deacon@arm.com>
> > Cc: Bjorn Helgaas <bhelgaas@google.com>
> > Cc: Rob Herring <robh@kernel.org>
> > Cc: Russell King <linux@armlinux.org.uk>
> > Cc: Jan Kiszka <jan.kiszka@siemens.com>
> > Cc: Guenter Roeck <linux@roeck-us.net>
> > Cc: Ley Foon Tan <lftan@altera.com>
> > ---
>
> Bjorn, Rob,
>
> if you are OK with this patch I think it is ready to go, hopefully for
> -rc3 since currently sparc allmodconfig is still broken as Guenter
> reported in the Link I embedded in the patch itself, please let me
> know, thanks.

LGTM

Acked-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2] PCI: controller: Move PCI_DOMAINS selection to arch Kconfig
  2018-06-19 11:21 [PATCH v2] PCI: controller: Move PCI_DOMAINS selection to arch Kconfig Lorenzo Pieralisi
  2018-06-20  8:07 ` Jan Kiszka
  2018-06-26 15:59 ` Lorenzo Pieralisi
@ 2018-06-26 17:10 ` Bjorn Helgaas
  2 siblings, 0 replies; 11+ messages in thread
From: Bjorn Helgaas @ 2018-06-26 17:10 UTC (permalink / raw)
  To: Lorenzo Pieralisi
  Cc: linux-pci, linux-kernel, Scott Branden, Will Deacon,
	Bjorn Helgaas, Rob Herring, Russell King, Jan Kiszka,
	Guenter Roeck, Ley Foon Tan

On Tue, Jun 19, 2018 at 12:21:05PM +0100, Lorenzo Pieralisi wrote:
> Commit 51bc085d6454 ("PCI: Improve host drivers compile test coverage")
> added configuration options to allow PCI host controller drivers to be
> compile tested on all architectures.
> 
> Some host controller drivers (eg PCIE_ALTERA) config entries select
> the PCI_DOMAINS config option to enable PCI domains management in
> the kernel. Now that host controller drivers can be compiled on
> all architectures, this triggers build regressions on arches that
> do not implement the PCI_DOMAINS required API (ie pci_domain_nr()):
> 
> 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'?
> 
> Furthemore, some software configurations (ie Jailhouse) require a
> PCI_DOMAINS enabled kernel to configure multiple host controllers
> without having an explicit dependency on the ARM platform on which
> they run.
> 
> Make PCI_DOMAINS a visible configuration option on ARM so that software
> configurations that need it can manually select it and move the
> PCI_DOMAINS selection from PCI controllers configuration file to ARM
> sub-arch config entries that currently require it, fixing the issue.
> 
> Fixes: 51bc085d6454 ("PCI: Improve host drivers compile test coverage")
> Link: https://lkml.kernel.org/r/20180612170229.GA10141@roeck-us.net
> Reported-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> Cc: Scott Branden <scott.branden@broadcom.com>
> Cc: Will Deacon <will.deacon@arm.com>
> Cc: Bjorn Helgaas <bhelgaas@google.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Russell King <linux@armlinux.org.uk>
> Cc: Jan Kiszka <jan.kiszka@siemens.com>
> Cc: Guenter Roeck <linux@roeck-us.net>
> Cc: Ley Foon Tan <lftan@altera.com>

I applied this to for-linus for v4.18, with acks from Jan, Ley Foon, and
Rob.  Thanks!

> ---
> v1 -> v2
> 	- Removed ARCH_VIRT PCI_DOMAINS selection
> 	- Added PCI_DOMAINS visible config option
> 
> v1: https://marc.info/?l=linux-pci&m=152932092612352&w=2
> 
>  arch/arm/Kconfig               | 8 +++++++-
>  arch/arm/mach-bcm/Kconfig      | 1 +
>  arch/arm/mach-socfpga/Kconfig  | 1 +
>  drivers/pci/controller/Kconfig | 3 ---
>  4 files changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 54eeb8d00bc6..843edfd000be 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1245,8 +1245,14 @@ config PCI
>  	  VESA. If you have PCI, say Y, otherwise N.
>  
>  config PCI_DOMAINS
> -	bool
> +	bool "Support for multiple PCI domains"
>  	depends on PCI
> +	help
> +	  Enable PCI domains kernel management. Say Y if your machine
> +	  has a PCI bus hierarchy that requires more than one PCI
> +	  domain (aka segment) to be correctly managed. Say N otherwise.
> +
> +	  If you don't know what to do here, say N.
>  
>  config PCI_DOMAINS_GENERIC
>  	def_bool PCI_DOMAINS
> diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
> index c46a728df44e..25aac6ee2ab1 100644
> --- a/arch/arm/mach-bcm/Kconfig
> +++ b/arch/arm/mach-bcm/Kconfig
> @@ -20,6 +20,7 @@ config ARCH_BCM_IPROC
>  	select GPIOLIB
>  	select ARM_AMBA
>  	select PINCTRL
> +	select PCI_DOMAINS if PCI
>  	help
>  	  This enables support for systems based on Broadcom IPROC architected SoCs.
>  	  The IPROC complex contains one or more ARM CPUs along with common
> diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig
> index d0f62eacf59d..4adb901dd5eb 100644
> --- a/arch/arm/mach-socfpga/Kconfig
> +++ b/arch/arm/mach-socfpga/Kconfig
> @@ -10,6 +10,7 @@ menuconfig ARCH_SOCFPGA
>  	select HAVE_ARM_SCU
>  	select HAVE_ARM_TWD if SMP
>  	select MFD_SYSCON
> +	select PCI_DOMAINS if PCI
>  
>  if ARCH_SOCFPGA
>  config SOCFPGA_SUSPEND
> diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
> index 18fa09b3ac8f..cc9fa02d32a0 100644
> --- a/drivers/pci/controller/Kconfig
> +++ b/drivers/pci/controller/Kconfig
> @@ -96,7 +96,6 @@ config PCI_HOST_GENERIC
>  	depends on OF
>  	select PCI_HOST_COMMON
>  	select IRQ_DOMAIN
> -	select PCI_DOMAINS
>  	help
>  	  Say Y here if you want to support a simple generic PCI host
>  	  controller, such as the one emulated by kvmtool.
> @@ -138,7 +137,6 @@ config PCI_VERSATILE
>  
>  config PCIE_IPROC
>  	tristate
> -	select PCI_DOMAINS
>  	help
>  	  This enables the iProc PCIe core controller support for Broadcom's
>  	  iProc family of SoCs. An appropriate bus interface driver needs
> @@ -176,7 +174,6 @@ config PCIE_IPROC_MSI
>  config PCIE_ALTERA
>  	bool "Altera PCIe controller"
>  	depends on ARM || NIOS2 || COMPILE_TEST
> -	select PCI_DOMAINS
>  	help
>  	  Say Y here if you want to enable PCIe controller support on Altera
>  	  FPGA.
> -- 
> 2.15.0
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2018-06-26 17:10 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-19 11:21 [PATCH v2] PCI: controller: Move PCI_DOMAINS selection to arch Kconfig Lorenzo Pieralisi
2018-06-20  8:07 ` Jan Kiszka
2018-06-21 16:54   ` Lorenzo Pieralisi
2018-06-22  5:08     ` Scott Branden
2018-06-22 15:59       ` Ley Foon Tan
2018-06-25  9:27         ` Lorenzo Pieralisi
2018-06-26  6:48           ` Scott Branden
2018-06-26 11:23             ` Lorenzo Pieralisi
2018-06-26 15:59 ` Lorenzo Pieralisi
2018-06-26 16:50   ` Rob Herring
2018-06-26 17:10 ` Bjorn Helgaas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).