linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] PCI: controller: thunder: fix compile testing
@ 2021-02-25 14:37 Arnd Bergmann
  2021-02-25 14:37 ` [PATCH 2/2] PCI: controller: avoid building empty drivers Arnd Bergmann
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Arnd Bergmann @ 2021-02-25 14:37 UTC (permalink / raw)
  To: Robert Richter, Lorenzo Pieralisi, Bjorn Helgaas
  Cc: Arnd Bergmann, Rob Herring, Catalin Marinas,
	Krzysztof Wilczyński, Kuppuswamy Sathyanarayanan,
	Jonathan Cameron, Sean V Kelley, Qiuxu Zhuo, David E. Box,
	Yicong Yang, linux-pci, linux-arm-kernel, linux-kernel

From: Arnd Bergmann <arnd@arndb.de>

Compile-testing these drivers is currently broken. Enabling
it causes a couple of build failures though:

drivers/pci/controller/pci-thunder-ecam.c:119:30: error: shift count >= width of type [-Werror,-Wshift-count-overflow]
drivers/pci/controller/pci-thunder-pem.c:54:2: error: implicit declaration of function 'writeq' [-Werror,-Wimplicit-function-declaration]
drivers/pci/controller/pci-thunder-pem.c:392:8: error: implicit declaration of function 'acpi_get_rc_resources' [-Werror,-Wimplicit-function-declaration]

Fix them with the obvious one-line changes.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/pci/controller/pci-thunder-ecam.c |  2 +-
 drivers/pci/controller/pci-thunder-pem.c  | 13 +++++++------
 drivers/pci/pci.h                         |  6 ++++++
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/drivers/pci/controller/pci-thunder-ecam.c b/drivers/pci/controller/pci-thunder-ecam.c
index f964fd26f7e0..ffd84656544f 100644
--- a/drivers/pci/controller/pci-thunder-ecam.c
+++ b/drivers/pci/controller/pci-thunder-ecam.c
@@ -116,7 +116,7 @@ static int thunder_ecam_p2_config_read(struct pci_bus *bus, unsigned int devfn,
 	 * the config space access window.  Since we are working with
 	 * the high-order 32 bits, shift everything down by 32 bits.
 	 */
-	node_bits = (cfg->res.start >> 32) & (1 << 12);
+	node_bits = upper_32_bits(cfg->res.start) & (1 << 12);
 
 	v |= node_bits;
 	set_val(v, where, size, val);
diff --git a/drivers/pci/controller/pci-thunder-pem.c b/drivers/pci/controller/pci-thunder-pem.c
index 1a3f70ac61fc..0660b9da204f 100644
--- a/drivers/pci/controller/pci-thunder-pem.c
+++ b/drivers/pci/controller/pci-thunder-pem.c
@@ -12,6 +12,7 @@
 #include <linux/pci-acpi.h>
 #include <linux/pci-ecam.h>
 #include <linux/platform_device.h>
+#include <linux/io-64-nonatomic-lo-hi.h>
 #include "../pci.h"
 
 #if defined(CONFIG_PCI_HOST_THUNDER_PEM) || (defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS))
@@ -324,9 +325,9 @@ static int thunder_pem_init(struct device *dev, struct pci_config_window *cfg,
 	 * structure here for the BAR.
 	 */
 	bar4_start = res_pem->start + 0xf00000;
-	pem_pci->ea_entry[0] = (u32)bar4_start | 2;
-	pem_pci->ea_entry[1] = (u32)(res_pem->end - bar4_start) & ~3u;
-	pem_pci->ea_entry[2] = (u32)(bar4_start >> 32);
+	pem_pci->ea_entry[0] = lower_32_bits(bar4_start) | 2;
+	pem_pci->ea_entry[1] = lower_32_bits(res_pem->end - bar4_start) & ~3u;
+	pem_pci->ea_entry[2] = upper_32_bits(bar4_start);
 
 	cfg->priv = pem_pci;
 	return 0;
@@ -334,9 +335,9 @@ static int thunder_pem_init(struct device *dev, struct pci_config_window *cfg,
 
 #if defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS)
 
-#define PEM_RES_BASE		0x87e0c0000000UL
-#define PEM_NODE_MASK		GENMASK(45, 44)
-#define PEM_INDX_MASK		GENMASK(26, 24)
+#define PEM_RES_BASE		0x87e0c0000000ULL
+#define PEM_NODE_MASK		GENMASK_ULL(45, 44)
+#define PEM_INDX_MASK		GENMASK_ULL(26, 24)
 #define PEM_MIN_DOM_IN_NODE	4
 #define PEM_MAX_DOM_IN_NODE	10
 
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index 0a2b6d993fe1..022c2f433676 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -625,6 +625,12 @@ static inline int pci_dev_specific_reset(struct pci_dev *dev, int probe)
 #if defined(CONFIG_PCI_QUIRKS) && defined(CONFIG_ARM64)
 int acpi_get_rc_resources(struct device *dev, const char *hid, u16 segment,
 			  struct resource *res);
+#else
+static inline int acpi_get_rc_resources(struct device *dev, const char *hid,
+					u16 segment, struct resource *res)
+{
+	return -ENODEV;
+}
 #endif
 
 int pci_rebar_get_current_size(struct pci_dev *pdev, int bar);
-- 
2.29.2


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

* [PATCH 2/2] PCI: controller: avoid building empty drivers
  2021-02-25 14:37 [PATCH 1/2] PCI: controller: thunder: fix compile testing Arnd Bergmann
@ 2021-02-25 14:37 ` Arnd Bergmann
  2021-02-26 19:08   ` Robert Richter
  2021-02-25 17:44 ` [PATCH 1/2] PCI: controller: thunder: fix compile testing Kuppuswamy, Sathyanarayanan
  2021-02-26 15:12 ` Robert Richter
  2 siblings, 1 reply; 8+ messages in thread
From: Arnd Bergmann @ 2021-02-25 14:37 UTC (permalink / raw)
  To: Lorenzo Pieralisi, Bjorn Helgaas
  Cc: Arnd Bergmann, Rob Herring, Lad Prabhakar, Yoshihiro Shimoda,
	Bharat Kumar Gogada, Yicong Yang, Jiaxun Yang, Daire McNamara,
	Kunihiko Hayashi, linux-pci, linux-kernel

From: Arnd Bergmann <arnd@arndb.de>

There are harmless warnings when compile testing the kernel with
CONFIG_TRIM_UNUSED_KSYMS:

drivers/pci/controller/dwc/pcie-al.o: no symbols
drivers/pci/controller/pci-thunder-ecam.o: no symbols
drivers/pci/controller/pci-thunder-pem.o: no symbols

The problem here is that the host drivers get built even when the
configuration symbols are all disabled, as they pretend to not be drivers
but are silently enabled because of the promise that ACPI based systems
need no drivers.

Add back the normal symbols to have these drivers built, and change the
logic to otherwise only build them when both CONFIG_PCI_QUIRKS and
CONFIG_ACPI are enabled.

As a side-effect, this enables compile-testing the drivers on other
architectures, which in turn needs the acpi_get_rc_resources()
function to be defined.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/pci/controller/Makefile     | 7 ++++++-
 drivers/pci/controller/dwc/Makefile | 7 ++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/pci/controller/Makefile b/drivers/pci/controller/Makefile
index e4559f2182f2..6d24a163033f 100644
--- a/drivers/pci/controller/Makefile
+++ b/drivers/pci/controller/Makefile
@@ -11,10 +11,13 @@ obj-$(CONFIG_PCIE_RCAR_HOST) += pcie-rcar.o pcie-rcar-host.o
 obj-$(CONFIG_PCIE_RCAR_EP) += pcie-rcar.o pcie-rcar-ep.o
 obj-$(CONFIG_PCI_HOST_COMMON) += pci-host-common.o
 obj-$(CONFIG_PCI_HOST_GENERIC) += pci-host-generic.o
+obj-$(CONFIG_PCI_HOST_THUNDER_ECAM) += pci-thunder-ecam.o
+obj-$(CONFIG_PCI_HOST_THUNDER_PEM) += pci-thunder-pem.o
 obj-$(CONFIG_PCIE_XILINX) += pcie-xilinx.o
 obj-$(CONFIG_PCIE_XILINX_NWL) += pcie-xilinx-nwl.o
 obj-$(CONFIG_PCIE_XILINX_CPM) += pcie-xilinx-cpm.o
 obj-$(CONFIG_PCI_V3_SEMI) += pci-v3-semi.o
+obj-$(CONFIG_PCI_XGENE) += pci-xgene.o
 obj-$(CONFIG_PCI_XGENE_MSI) += pci-xgene-msi.o
 obj-$(CONFIG_PCI_VERSATILE) += pci-versatile.o
 obj-$(CONFIG_PCIE_IPROC) += pcie-iproc.o
@@ -47,8 +50,10 @@ obj-y				+= mobiveil/
 # ARM64 and use internal ifdefs to only build the pieces we need
 # depending on whether ACPI, the DT driver, or both are enabled.
 
-ifdef CONFIG_PCI
+ifdef CONFIG_ACPI
+ifdef CONFIG_PCI_QUIRKS
 obj-$(CONFIG_ARM64) += pci-thunder-ecam.o
 obj-$(CONFIG_ARM64) += pci-thunder-pem.o
 obj-$(CONFIG_ARM64) += pci-xgene.o
 endif
+endif
diff --git a/drivers/pci/controller/dwc/Makefile b/drivers/pci/controller/dwc/Makefile
index a751553fa0db..ba7c42f6df6f 100644
--- a/drivers/pci/controller/dwc/Makefile
+++ b/drivers/pci/controller/dwc/Makefile
@@ -31,7 +31,12 @@ obj-$(CONFIG_PCIE_UNIPHIER_EP) += pcie-uniphier-ep.o
 # ARM64 and use internal ifdefs to only build the pieces we need
 # depending on whether ACPI, the DT driver, or both are enabled.
 
-ifdef CONFIG_PCI
+obj-$(CONFIG_PCIE_AL) += pcie-al.o
+obj-$(CONFIG_PCI_HISI) += pcie-hisi.o
+
+ifdef CONFIG_ACPI
+ifdef CONFIG_PCI_QUIRKS
 obj-$(CONFIG_ARM64) += pcie-al.o
 obj-$(CONFIG_ARM64) += pcie-hisi.o
 endif
+endif
-- 
2.29.2


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

* Re: [PATCH 1/2] PCI: controller: thunder: fix compile testing
  2021-02-25 14:37 [PATCH 1/2] PCI: controller: thunder: fix compile testing Arnd Bergmann
  2021-02-25 14:37 ` [PATCH 2/2] PCI: controller: avoid building empty drivers Arnd Bergmann
