Re: [PATCH 5/8] thermal:cpu cooling:tegra: Provide deferred probing for tegra driver

From: Mikko Perttunen
Date: Mon Nov 17 2014 - 08:24:24 EST


On 11/17/2014 03:08 PM, Thierry Reding wrote:
On Mon, Nov 17, 2014 at 02:51:24PM +0200, Mikko Perttunen wrote:
On 11/17/2014 01:43 PM, Thierry Reding wrote:
On Fri, Nov 14, 2014 at 12:47:33PM +0200, Mikko Perttunen wrote:
Tested-by: Mikko Perttunen <mikko.perttunen@xxxxxxxx>

One potential issue I can see is that if the cpufreq driver fails to probe
then you'll never get the thermal driver either. For example, Tegra124
currently has no cpufreq driver, so if CONFIG_CPU_THERMAL was enabled, then
the soctherm driver would never be able to probe. But I don't really have a
solution for this either.

It doesn't seem like there's any code whatsoever to deal with cpufreq
within the soctherm driver, so deferring probe based on something we're
not using anyway seems rather useless.

Thierry


My understanding is that there needs to be no code inside soctherm to handle
it, as the cpufreq driver (cpufreq-dt) will register a cooling device that
will then be bound to the soctherm sensors using the of-thermal device tree
properties. At this moment, however, we don't have that cpufreq driver so
this patch is still useless for Tegra.

But if the cpufreq driver will automatically do this already, why do we
even need to check for it in the soctherm driver?

Thierry


Indeed, we shouldn't. Unless I am mistaken, the issue is then that the cpufreq cooling device calls thermal_cooling_device_register before being ready to handle callbacks, which clearly would be an issue in the cpufreq driver.

The thermal core seems to able to handle registrations of thermal zones and cooling devices in any order; AFAICT it defers binding the tz<->cdev mapping until both have registered themselves to the thermal core.

Mikko

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/