• Andrzej Pietrasiewicz's avatar
    thermal: Use mode helpers in drivers · 7f4957be
    Andrzej Pietrasiewicz authored
    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: default avatarAndrzej Pietrasiewicz <andrzej.p@collabora.com>
    [for acerhdf]
    Acked-by: default avatarPeter Kaestle <peter@piie.net>
    Reviewed-by: default avatarAmit Kucheria <amit.kucheria@linaro.org>
    Reviewed-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
    Link: https://lore.kernel.org/r/20200629122925.21729-8-andrzej.p@collabora.com
    7f4957be
rockchip_thermal.c 38 KB