thermal: imx: Use driver's local data to decide whether to run a measurement
authorAndrzej Pietrasiewicz <andrzej.p@collabora.com>
Fri, 3 Jul 2020 10:43:53 +0000 (12:43 +0200)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Mon, 6 Jul 2020 23:26:06 +0000 (01:26 +0200)
Use driver's local data to evaluate the need to run or not to run a
measurement.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20200703104354.19657-3-andrzej.p@collabora.com
drivers/thermal/imx_thermal.c

index 9700ae3..c0efa7b 100644 (file)
@@ -252,10 +252,11 @@ static int imx_get_temp(struct thermal_zone_device *tz, int *temp)
        const struct thermal_soc_data *soc_data = data->socdata;
        struct regmap *map = data->tempmon;
        unsigned int n_meas;
-       bool wait;
+       bool wait, run_measurement;
        u32 val;
 
-       if (thermal_zone_device_is_enabled(tz)) {
+       run_measurement = !data->irq_enabled;
+       if (!run_measurement) {
                /* Check if a measurement is currently in progress */
                regmap_read(map, soc_data->temp_data, &val);
                wait = !(val & soc_data->temp_valid_mask);
@@ -282,7 +283,7 @@ static int imx_get_temp(struct thermal_zone_device *tz, int *temp)
 
        regmap_read(map, soc_data->temp_data, &val);
 
-       if (!thermal_zone_device_is_enabled(tz)) {
+       if (run_measurement) {
                regmap_write(map, soc_data->sensor_ctrl + REG_CLR,
                             soc_data->measure_temp_mask);
                regmap_write(map, soc_data->sensor_ctrl + REG_SET,