iommu/mediatek-v1: Allow building as module
authorYong Wu <yong.wu@mediatek.com>
Fri, 26 Mar 2021 03:23:36 +0000 (11:23 +0800)
committerJoerg Roedel <jroedel@suse.de>
Wed, 7 Apr 2021 08:33:58 +0000 (10:33 +0200)
This patch only adds support for building the IOMMU-v1 driver as module.
Correspondingly switch the config to tristate and update the iommu_ops's
owner to THIS_MODULE.

Signed-off-by: Yong Wu <yong.wu@mediatek.com>
Link: https://lore.kernel.org/r/20210326032337.24578-1-yong.wu@mediatek.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/Kconfig
drivers/iommu/mtk_iommu_v1.c

index 192ef8f61310313adbc9d0660f77f3701443a32a..bc93da48bed0d5e89c3dcd24df1a92a82d0f3cc5 100644 (file)
@@ -364,7 +364,7 @@ config MTK_IOMMU
          If unsure, say N here.
 
 config MTK_IOMMU_V1
-       bool "MTK IOMMU Version 1 (M4U gen1) Support"
+       tristate "MediaTek IOMMU Version 1 (M4U gen1) Support"
        depends on ARM
        depends on ARCH_MEDIATEK || COMPILE_TEST
        select ARM_DMA_USE_IOMMU
index 82ddfe9170d4df1d00981bb8063533405705f4f8..be1b20e3f20e9dbea8649c944be52909a1c95f71 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/iommu.h>
 #include <linux/iopoll.h>
 #include <linux/list.h>
+#include <linux/module.h>
 #include <linux/of_address.h>
 #include <linux/of_iommu.h>
 #include <linux/of_irq.h>
@@ -529,6 +530,7 @@ static const struct iommu_ops mtk_iommu_ops = {
        .def_domain_type = mtk_iommu_def_domain_type,
        .device_group   = generic_device_group,
        .pgsize_bitmap  = ~0UL << MT2701_IOMMU_PAGE_SHIFT,
+       .owner          = THIS_MODULE,
 };
 
 static const struct of_device_id mtk_iommu_of_ids[] = {
@@ -691,9 +693,7 @@ static struct platform_driver mtk_iommu_driver = {
                .pm = &mtk_iommu_pm_ops,
        }
 };
+module_platform_driver(mtk_iommu_driver);
 
-static int __init m4u_init(void)
-{
-       return platform_driver_register(&mtk_iommu_driver);
-}
-subsys_initcall(m4u_init);
+MODULE_DESCRIPTION("IOMMU API for MediaTek M4U v1 implementations");
+MODULE_LICENSE("GPL v2");