On 03.11.2022 20:51, Sam Protsenko wrote: > As exynos-iommu driver is not a critical platform driver, it can be > converted to a loadable module to avoid loading it on non-Exynos > platforms in order to improve the RAM footprint. This patch series > converts it to a module and does some related cleanups. IOMMU/DMA > specifics were taken into the account, so remove/exit methods weren't > added. > > There are two drivers using CONFIG_EXYNOS_IOMMU in their code: > DRM_EXYNOS and S5P_MFC. Both were checked, and only a slight change was > needed for S5P_MFC driver (patch #6). Funny, compiling this driver as a module revealed an issue in the driver initialization sequence, here is a fix that need to be applied before this patchset: https://lore.kernel.org/all/20221104115511.28256-1-m.szyprowski@xxxxxxxxxxx/ Besides that, the driver nukes with NULL pointer dereference in exynos_iommu_of_xlate() when compiled as a module on ARM 64bit Exynos5433 based TM2e board. ARM 32bit based board works fine. I'm checking this issue now. > Changes in v2: > - Extracted the "shutdown" method addition into a separate patch > - Added MODULE_DEVICE_TABLE(of, ...) to support hot-plug loading > - Added MODULE_ALIAS("platform:exynos-sysmmu") > - Added fix for S5P_MFC driver to work correctly with EXYNOS_IOMMU=m > - Fixed checkpatch coding style suggestion with "--strict" flag > - Rebased on top of most recent joro/iommu.git:next > > Sam Protsenko (6): > iommu: Export iommu_group_default_domain() API > iommu/exynos: Fix retval on getting clocks in probe > iommu/exynos: Modularize the driver > iommu/exynos: Implement shutdown driver method > iommu/exynos: Rearrange the platform driver code > media: platform: Use IS_ENABLED() to check EXYNOS_IOMMU in s5p_mfc > > drivers/iommu/Kconfig | 2 +- > drivers/iommu/exynos-iommu.c | 355 +++++++++--------- > drivers/iommu/iommu.c | 1 + > .../platform/samsung/s5p-mfc/s5p_mfc_iommu.h | 4 +- > 4 files changed, 191 insertions(+), 171 deletions(-) > Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland