From: Sascha Hauer <[email protected]> The layerscape pcie host controller could also be compiled as module. Add the necessary infrastructure to allow building as module instead of only as builtin driver.
Signed-off-by: Sascha Hauer <[email protected]> Signed-off-by: Steffen Trumtrar <[email protected]> --- drivers/pci/controller/dwc/Kconfig | 2 +- drivers/pci/controller/dwc/pci-layerscape.c | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig index 519b59422b479..abfa4a6e62c25 100644 --- a/drivers/pci/controller/dwc/Kconfig +++ b/drivers/pci/controller/dwc/Kconfig @@ -121,7 +121,7 @@ config PCI_IMX6_EP DesignWare core functions to implement the driver. config PCI_LAYERSCAPE - bool "Freescale Layerscape PCIe controller (host mode)" + tristate "Freescale Layerscape PCIe controller (host mode)" depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST) depends on PCI_MSI select PCIE_DW_HOST diff --git a/drivers/pci/controller/dwc/pci-layerscape.c b/drivers/pci/controller/dwc/pci-layerscape.c index a44b5c256d6e2..14d6ac4fc53fd 100644 --- a/drivers/pci/controller/dwc/pci-layerscape.c +++ b/drivers/pci/controller/dwc/pci-layerscape.c @@ -13,6 +13,7 @@ #include <linux/interrupt.h> #include <linux/init.h> #include <linux/iopoll.h> +#include <linux/module.h> #include <linux/of_pci.h> #include <linux/of_platform.h> #include <linux/of_address.h> @@ -403,8 +404,16 @@ static const struct dev_pm_ops ls_pcie_pm_ops = { NOIRQ_SYSTEM_SLEEP_PM_OPS(ls_pcie_suspend_noirq, ls_pcie_resume_noirq) }; +static void ls_pcie_remove(struct platform_device *pdev) +{ + struct ls_pcie *pcie = platform_get_drvdata(pdev); + + dw_pcie_host_deinit(&pcie->pci->pp); +} + static struct platform_driver ls_pcie_driver = { .probe = ls_pcie_probe, + .remove = ls_pcie_remove, .driver = { .name = "layerscape-pcie", .of_match_table = ls_pcie_of_match, @@ -412,4 +421,9 @@ static struct platform_driver ls_pcie_driver = { .pm = &ls_pcie_pm_ops, }, }; -builtin_platform_driver(ls_pcie_driver); +module_platform_driver(ls_pcie_driver); + +MODULE_AUTHOR("Minghuan Lian <[email protected]>"); +MODULE_DESCRIPTION("Layerscape PCIe host controller driver"); +MODULE_LICENSE("GPL"); +MODULE_DEVICE_TABLE(of, ls_pcie_of_match); --- base-commit: 8f0b4cce4481fb22653697cced8d0d04027cb1e8 change-id: 20260112-v6-19-topic-layerscape-pcie-9d10b6542139 Best regards, -- Steffen Trumtrar <[email protected]>