@ 2021-02-25 17:44 ` Kuppuswamy, Sathyanarayanan
  2021-02-25 18:51   ` Bjorn Helgaas
  2021-02-26 15:12 ` Robert Richter
  2 siblings, 1 reply; 8+ messages in thread
From: Kuppuswamy, Sathyanarayanan @ 2021-02-25 17:44 UTC (permalink / raw)
  To: Arnd Bergmann, Robert Richter, Lorenzo Pieralisi, Bjorn Helgaas
  Cc: Arnd Bergmann, Rob Herring, Catalin Marinas,
	Krzysztof Wilczyński, Jonathan Cameron, Sean V Kelley,
	Qiuxu Zhuo, David E. Box, Yicong Yang, linux-pci,
	linux-arm-kernel, linux-kernel



On 2/25/21 6:37 AM, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> Compile-testing these drivers is currently broken. Enabling
> it causes a couple of build failures though:
> 
> drivers/pci/controller/pci-thunder-ecam.c:119:30: error: shift count >= width of type [-Werror,-Wshift-count-overflow]
> drivers/pci/controller/pci-thunder-pem.c:54:2: error: implicit declaration of function 'writeq' [-Werror,-Wimplicit-function-declaration]
> drivers/pci/controller/pci-thunder-pem.c:392:8: error: implicit declaration of function 'acpi_get_rc_resources' [-Werror,-Wimplicit-function-declaration]
> 
> Fix them with the obvious one-line changes.
Looks good to me.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>   drivers/pci/controller/pci-thunder-ecam.c |  2 +-
>   drivers/pci/controller/pci-thunder-pem.c  | 13 +++++++------
>   drivers/pci/pci.h                         |  6 ++++++
>   3 files changed, 14 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/pci/controller/pci-thunder-ecam.c b/drivers/pci/controller/pci-thunder-ecam.c
> index f964fd26f7e0..ffd84656544f 100644
> --- a/drivers/pci/controller/pci-thunder-ecam.c
> +++ b/drivers/pci/controller/pci-thunder-ecam.c
> @@ -116,7 +116,7 @@ static int thunder_ecam_p2_config_read(struct pci_bus *bus, unsigned int devfn,
>   	 * the config space access window.  Since we are working with
>   	 * the high-order 32 bits, shift everything down by 32 bits.
>   	 */
> -	node_bits = (cfg->res.start >> 32) & (1 << 12);
> +	node_bits = upper_32_bits(cfg->res.start) & (1 << 12);
>   
>   	v |= node_bits;
>   	set_val(v, where, size, val);
> diff --git a/drivers/pci/controller/pci-thunder-pem.c b/drivers/pci/controller/pci-thunder-pem.c
> index 1a3f70ac61fc..0660b9da204f 100644
> --- a/drivers/pci/controller/pci-thunder-pem.c
> +++ b/drivers/pci/controller/pci-thunder-pem.c
> @@ -12,6 +12,7 @@
>   #include <linux/pci-acpi.h>
>   #include <linux/pci-ecam.h>
>   #include <linux/platform_device.h>
> +#include <linux/io-64-nonatomic-lo-hi.h>
>   #include "../pci.h"
>   
>   #if defined(CONFIG_PCI_HOST_THUNDER_PEM) || (defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS))
> @@ -324,9 +325,9 @@ static int thunder_pem_init(struct device *dev, struct pci_config_window *cfg,
>   	 * structure here for the BAR.
>   	 */
>   	bar4_start = res_pem->start + 0xf00000;
> -	pem_pci->ea_entry[0] = (u32)bar4_start | 2;
> -	pem_pci->ea_entry[1] = (u32)(res_pem->end - bar4_start) & ~3u;
> -	pem_pci->ea_entry[2] = (u32)(bar4_start >> 32);
> +	pem_pci->ea_entry[0] = lower_32_bits(bar4_start) | 2;
> +	pem_pci->ea_entry[1] = lower_32_bits(res_pem->end - bar4_start) & ~3u;
> +	pem_pci->ea_entry[2] = upper_32_bits(bar4_start);
>   
>   	cfg->priv = pem_pci;
>   	return 0;
> @@ -334,9 +335,9 @@ static int thunder_pem_init(struct device *dev, struct pci_config_window *cfg,
>   
>   #if defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS)
>   
> -#define PEM_RES_BASE		0x87e0c0000000UL
> -#define PEM_NODE_MASK		GENMASK(45, 44)
> -#define PEM_INDX_MASK		GENMASK(26, 24)
> +#define PEM_RES_BASE		0x87e0c0000000ULL
> +#define PEM_NODE_MASK		GENMASK_ULL(45, 44)
> +#define PEM_INDX_MASK		GENMASK_ULL(26, 24)
>   #define PEM_MIN_DOM_IN_NODE	4
>   #define PEM_MAX_DOM_IN_NODE	10
>   
> diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
> index 0a2b6d993fe1..022c2f433676 100644
> --- a/drivers/pci/pci.h
> +++ b/drivers/pci/pci.h
> @@ -625,6 +625,12 @@ static inline int pci_dev_specific_reset(struct pci_dev *dev, int probe)
>   #if defined(CONFIG_PCI_QUIRKS) && defined(CONFIG_ARM64)
>   int acpi_get_rc_resources(struct device *dev, const char *hid, u16 segment,
>   			  struct resource *res);
> +#else
> +static inline int acpi_get_rc_resources(struct device *dev, const char *hid,
> +					u16 segment, struct resource *res)
> +{
> +	return -ENODEV;
> +}
>   #endif
>   
>   int pci_rebar_get_current_size(struct pci_dev *pdev, int bar);
> 

-- 
Sathyanarayanan Kuppuswamy
Linux Kernel Developer

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

* Re: [PATCH 1/2] PCI: controller: thunder: fix compile testing
  2021-02-25 17:44 ` [PATCH 1/2] PCI: controller: thunder: fix compile testing Kuppuswamy, Sathyanarayanan
