linux/drivers/thermal
Amit Kucheria afa1f2ab43 thermal: cpu_cooling: Require thermal core to be compiled in
The CPU cooling driver (cpu_cooling.c) allows the platform's cpufreq
driver to register as a cooling device and cool down the platform by
throttling the CPU frequency. In order to be able to auto-register a
cpufreq driver as a cooling device from the cpufreq core, we need access
to code inside cpu_cooling.c which, in turn, accesses code inside
thermal core.

CPU_FREQ is a bool while THERMAL is tristate.  In some configurations
(e.g. allmodconfig), CONFIG_THERMAL ends up as a module while
CONFIG_CPU_FREQ is compiled in. This leads to following error:

drivers/cpufreq/cpufreq.o: In function `cpufreq_offline':
cpufreq.c:(.text+0x407c): undefined reference to `cpufreq_cooling_unregister'
drivers/cpufreq/cpufreq.o: In function `cpufreq_online':
cpufreq.c:(.text+0x70c0): undefined reference to `of_cpufreq_cooling_register'

Given that platforms using CPU_THERMAL usually want it compiled-in so it
is available early in boot, make CPU_THERMAL depend on THERMAL being
compiled-in instead of allowing it to be a module.

As a result of this change, get rid of the ugly (!CPU_THERMAL ||
THERMAL) dependency in all cpufreq drivers using CPU_THERMAL.

Suggested-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2019-01-29 11:46:31 +01:00
..
broadcom Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal 2019-01-05 16:01:16 -08:00
intel Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux 2019-01-05 16:07:28 -08:00
qcom Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux 2019-01-05 16:07:28 -08:00
samsung thermal: samsung: Remove Exynos5440 clock handling left-overs 2018-07-27 16:21:40 -07:00
st Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux 2019-01-05 16:07:28 -08:00
tegra thermal: tegra: soctherm: Change to use DEFINE_SHOW_ATTRIBUTE macro 2019-01-02 04:47:14 -08:00
ti-soc-thermal thermal: ti-soc-thermal: remove dead code 2018-07-27 14:43:01 -07:00
armada_thermal.c Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal 2019-01-05 16:01:16 -08:00
clock_cooling.c thermal: convert clock cooling to use an IDA 2017-01-04 12:47:28 +08:00
cpu_cooling.c cpu_cooling: Drop static-power related stuff 2017-12-07 22:52:01 +01:00
da9062-thermal.c thermal: da9062/61: Prevent hardware access during system suspend 2018-10-25 10:44:55 -07:00
db8500_thermal.c thermal: db8500: Fix module autoload 2016-11-23 10:07:35 +08:00
devfreq_cooling.c trace: thermal: add another parameter 'power' to the tracing function 2017-05-05 15:54:45 +08:00
dove_thermal.c thermal: consistently use int for temperatures 2015-08-03 23:15:50 +08:00
fair_share.c thermal: fix source code documentation for parameters 2017-06-29 10:46:31 +08:00
gov_bang_bang.c thermal: bang-bang governor: act on lower trip boundary 2016-09-27 14:02:16 +08:00
hisi_thermal.c thermal/drivers/hisi: Fix number of sensors on hi3660 2018-12-10 20:13:09 -08:00
imx_thermal.c thermal: imx: save one condition block for normal case of nvmem initialization 2019-01-02 04:47:12 -08:00
Kconfig thermal: cpu_cooling: Require thermal core to be compiled in 2019-01-29 11:46:31 +01:00
kirkwood_thermal.c thermal: consistently use int for temperatures 2015-08-03 23:15:50 +08:00
Makefile drivers: thermal: Move QCOM_SPMI_TEMP_ALARM into the qcom subdir 2018-12-07 16:49:02 +08:00
max77620_thermal.c thermal: max77620: fix pinmux conflict on reprobe 2017-06-13 11:07:32 +02:00
mtk_thermal.c thermal: mediatek: use of_device_get_match_data() 2018-05-06 16:53:47 -07:00
of-thermal.c Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal 2018-10-26 12:04:29 -07:00
power_allocator.c thermal: power_allocator: fix one race condition issue for thermal_instances list 2017-12-27 10:13:20 +08:00
qoriq_thermal.c Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal 2018-10-26 12:04:29 -07:00
rcar_gen3_thermal.c Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal 2018-10-26 12:04:29 -07:00
rcar_thermal.c thermal: rcar_thermal: add R8A77990 support 2019-01-02 04:47:22 -08:00
rockchip_thermal.c thermal: rockchip_thermal: simplify getting .driver_data 2018-11-30 16:46:56 +08:00
spear_thermal.c thermal: spear_thermal: simplify getting .driver_data 2018-11-30 16:46:56 +08:00
step_wise.c thermal/drivers/step_wise: Fix temperature regulation misbehavior 2017-10-31 19:32:17 -07:00
tango_thermal.c thermal: tango: Fix module autoload 2016-11-23 10:07:35 +08:00
thermal_core.c Thermal: do not clear passive state during system sleep 2018-11-30 16:53:13 +08:00
thermal_core.h drivers: thermal: Update license to SPDX format 2018-05-30 14:46:17 +08:00
thermal_helpers.c drivers: thermal: Update license to SPDX format 2018-05-30 14:46:17 +08:00
thermal_hwmon.c thermal_hwmon: Pass the originating device down to hwmon_device_register_with_info 2018-07-27 14:43:21 -07:00
thermal_hwmon.h thermal: hwmon: inline helpers when CONFIG_THERMAL_HWMON is not set 2019-01-02 04:43:00 -08:00
thermal_sysfs.c thermal: Fix locking in cooling device sysfs update cur_state 2018-11-30 16:57:51 +08:00
thermal-generic-adc.c thermal: generic-adc: Fix adc to temp interpolation 2019-01-02 04:47:23 -08:00
uniphier_thermal.c thermal: uniphier: Convert to SPDX identifier 2019-01-02 04:47:16 -08:00
user_space.c thermal: fix source code documentation for parameters 2017-06-29 10:46:31 +08:00
zx2967_thermal.c thermal: zx2967_thermal: simplify getting .driver_data 2018-11-30 16:46:57 +08:00