From 78200d8ba069efcfd6a2e3e085537a35de066002 Mon Sep 17 00:00:00 2001 From: Konstantin Dorfman Date: Thu, 10 Oct 2019 15:49:25 +0300 Subject: [PATCH] soc: qcom: spss_utils: add spss_utils as DLKM for GKI This change converts statically compiled platform driver into kernel module. Change-Id: Iee2c47dd895931f6c8f1982bc34b868287b994f6 Signed-off-by: Konstantin Dorfman --- drivers/soc/qcom/Kconfig | 2 +- drivers/soc/qcom/spss_utils.c | 47 +++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig index 892acf86d31d..835721c1ad40 100644 --- a/drivers/soc/qcom/Kconfig +++ b/drivers/soc/qcom/Kconfig @@ -46,7 +46,7 @@ config QCOM_GLINK_SSR config MSM_SPSS_UTILS depends on MSM_PIL - bool "Secure Processor Utilities" + tristate "Secure Processor Utilities" help spss-utils driver selects Secure Processor firmware file name.name The firmware file name for dev, test or production is selected diff --git a/drivers/soc/qcom/spss_utils.c b/drivers/soc/qcom/spss_utils.c index d0506a7d0647..73afe3edebce 100644 --- a/drivers/soc/qcom/spss_utils.c +++ b/drivers/soc/qcom/spss_utils.c @@ -366,7 +366,17 @@ remove_firmware_name: return ret; } +static void spss_destroy_sysfs(struct device *dev) +{ + device_remove_file(dev, &dev_attr_pbl_cmac); + device_remove_file(dev, &dev_attr_iar_enabled); + device_remove_file(dev, &dev_attr_iar_state); + device_remove_file(dev, &dev_attr_cmac_buf); + device_remove_file(dev, &dev_attr_spss_debug_reg); + device_remove_file(dev, &dev_attr_test_fuse_state); + device_remove_file(dev, &dev_attr_firmware_name); +} /*==========================================================================*/ /* IOCTL */ /*==========================================================================*/ @@ -509,6 +519,13 @@ exit_unreg_chrdev_region: return ret; } +static void spss_utils_destroy_chardev(void) +{ + device_destroy(spss_utils_dev->driver_class, spss_utils_dev->device_no); + class_destroy(spss_utils_dev->driver_class); + unregister_chrdev_region(spss_utils_dev->device_no, 1); +} + /*==========================================================================*/ /* Device Tree */ /*==========================================================================*/ @@ -728,6 +745,7 @@ static int spss_parse_dt(struct device_node *node) /* read IAR_FEATURE_ENABLED from soc fuse */ val1 = readl_relaxed(spss_fuse3_reg); + iounmap(spss_fuse3_reg); spss_fuse3_mask = (1<