@ 2021-02-25 18:51   ` Bjorn Helgaas
  2021-02-25 19:15     ` Kuppuswamy, Sathyanarayanan
  0 siblings, 1 reply; 8+ messages in thread
From: Bjorn Helgaas @ 2021-02-25 18:51 UTC (permalink / raw)
  To: Kuppuswamy, Sathyanarayanan
  Cc: Arnd Bergmann, Robert Richter, Lorenzo Pieralisi, Bjorn Helgaas,
	Arnd Bergmann, Rob Herring, Catalin Marinas,
	Krzysztof Wilczyński, Jonathan Cameron, Sean V Kelley,
	Qiuxu Zhuo, David E. Box, Yicong Yang, linux-pci,
	linux-arm-kernel, linux-kernel

On Thu, Feb 25, 2021 at 09:44:12AM -0800, Kuppuswamy, Sathyanarayanan wrote:
> On 2/25/21 6:37 AM, Arnd Bergmann wrote:
> > From: Arnd Bergmann <arnd@arndb.de>
> > 
> > Compile-testing these drivers is currently broken. Enabling
> > it causes a couple of build failures though:
> > 
> > drivers/pci/controller/pci-thunder-ecam.c:119:30: error: shift count >= width of type [-Werror,-Wshift-count-overflow]
> > drivers/pci/controller/pci-thunder-pem.c:54:2: error: implicit declaration of function 'writeq' [-Werror,-Wimplicit-function-declaration]
> > drivers/pci/controller/pci-thunder-pem.c:392:8: error: implicit declaration of function 'acpi_get_rc_resources' [-Werror,-Wimplicit-function-declaration]
> > 
> > Fix them with the obvious one-line changes.
> Looks good to me.

