diff --git a/drivers/soc/rockchip/Kconfig b/drivers/soc/rockchip/Kconfig index 38827e97051d..04d7f1c049cb 100644 --- a/drivers/soc/rockchip/Kconfig +++ b/drivers/soc/rockchip/Kconfig @@ -15,7 +15,7 @@ config ANDROID_VERSION The value is 0xAABBCCRR, corresponding to Android A.B.C release R config ROCKCHIP_CPUINFO - bool "Rockchip cpuinfo support" + tristate "Rockchip cpuinfo support" depends on (ROCKCHIP_EFUSE || ROCKCHIP_OTP) && (ARM64 || ARM) default y help diff --git a/drivers/soc/rockchip/rockchip-cpuinfo.c b/drivers/soc/rockchip/rockchip-cpuinfo.c index e2eacd22c359..34cfc5d43f00 100644 --- a/drivers/soc/rockchip/rockchip-cpuinfo.c +++ b/drivers/soc/rockchip/rockchip-cpuinfo.c @@ -178,10 +178,23 @@ static int __init rockchip_soc_id_init(void) return 0; } +#ifndef MODULE pure_initcall(rockchip_soc_id_init); +#endif static int __init rockchip_cpuinfo_init(void) { +#ifdef MODULE + rockchip_soc_id_init(); +#endif return platform_driver_register(&rockchip_cpuinfo_driver); } subsys_initcall_sync(rockchip_cpuinfo_init); + +static void __exit rockchip_cpuinfo_exit(void) +{ + platform_driver_unregister(&rockchip_cpuinfo_driver); +} +module_exit(rockchip_cpuinfo_exit); + +MODULE_LICENSE("GPL"); diff --git a/include/linux/rockchip/cpu.h b/include/linux/rockchip/cpu.h index 9c6bc082e3f0..6a1719ca2137 100644 --- a/include/linux/rockchip/cpu.h +++ b/include/linux/rockchip/cpu.h @@ -24,7 +24,7 @@ #define ROCKCHIP_CPU_RK3288 0x32880000 #define ROCKCHIP_CPU_RK3308 0x33080000 -#ifdef CONFIG_ROCKCHIP_CPUINFO +#if IS_ENABLED(CONFIG_ROCKCHIP_CPUINFO) extern unsigned long rockchip_soc_id;