[PATCH v7 01/13] PCI: cadence: Add support for modules for cadence controller builds

hans.zhang@cixtech.com posted 13 patches 1 month, 3 weeks ago
There is a newer version of this series
[PATCH v7 01/13] PCI: cadence: Add support for modules for cadence controller builds
Posted by hans.zhang@cixtech.com 1 month, 3 weeks ago
From: Manikandan K Pillai <mpillai@cadence.com>

Add support for building PCI cadence platforms as a module.

Signed-off-by: Manikandan K Pillai <mpillai@cadence.com>
Signed-off-by: Hans Zhang <hans.zhang@cixtech.com>
---
 drivers/pci/controller/cadence/Kconfig             | 6 +++---
 drivers/pci/controller/cadence/pcie-cadence-plat.c | 4 ++++
 drivers/pci/controller/cadence/pcie-cadence.c      | 1 +
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/pci/controller/cadence/Kconfig b/drivers/pci/controller/cadence/Kconfig
index 666e16b6367f..117677a23d68 100644
--- a/drivers/pci/controller/cadence/Kconfig
+++ b/drivers/pci/controller/cadence/Kconfig
@@ -19,10 +19,10 @@ config PCIE_CADENCE_EP
 	select PCIE_CADENCE
 
 config PCIE_CADENCE_PLAT
-	bool
+	tristate
 
 config PCIE_CADENCE_PLAT_HOST
-	bool "Cadence platform PCIe controller (host mode)"
+	tristate "Cadence platform PCIe controller (host mode)"
 	depends on OF
 	select PCIE_CADENCE_HOST
 	select PCIE_CADENCE_PLAT
@@ -32,7 +32,7 @@ config PCIE_CADENCE_PLAT_HOST
 	  vendors SoCs.
 
 config PCIE_CADENCE_PLAT_EP
-	bool "Cadence platform PCIe controller (endpoint mode)"
+	tristate "Cadence platform PCIe controller (endpoint mode)"
 	depends on OF
 	depends on PCI_ENDPOINT
 	select PCIE_CADENCE_EP
diff --git a/drivers/pci/controller/cadence/pcie-cadence-plat.c b/drivers/pci/controller/cadence/pcie-cadence-plat.c
index 0456845dabb9..c9330aa50a88 100644
--- a/drivers/pci/controller/cadence/pcie-cadence-plat.c
+++ b/drivers/pci/controller/cadence/pcie-cadence-plat.c
@@ -178,3 +178,7 @@ static struct platform_driver cdns_plat_pcie_driver = {
 	.shutdown = cdns_plat_pcie_shutdown,
 };
 builtin_platform_driver(cdns_plat_pcie_driver);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Cadence PCIe controller platform driver");
+MODULE_AUTHOR("Manikandan K Pillai <mpillai@cadence.com>");
diff --git a/drivers/pci/controller/cadence/pcie-cadence.c b/drivers/pci/controller/cadence/pcie-cadence.c
index 70a19573440e..5603f214f4c7 100644
--- a/drivers/pci/controller/cadence/pcie-cadence.c
+++ b/drivers/pci/controller/cadence/pcie-cadence.c
@@ -279,6 +279,7 @@ const struct dev_pm_ops cdns_pcie_pm_ops = {
 	NOIRQ_SYSTEM_SLEEP_PM_OPS(cdns_pcie_suspend_noirq,
 				  cdns_pcie_resume_noirq)
 };
+EXPORT_SYMBOL_GPL(cdns_pcie_pm_ops);
 
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("Cadence PCIe controller driver");
-- 
2.49.0
Re: [PATCH v7 01/13] PCI: cadence: Add support for modules for cadence controller builds
Posted by Bjorn Helgaas 1 month, 2 weeks ago
No need to repeat "cadence" in the subject.  Something like this would
be sufficient:

  PCI: cadence: Add module support for platform controller driver

On Wed, Aug 13, 2025 at 12:23:19PM +0800, hans.zhang@cixtech.com wrote:
> From: Manikandan K Pillai <mpillai@cadence.com>
> 
> Add support for building PCI cadence platforms as a module.
> 
> Signed-off-by: Manikandan K Pillai <mpillai@cadence.com>
> Signed-off-by: Hans Zhang <hans.zhang@cixtech.com>

> +++ b/drivers/pci/controller/cadence/pcie-cadence-plat.c
> @@ -178,3 +178,7 @@ static struct platform_driver cdns_plat_pcie_driver = {
>  	.shutdown = cdns_plat_pcie_shutdown,
>  };
>  builtin_platform_driver(cdns_plat_pcie_driver);

Do you need any change here, e.g., to module_platform_driver()?  I'm
not an expert in the module machinery, so just a question.

> +MODULE_LICENSE("GPL");
> +MODULE_DESCRIPTION("Cadence PCIe controller platform driver");
> +MODULE_AUTHOR("Manikandan K Pillai <mpillai@cadence.com>");
> diff --git a/drivers/pci/controller/cadence/pcie-cadence.c b/drivers/pci/controller/cadence/pcie-cadence.c
> index 70a19573440e..5603f214f4c7 100644
> --- a/drivers/pci/controller/cadence/pcie-cadence.c
> +++ b/drivers/pci/controller/cadence/pcie-cadence.c
> @@ -279,6 +279,7 @@ const struct dev_pm_ops cdns_pcie_pm_ops = {
>  	NOIRQ_SYSTEM_SLEEP_PM_OPS(cdns_pcie_suspend_noirq,
>  				  cdns_pcie_resume_noirq)
>  };
> +EXPORT_SYMBOL_GPL(cdns_pcie_pm_ops);
>  
>  MODULE_LICENSE("GPL");
>  MODULE_DESCRIPTION("Cadence PCIe controller driver");
> -- 
> 2.49.0
>