OSDN Git Service

thermal: Use mode helpers in drivers
authorAndrzej Pietrasiewicz <andrzej.p@collabora.com>
Mon, 29 Jun 2020 12:29:21 +0000 (14:29 +0200)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Mon, 29 Jun 2020 18:26:36 +0000 (20:26 +0200)
commit7f4957be0d5b83c8964491863202136c916107ae
tree5d3f46b069347b04ff78eb0c073e994efbb20047
parentac5d9ecc74d8beee8c87f1441e4adaf4e9fe90c5
thermal: Use mode helpers in drivers

Use thermal_zone_device_{en|dis}able() and thermal_zone_device_is_enabled().

Consequently, all set_mode() implementations in drivers:

- can stop modifying tzd's "mode" member,
- shall stop taking tzd's lock, as it is taken in the helpers
- shall stop calling thermal_zone_device_update() as it is called in the
helpers
- can assume they are called when the mode truly changes, so checks to
verify that can be dropped

Not providing set_mode() by a driver no longer prevents the core from
being able to set tzd's mode, so the relevant check in mode_store() is
removed.

Other comments:

- acpi/thermal.c: tz->thermal_zone->mode will be updated only after we
return from set_mode(), so use function parameter in thermal_set_mode()
instead, no need to call acpi_thermal_check() in set_mode()
- thermal/imx_thermal.c: regmap writes and mode assignment are done in
thermal_zone_device_{en|dis}able() and set_mode() callback
- thermal/intel/intel_quark_dts_thermal.c: soc_dts_{en|dis}able() are a
part of set_mode() callback, so they don't need to modify tzd->mode, and
don't need to fall back to the opposite mode if unsuccessful, as the return
value will be propagated to thermal_zone_device_{en|dis}able() and
ultimately tzd's member will not be changed in thermal_zone_device_set_mode().
- thermal/of-thermal.c: no need to set zone->mode to DISABLED in
of_parse_thermal_zones() as a tzd is kzalloc'ed so mode is DISABLED anyway

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
[for acerhdf]
Acked-by: Peter Kaestle <peter@piie.net>
Reviewed-by: Amit Kucheria <amit.kucheria@linaro.org>
Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20200629122925.21729-8-andrzej.p@collabora.com
13 files changed:
drivers/acpi/thermal.c
drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
drivers/platform/x86/acerhdf.c
drivers/thermal/da9062-thermal.c
drivers/thermal/hisi_thermal.c
drivers/thermal/imx_thermal.c
drivers/thermal/intel/int340x_thermal/int3400_thermal.c
drivers/thermal/intel/intel_quark_dts_thermal.c
drivers/thermal/rockchip_thermal.c
drivers/thermal/sprd_thermal.c
drivers/thermal/thermal_core.c
drivers/thermal/thermal_of.c
drivers/thermal/thermal_sysfs.c