From 435563af8f7eb71374b3869c0d10dec68b83d47c Mon Sep 17 00:00:00 2001 From: John Stultz Date: Fri, 3 Apr 2020 22:09:17 +0000 Subject: [PATCH] ANDROID: firmware: QCOM_SCM: Allow qcom_scm driver to be loadable as a permenent module Allow the qcom_scm driver to be loadable as a permenent module. Bug: 153049053 Signed-off-by: John Stultz Change-Id: I7c0a3c9dc53ee9729cadd0457522ac0229de254d --- drivers/firmware/Kconfig | 8 +++++--- drivers/firmware/Makefile | 8 +++++--- drivers/firmware/qcom_scm.c | 4 ++++ drivers/iommu/Kconfig | 1 + 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig index e40a77bfe821..1bc0e965f2e9 100644 --- a/drivers/firmware/Kconfig +++ b/drivers/firmware/Kconfig @@ -235,16 +235,18 @@ config INTEL_STRATIX10_RSU Say Y here if you want Intel RSU support. config QCOM_SCM - bool + tristate "Qcom SCM driver" depends on ARM || ARM64 select RESET_CONTROLLER config QCOM_SCM_32 - def_bool y + tristate + default y depends on QCOM_SCM && ARM config QCOM_SCM_64 - def_bool y + tristate + default y depends on QCOM_SCM && ARM64 config QCOM_SCM_DOWNLOAD_MODE_DEFAULT diff --git a/drivers/firmware/Makefile b/drivers/firmware/Makefile index 3fcb91975bdc..64f5391e5749 100644 --- a/drivers/firmware/Makefile +++ b/drivers/firmware/Makefile @@ -17,9 +17,11 @@ obj-$(CONFIG_ISCSI_IBFT) += iscsi_ibft.o obj-$(CONFIG_FIRMWARE_MEMMAP) += memmap.o obj-$(CONFIG_RASPBERRYPI_FIRMWARE) += raspberrypi.o obj-$(CONFIG_FW_CFG_SYSFS) += qemu_fw_cfg.o -obj-$(CONFIG_QCOM_SCM) += qcom_scm.o -obj-$(CONFIG_QCOM_SCM_64) += qcom_scm-64.o -obj-$(CONFIG_QCOM_SCM_32) += qcom_scm-32.o +obj-$(CONFIG_QCOM_SCM_64) += qcom-scm-64.o +obj-$(CONFIG_QCOM_SCM_32) += qcom-scm-32.o +qcom-scm-64-objs += qcom_scm.o qcom_scm-64.o +qcom-scm-32-objs += qcom_scm.o qcom_scm-32.o + CFLAGS_qcom_scm-32.o :=$(call as-instr,.arch armv7-a\n.arch_extension sec,-DREQUIRES_SEC=1) -march=armv7-a obj-$(CONFIG_TI_SCI_PROTOCOL) += ti_sci.o obj-$(CONFIG_TRUSTED_FOUNDATIONS) += trusted_foundations.o diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index a729e05c21b8..cbbabf705c57 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -621,6 +621,7 @@ static const struct of_device_id qcom_scm_dt_match[] = { { .compatible = "qcom,scm" }, {} }; +MODULE_DEVICE_TABLE(of, qcom_scm_dt_match); static struct platform_driver qcom_scm_driver = { .driver = { @@ -636,3 +637,6 @@ static int __init qcom_scm_init(void) return platform_driver_register(&qcom_scm_driver); } subsys_initcall(qcom_scm_init); + +MODULE_DESCRIPTION("Qualcomm Technologies, Inc. SCM driver"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig index ba8b3e2138f9..a6caac588139 100644 --- a/drivers/iommu/Kconfig +++ b/drivers/iommu/Kconfig @@ -501,6 +501,7 @@ config QCOM_IOMMU # Note: iommu drivers cannot (yet?) be built as modules bool "Qualcomm IOMMU Support" depends on ARCH_QCOM || (COMPILE_TEST && !GENERIC_ATOMIC64) + depends on QCOM_SCM=y select IOMMU_API select IOMMU_IO_PGTABLE_LPAE select ARM_DMA_USE_IOMMU