PCI: dra7xx: Make explicitly non-modular
authorPaul Gortmaker <paul.gortmaker@windriver.com>
Wed, 24 Aug 2016 20:57:47 +0000 (16:57 -0400)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 24 Aug 2016 22:02:05 +0000 (17:02 -0500)
This code is not being built as a module by anyone:

  drivers/pci/host/Kconfig:config PCI_DRA7XX
  drivers/pci/host/Kconfig:  bool "TI DRA7xx PCIe controller"

Remove uses of MODULE_DESCRIPTION(), MODULE_AUTHOR(), MODULE_LICENSE(),
etc., so that when reading the driver there is no doubt it is builtin-only.
The information is preserved in comments at the top of the file.

Note that for non-modular code, MODULE_DEVICE_TABLE is a no-op and
builtin_platform_driver_probe() uses the same init level priority as
module_platform_driver_probe(), so this doesn't change init ordering.

Explicitly disallow driver unbind, since that doesn't have a sensible use
case anyway, and it allows us to drop the ".remove" code for non-modular
drivers.

[bhelgaas: changelog]
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
CC: Kishon Vijay Abraham I <kishon@ti.com>
drivers/pci/host/pci-dra7xx.c

index 81b3949a26dbda1ed9586ba2cefbe7450f5e7f02..19223ed2e619f6e7f622ef6b1df8655353105747 100644 (file)
@@ -15,7 +15,7 @@
 #include <linux/irq.h>
 #include <linux/irqdomain.h>
 #include <linux/kernel.h>
-#include <linux/module.h>
+#include <linux/init.h>
 #include <linux/of_gpio.h>
 #include <linux/pci.h>
 #include <linux/phy/phy.h>
@@ -443,25 +443,6 @@ err_phy:
        return ret;
 }
 
-static int __exit dra7xx_pcie_remove(struct platform_device *pdev)
-{
-       struct dra7xx_pcie *dra7xx = platform_get_drvdata(pdev);
-       struct pcie_port *pp = &dra7xx->pp;
-       struct device *dev = &pdev->dev;
-       int count = dra7xx->phy_count;
-
-       if (pp->irq_domain)
-               irq_domain_remove(pp->irq_domain);
-       pm_runtime_put(dev);
-       pm_runtime_disable(dev);
-       while (count--) {
-               phy_power_off(dra7xx->phy[count]);
-               phy_exit(dra7xx->phy[count]);
-       }
-
-       return 0;
-}
-
 #ifdef CONFIG_PM_SLEEP
 static int dra7xx_pcie_suspend(struct device *dev)
 {
@@ -545,19 +526,13 @@ static const struct of_device_id of_dra7xx_pcie_match[] = {
        { .compatible = "ti,dra7-pcie", },
        {},
 };
-MODULE_DEVICE_TABLE(of, of_dra7xx_pcie_match);
 
 static struct platform_driver dra7xx_pcie_driver = {
-       .remove         = __exit_p(dra7xx_pcie_remove),
        .driver = {
                .name   = "dra7-pcie",
                .of_match_table = of_dra7xx_pcie_match,
+               .suppress_bind_attrs = true,
                .pm     = &dra7xx_pcie_pm_ops,
        },
 };
-
-module_platform_driver_probe(dra7xx_pcie_driver, dra7xx_pcie_probe);
-
-MODULE_AUTHOR("Kishon Vijay Abraham I <kishon@ti.com>");
-MODULE_DESCRIPTION("TI PCIe controller driver");
-MODULE_LICENSE("GPL v2");
+builtin_platform_driver_probe(dra7xx_pcie_driver, dra7xx_pcie_probe);