Thanks for looking this over!  I'd like to acknowledge your review,
but I need an explicit Reviewed-by or similar.  I don't want to put
words in your mouth by converting "Looks good to me" to "Reviewed-by".

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

* Re: [PATCH 1/2] PCI: controller: thunder: fix compile testing
  2021-02-25 18:51   ` Bjorn Helgaas
@ 2021-02-25 19:15     ` Kuppuswamy, Sathyanarayanan
  0 siblings, 0 replies; 8+ messages in thread
From: Kuppuswamy, Sathyanarayanan @ 2021-02-25 19:15 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Arnd Bergmann, Robert Richter, Lorenzo Pieralisi, Bjorn Helgaas,
	Arnd Bergmann, Rob Herring, Catalin Marinas,
	Krzysztof Wilczyński, Jonathan Cameron, Sean V Kelley,
	Qiuxu Zhuo, David E. Box, Yicong Yang, linux-pci,
	linux-arm-kernel, linux-kernel



On 2/25/21 10:51 AM, Bjorn Helgaas wrote:
> Thanks for looking this over!  I'd like to acknowledge your review,
> but I need an explicit Reviewed-by or similar.  I don't want to put
> words in your mouth by converting "Looks good to me" to "Reviewed-by".

will do so in future reviews.

Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>

