thermal/drivers/imx: Implement runtime PM support
authorOleksij Rempel <o.rempel@pengutronix.de>
Wed, 17 Nov 2021 10:34:26 +0000 (11:34 +0100)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Tue, 30 Nov 2021 14:42:28 +0000 (15:42 +0100)
commit4cf2ddf16e175ee18c5c29865c32da7d6269cf44
tree64bbe36591ef6a6c3fe27b0cca3fcab88b2ea916
parentfa55b7dcdc43c1aa1ba12bca9d2dd4318c2a0dbf
thermal/drivers/imx: Implement runtime PM support

Starting with commit d92ed2c9d3ff ("thermal: imx: Use driver's local
data to decide whether to run a measurement") this driver stared using
irq_enabled flag to make decision to power on/off the thermal
core. This triggered a regression, where after reaching critical
temperature, alarm IRQ handler set irq_enabled to false, disabled
thermal core and was not able read temperature and disable cooling
sequence.

In case the cooling device is "CPU/GPU freq", the system will run with
reduce performance until next reboot.

To solve this issue, we need to move all parts implementing hand made
runtime power management and let it handle actual runtime PM framework.

Fixes: d92ed2c9d3ff ("thermal: imx: Use driver's local data to decide whether to run a measurement")
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Tested-by: Petr Beneš <petr.benes@ysoft.com>
Link: https://lore.kernel.org/r/20211117103426.81813-1-o.rempel@pengutronix.de
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
drivers/thermal/imx_thermal.c