linux-stable/drivers/thermal
Rafael J. Wysocki 278c0efbdb thermal: core: Change PM notifier priority to the minimum
commit 494c7d0550 upstream.

It is reported that commit 5a5efdaffd ("thermal: core: Resume thermal
zones asynchronously") causes battery data in sysfs on Thinkpad P1 Gen2
to become invalid after a resume from S3 (and it is necessary to reboot
the machine to restore correct battery data).  Some investigation into
the problem indicated that it happened because, after the commit in
question, the ACPI battery PM notifier ran in parallel with
thermal_zone_device_resume() for one of the thermal zones which
apparently confused the platform firmware on the affected system.

While the exact reason for the firmware confusion remains unclear, it
is arguably not particularly relevant, and the expected behavior of the
affected system can be restored by making the thermal PM notifier run
at the lowest priority which avoids interference between work items
spawned by it and the other PM notifiers (that will run before those
work items now).

Fixes: 5a5efdaffd ("thermal: core: Resume thermal zones asynchronously")
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218881
Reported-by: fhortner@yahoo.de
Tested-by: fhortner@yahoo.de
Cc: 6.8+ <stable@vger.kernel.org> # 6.8+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-06-27 13:52:31 +02:00
..
broadcom
intel thermal: int340x: processor_thermal: Support shared interrupts 2024-06-27 13:52:31 +02:00
mediatek thermal/drivers/mediatek/lvts_thermal: Return error in case of invalid efuse data 2024-06-27 13:52:24 +02:00
qcom thermal/drivers/qcom/lmh: Check for SCM availability at probe 2024-06-16 13:50:56 +02:00
samsung
st thermal: Drop spaces before TABs 2024-03-11 17:14:46 +01:00
tegra
ti-soc-thermal
amlogic_thermal.c
armada_thermal.c
cpufreq_cooling.c drivers/thermal/cpufreq_cooling: Use new Energy Model interface 2024-02-08 15:00:31 +01:00
cpuidle_cooling.c
da9062-thermal.c thermal: core: Eliminate writable trip points masks 2024-02-27 12:04:38 +01:00
db8500_thermal.c
devfreq_cooling.c thermal: devfreq_cooling: Fix perf state when calculate dfc res_util 2024-03-27 16:27:39 +01:00
dove_thermal.c
gov_bang_bang.c thermal: gov_bang_bang: Fix possible cooling device state ping-pong 2024-01-29 15:37:56 +01:00
gov_fair_share.c thermal: gov_fair_share: Fix dependency on trip points ordering 2024-01-29 15:37:56 +01:00
gov_power_allocator.c thermal: gov_power_allocator: Allow binding without trip points 2024-04-03 16:32:15 +02:00
gov_step_wise.c
gov_user_space.c
hisi_thermal.c
imx8mm_thermal.c
imx_sc_thermal.c
imx_thermal.c thermal: core: Eliminate writable trip points masks 2024-02-27 12:04:38 +01:00
k3_bandgap.c
k3_j72xx_bandgap.c
Kconfig thermal: Get rid of CONFIG_THERMAL_WRITABLE_TRIPS 2024-02-23 18:24:48 +01:00
khadas_mcu_fan.c
kirkwood_thermal.c
loongson2_thermal.c thermal: loongson2: Replace of_device.h with explicit includes 2024-01-19 08:08:53 -06:00
Makefile thermal: Drop spaces before TABs 2024-03-11 17:14:46 +01:00
max77620_thermal.c
qoriq_thermal.c thermal/drivers/qoriq: Fix getting tmu range 2024-03-11 17:14:46 +01:00
rcar_gen3_thermal.c thermal/drivers/rcar_gen3: Add support for R-Car V4M 2024-03-11 17:14:46 +01:00
rcar_thermal.c thermal: core: Eliminate writable trip points masks 2024-02-27 12:04:38 +01:00
rockchip_thermal.c
rzg2l_thermal.c
spear_thermal.c
sprd_thermal.c
sun8i_thermal.c thermal/drivers/sun8i: Don't fail probe due to zone registration failure 2024-03-11 17:14:46 +01:00
thermal-generic-adc.c
thermal_core.c thermal: core: Change PM notifier priority to the minimum 2024-06-27 13:52:31 +02:00
thermal_core.h thermal: core: Add flags to struct thermal_trip 2024-02-27 12:02:50 +01:00
thermal_debugfs.c thermal/debugfs: Pass cooling device state to thermal_debug_cdev_add() 2024-05-30 09:44:26 +02:00
thermal_debugfs.h thermal/debugfs: Pass cooling device state to thermal_debug_cdev_add() 2024-05-30 09:44:26 +02:00
thermal_helpers.c thermal: core: Store zone ops in struct thermal_zone_device 2024-02-23 18:24:48 +01:00
thermal_hwmon.c thermal: core: Store zone ops in struct thermal_zone_device 2024-02-23 18:24:48 +01:00
thermal_hwmon.h
thermal_mmio.c
thermal_netlink.c thermal: netlink: Rework notify API for cooling devices 2024-01-12 15:38:23 +01:00
thermal_netlink.h thermal: netlink: Rework notify API for cooling devices 2024-01-12 15:38:23 +01:00
thermal_of.c thermal/of: Assume polling-delay(-passive) 0 when absent 2024-03-11 17:14:46 +01:00
thermal_sysfs.c thermal: core: remove unnecessary check in trip_point_hyst_store() 2024-03-06 13:26:25 +01:00
thermal_trace.h
thermal_trace_ipa.h
thermal_trip.c Revert "thermal: core: Don't update trip points inside the hysteresis range" 2024-03-26 13:18:13 +01:00
uniphier_thermal.c