-- 
Sathyanarayanan Kuppuswamy
Linux Kernel Developer

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

* Re: [PATCH 1/2] PCI: controller: thunder: fix compile testing
  2021-02-25 14:37 [PATCH 1/2] PCI: controller: thunder: fix compile testing Arnd Bergmann
  2021-02-25 14:37 ` [PATCH 2/2] PCI: controller: avoid building empty drivers Arnd Bergmann
  2021-02-25 17:44 ` [PATCH 1/2] PCI: controller: thunder: fix compile testing Kuppuswamy, Sathyanarayanan
@ 2021-02-26 15:12 ` Robert Richter
  2 siblings, 0 replies; 8+ messages in thread
From: Robert Richter @ 2021-02-26 15:12 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Lorenzo Pieralisi, Bjorn Helgaas, Arnd Bergmann, Rob Herring,
	Catalin Marinas, Krzysztof Wilczyński,
	Kuppuswamy Sathyanarayanan, Jonathan Cameron, Sean V Kelley,
	Qiuxu Zhuo, David E. Box, Yicong Yang, linux-pci,
	linux-arm-kernel, linux-kernel

On 25.02.21 15:37:09, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> Compile-testing these drivers is currently broken. Enabling
> it causes a couple of build failures though:
> 
> drivers/pci/controller/pci-thunder-ecam.c:119:30: error: shift count >= width of type [-Werror,-Wshift-count-overflow]
> drivers/pci/controller/pci-thunder-pem.c:54:2: error: implicit declaration of function 'writeq' [-Werror,-Wimplicit-function-declaration]
> drivers/pci/controller/pci-thunder-pem.c:392:8: error: implicit declaration of function 'acpi_get_rc_resources' [-Werror,-Wimplicit-function-declaration]
> 
> Fix them with the obvious one-line changes.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Reviewed-by: Robert Richter <rric@kernel.org>

> ---
>  drivers/pci/controller/pci-thunder-ecam.c |  2 +-
>  drivers/pci/controller/pci-thunder-pem.c  | 13 +++++++------
>  drivers/pci/pci.h                         |  6 ++++++
>  3 files changed, 14 insertions(+), 7 deletions(-)

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

* Re: [PATCH 2/2] PCI: controller: avoid building empty drivers
  2021-02-25 14:37 ` [PATCH 2/2] PCI: controller: avoid building empty drivers Arnd Bergmann
