Thread (18 messages) 18 messages, 4 authors, 2016-03-25

Re: [PATCH v2] cpufreq: rockchip: add driver

From: Viresh Kumar <viresh.kumar@linaro.org>
Date: 2016-03-23 04:40:44
Also in: linux-arm-kernel, linux-rockchip, lkml

On 23-03-16, 10:18, Feng Xiao wrote:
quoted hunk ↗ jump to hunk
diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm
index 14b1f93..1786315 100644
--- a/drivers/cpufreq/Kconfig.arm
+++ b/drivers/cpufreq/Kconfig.arm
@@ -97,6 +97,16 @@ config ARM_OMAP2PLUS_CPUFREQ
 	depends on ARCH_OMAP2PLUS
 	default ARCH_OMAP2PLUS
 
+config ARM_ROCKCHIP_CPUFREQ
+	tristate "Rockchip CPUfreq driver"
Since you are allowing it to be built as a module ...
+	depends on ARCH_ROCKCHIP && CPUFREQ_DT
+	select PM_OPP
+	help
+	  This adds the CPUFreq driver support for Rockchip SoCs.
+	  The driver will directly use cpufreq-dt driver as backend.
+
+	  If in doubt, say N.
quoted hunk ↗ jump to hunk
+++ b/drivers/cpufreq/rockchip-cpufreq.c
+static int __init rockchip_cpufreq_driver_init(void)
+{
+	struct platform_device *pdev;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(rockchip_compat); i++) {
+		if (of_machine_is_compatible(rockchip_compat[i])) {
+			pdev = platform_device_register_simple("cpufreq-dt",
+							       -1, NULL, 0);
+			return PTR_ERR_OR_ZERO(pdev);
+		}
+	}
+
+	return -ENODEV;
+}
+module_init(rockchip_cpufreq_driver_init);
You need a module exit as well to remove the device. Otherwise following
sequence will give you errors:

insmod rockchip-cpufreq.ko
rmmod rockchip-cpufreq.ko
insmod rockchip-cpufreq.ko //Errors on this..

So, either don't allow it to be built as a module or fix the module-exit path.

-- 
viresh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help