PCI: altera-msi: Allow building as module
authorLey Foon Tan <ley.foon.tan@intel.com>
Wed, 24 Apr 2019 04:57:15 +0000 (12:57 +0800)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Thu, 30 May 2019 14:34:54 +0000 (15:34 +0100)
Altera MSI IP is a soft IP and is only available after
an FPGA image (with design containing it) is programmed.

Make driver modulable to support use case FPGA image is programmed the
after kernel has booted, so that the driver can be loaded upon request.

Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/Kconfig
drivers/pci/controller/pcie-altera-msi.c

index 89906351bd3fd18b1f1cb4438e677e122eacbe8f..fe9f9f13ce11ccce211dc1bcf8bb1d0512141ea4 100644 (file)
@@ -181,7 +181,7 @@ config PCIE_ALTERA
          FPGA.
 
 config PCIE_ALTERA_MSI
-       bool "Altera PCIe MSI feature"
+       tristate "Altera PCIe MSI feature"
        depends on PCIE_ALTERA
        depends on PCI_MSI_IRQ_DOMAIN
        help
index 025ef7d9a046f4020f15b46ae757f7d48ff09d44..16d938920ca57a7162d805a182fa9b0d67a0e3a2 100644 (file)
@@ -10,6 +10,7 @@
 #include <linux/interrupt.h>
 #include <linux/irqchip/chained_irq.h>
 #include <linux/init.h>
+#include <linux/module.h>
 #include <linux/msi.h>
 #include <linux/of_address.h>
 #include <linux/of_irq.h>
@@ -288,4 +289,13 @@ static int __init altera_msi_init(void)
 {
        return platform_driver_register(&altera_msi_driver);
 }
+
+static void __exit altera_msi_exit(void)
+{
+       platform_driver_unregister(&altera_msi_driver);
+}
+
 subsys_initcall(altera_msi_init);
+MODULE_DEVICE_TABLE(of, altera_msi_of_match);
+module_exit(altera_msi_exit);
+MODULE_LICENSE("GPL v2");