@ 2021-02-26 19:08   ` Robert Richter
  2021-02-27 12:31     ` Arnd Bergmann
  0 siblings, 1 reply; 8+ messages in thread
From: Robert Richter @ 2021-02-26 19:08 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Lorenzo Pieralisi, Bjorn Helgaas, Arnd Bergmann, Rob Herring,
	Lad Prabhakar, Yoshihiro Shimoda, Bharat Kumar Gogada,
	Yicong Yang, Jiaxun Yang, Daire McNamara, Kunihiko Hayashi,
	linux-pci, linux-kernel

On 25.02.21 15:37:10, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> There are harmless warnings when compile testing the kernel with
> CONFIG_TRIM_UNUSED_KSYMS:
> 
> drivers/pci/controller/dwc/pcie-al.o: no symbols
> drivers/pci/controller/pci-thunder-ecam.o: no symbols
> drivers/pci/controller/pci-thunder-pem.o: no symbols
> 
> The problem here is that the host drivers get built even when the
> configuration symbols are all disabled, as they pretend to not be drivers
> but are silently enabled because of the promise that ACPI based systems
> need no drivers.
> 
> Add back the normal symbols to have these drivers built, and change the
> logic to otherwise only build them when both CONFIG_PCI_QUIRKS and
> CONFIG_ACPI are enabled.
> 
> As a side-effect, this enables compile-testing the drivers on other
> architectures, which in turn needs the acpi_get_rc_resources()
> function to be defined.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  drivers/pci/controller/Makefile     | 7 ++++++-
>  drivers/pci/controller/dwc/Makefile | 7 ++++++-
>  2 files changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/pci/controller/Makefile b/drivers/pci/controller/Makefile
> index e4559f2182f2..6d24a163033f 100644
> --- a/drivers/pci/controller/Makefile
> +++ b/drivers/pci/controller/Makefile
> @@ -11,10 +11,13 @@ obj-$(CONFIG_PCIE_RCAR_HOST) += pcie-rcar.o pcie-rcar-host.o
>  obj-$(CONFIG_PCIE_RCAR_EP) += pcie-rcar.o pcie-rcar-ep.o
>  obj-$(CONFIG_PCI_HOST_COMMON) += pci-host-common.o
>  obj-$(CONFIG_PCI_HOST_GENERIC) += pci-host-generic.o
> +obj-$(CONFIG_PCI_HOST_THUNDER_ECAM) += pci-thunder-ecam.o
> +obj-$(CONFIG_PCI_HOST_THUNDER_PEM) += pci-thunder-pem.o
>  obj-$(CONFIG_PCIE_XILINX) += pcie-xilinx.o
>  obj-$(CONFIG_PCIE_XILINX_NWL) += pcie-xilinx-nwl.o
>  obj-$(CONFIG_PCIE_XILINX_CPM) += pcie-xilinx-cpm.o
>  obj-$(CONFIG_PCI_V3_SEMI) += pci-v3-semi.o
> +obj-$(CONFIG_PCI_XGENE) += pci-xgene.o
>  obj-$(CONFIG_PCI_XGENE_MSI) += pci-xgene-msi.o
>  obj-$(CONFIG_PCI_VERSATILE) += pci-versatile.o
>  obj-$(CONFIG_PCIE_IPROC) += pcie-iproc.o
> @@ -47,8 +50,10 @@ obj-y				+= mobiveil/
>  # ARM64 and use internal ifdefs to only build the pieces we need
>  # depending on whether ACPI, the DT driver, or both are enabled.
>  
> -ifdef CONFIG_PCI
> +ifdef CONFIG_ACPI
> +ifdef CONFIG_PCI_QUIRKS
>  obj-$(CONFIG_ARM64) += pci-thunder-ecam.o
>  obj-$(CONFIG_ARM64) += pci-thunder-pem.o
>  obj-$(CONFIG_ARM64) += pci-xgene.o
>  endif
> +endif

