Thermal: Allow first update of cooling device state
authorNi Wade <wni@nvidia.com>
Mon, 17 Feb 2014 03:02:55 +0000 (11:02 +0800)
committerAlex Shi <alex.shi@linaro.org>
Thu, 25 Sep 2014 09:06:17 +0000 (17:06 +0800)
In initialization, if the cooling device is initialized at
max cooling state, and the thermal zone temperature is below
the first trip point, then the cooling state can't be updated
to the right state, untill the first trip point be triggered.

To fix this issue, allow first update of cooling device state
during registration, initialized "updated" device field as
"false" (instead of "true").

Signed-off-by: Wei Ni <wni@nvidia.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
(cherry picked from commit 5ca0cce5622bf476e3e6bf627fe8e9381d6ae174)
Signed-off-by: Alex Shi <alex.shi@linaro.org>
drivers/thermal/thermal_core.c

index 561d61d72137e7f7d2d22df59593bf82d7a20b2d..07d80cc0a91b87e7c4b7809f0a1820bfd9ecaa14 100644 (file)
@@ -1099,7 +1099,7 @@ __thermal_cooling_device_register(struct device_node *np,
        INIT_LIST_HEAD(&cdev->thermal_instances);
        cdev->np = np;
        cdev->ops = ops;
-       cdev->updated = true;
+       cdev->updated = false;
        cdev->device.class = &thermal_class;
        cdev->devdata = devdata;
        dev_set_name(&cdev->device, "cooling_device%d", cdev->id);