summaryrefslogtreecommitdiffstats
path: root/drivers/thermal/imx_thermal.c
diff options
context:
space:
mode:
authorAndrzej Pietrasiewicz <andrzej.p@collabora.com>2020-07-03 12:43:53 +0200
committerDaniel Lezcano <daniel.lezcano@linaro.org>2020-07-07 01:26:06 +0200
commitd92ed2c9d3ff65b4d8740135a0f348cc073f013e (patch)
tree679cbb12e041ef53ec825baf3e46d21044046f84 /drivers/thermal/imx_thermal.c
parentacpi: thermal: Don't call thermal_zone_device_is_enabled() (diff)
downloadlinux-d92ed2c9d3ff65b4d8740135a0f348cc073f013e.tar.xz
linux-d92ed2c9d3ff65b4d8740135a0f348cc073f013e.zip
thermal: imx: Use driver's local data to decide whether to run a measurement
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
Diffstat (limited to 'drivers/thermal/imx_thermal.c')
-rw-r--r--drivers/thermal/imx_thermal.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
index 9700ae39feb7..c0efa7bc48e2 100644
--- a/drivers/thermal/imx_thermal.c
+++ b/drivers/thermal/imx_thermal.c
@@ -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,