A possible double inclusion isn't really nice here, but it should work
that way.

Also, the menu entry for the driver is in fact only for the OF case,
as it is always included for ACPI even if the option is disabled (and
thus the choice is useless). But this is unrelated to this patch.

Anyway:

Reviewed-by: Robert Richter <rric@kernel.org>

> diff --git a/drivers/pci/controller/dwc/Makefile b/drivers/pci/controller/dwc/Makefile
> index a751553fa0db..ba7c42f6df6f 100644
> --- a/drivers/pci/controller/dwc/Makefile
> +++ b/drivers/pci/controller/dwc/Makefile
> @@ -31,7 +31,12 @@ obj-$(CONFIG_PCIE_UNIPHIER_EP) += pcie-uniphier-ep.o
>  # ARM64 and use internal ifdefs to only build the pieces we need
>  # depending on whether ACPI, the DT driver, or both are enabled.
>  
> -ifdef CONFIG_PCI
> +obj-$(CONFIG_PCIE_AL) += pcie-al.o
> +obj-$(CONFIG_PCI_HISI) += pcie-hisi.o
> +
> +ifdef CONFIG_ACPI
> +ifdef CONFIG_PCI_QUIRKS
>  obj-$(CONFIG_ARM64) += pcie-al.o
>  obj-$(CONFIG_ARM64) += pcie-hisi.o
>  endif
> +endif
> -- 
> 2.29.2
> 

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

* Re: [PATCH 2/2] PCI: controller: avoid building empty drivers
  2021-02-26 19:08   ` Robert Richter
@ 2021-02-27 12:31     ` Arnd Bergmann
  0 siblings, 0 replies; 8+ messages in thread
From: Arnd Bergmann @ 2021-02-27 12:31 UTC (permalink / raw)
  To: Robert Richter
  Cc: Lorenzo Pieralisi, Bjorn Helgaas, Arnd Bergmann, Rob Herring,
	Lad Prabhakar, Yoshihiro Shimoda, Bharat Kumar Gogada,
	Yicong Yang, Jiaxun Yang, Daire McNamara, Kunihiko Hayashi,
	linux-pci, linux-kernel

On Fri, Feb 26, 2021 at 8:08 PM Robert Richter <rric@kernel.org> wrote:
> On 25.02.21 15:37:10, Arnd Bergmann wrote:
>
> A possible double inclusion isn't really nice here, but it should work
> that way.
>
> Also, the menu entry for the driver is in fact only for the OF case,
> as it is always included for ACPI even if the option is disabled (and
> thus the choice is useless). But this is unrelated to this patch.

Yes, I considered doing this using Kconfig syntax by adding another
symbol for each affected driver and selecting those, but the Makefile
hack seemed easier here.

> Reviewed-by: Robert Richter <rric@kernel.org>

Thanks,

        Arnd

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

end of thread, other threads:[~2021-02-27 12:32 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-25 14:37 [PATCH 1/2] PCI: controller: thunder: fix compile testing Arnd Bergmann
2021-02-25 14:37 ` [PATCH 2/2] PCI: controller: avoid building empty drivers Arnd Bergmann
2021-02-26 19:08   ` Robert Richter
2021-02-27 12:31     ` Arnd Bergmann
2021-02-25 17:44 ` [PATCH 1/2] PCI: controller: thunder: fix compile testing Kuppuswamy, Sathyanarayanan
2021-02-25 18:51   ` Bjorn Helgaas
2021-02-25 19:15     ` Kuppuswamy, Sathyanarayanan
2021-02-26 15:12 ` Robert Richter

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).