• Amit Kucheria's avatar
    thermal: cpu_cooling: Require thermal core to be compiled in · afa1f2ab
    Amit Kucheria authored
    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: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: default avatarAmit Kucheria <amit.kucheria@linaro.org>
    Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    afa1f2ab
Kconfig 9.8 KB