thermal: cpu cooling: allow module builds
authorEduardo Valentin <eduardo.valentin@ti.com>
Wed, 14 Nov 2012 15:23:30 +0000 (15:23 +0000)
committerZhang Rui <rui.zhang@intel.com>
Thu, 22 Nov 2012 07:59:52 +0000 (15:59 +0800)
As thermal drivers can be built as modules and also
the thermal framework itself, building cpu cooling
only as built-in can cause linking errors. For instance:
* Generic Thermal sysfs driver
*
Generic Thermal sysfs driver (THERMAL) [M/n/y/?] m
  generic cpu cooling support (CPU_THERMAL) [N/y/?] (NEW) y

with the following drive:
CONFIG_OMAP_BANDGAP=m

generates:
ERROR: "cpufreq_cooling_unregister" [drivers/staging/omap-thermal/omap-thermal.ko] undefined!
ERROR: "cpufreq_cooling_register" [drivers/staging/omap-thermal/omap-thermal.ko] undefined!

This patch changes cpu cooling driver to allow it
to be built as module.

Reported-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
Reviewed-by: Durgadoss R <durgadoss.r@intel.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
drivers/thermal/Kconfig
include/linux/cpu_cooling.h

index d96da075c9f62bb0a44d35034316184e4180e798..8636fae1f7ecfa88909b5b4aa7eb39b71722933f 100644 (file)
@@ -67,7 +67,7 @@ config USER_SPACE
          Enable this to let the user space manage the platform thermals.
 
 config CPU_THERMAL
-       bool "generic cpu cooling support"
+       tristate "generic cpu cooling support"
        depends on CPU_FREQ
        select CPU_FREQ_TABLE
        help
index b30cc79c7a8294f0ce687a5508e104905c37c593..40b4ef54cc7d50661553545724951e4e47b4c4e8 100644 (file)
@@ -29,7 +29,7 @@
 #define CPUFREQ_COOLING_START          0
 #define CPUFREQ_COOLING_STOP           1
 
-#ifdef CONFIG_CPU_THERMAL
+#if defined(CONFIG_CPU_THERMAL) || defined(CONFIG_CPU_THERMAL_MODULE)
 /**
  * cpufreq_cooling_register - function to create cpufreq cooling device.
  * @clip_cpus: cpumask of cpus where the frequency constraints will happen