linux/drivers/thermal
Ahmad Fatoum 941a07cad2 thermal: core: allow user configuration of hardware protection action
In the general case, we don't know which of system shutdown or reboot is
the better action to take to protect hardware in an emergency situation. 
We thus allow the policy to come from the device-tree in the form of an
optional critical-action OF property, but so far there was no way for the
end user to configure this.

With recent addition of the hw_protection parameter, the user can now
choose a default action for the case, where the driver isn't fully sure
what's the better course of action.

Let's make use of this by passing HWPROT_ACT_DEFAULT in absence of the
critical-action OF property.

As HWPROT_ACT_DEFAULT is shutdown by default, this introduces no
functional change for users, unless they start using the new parameter.

Link: https://lkml.kernel.org/r/20250217-hw_protection-reboot-v3-11-e1c09b090c0c@pengutronix.de
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>
Cc: Benson Leung <bleung@chromium.org>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Fabio Estevam <festevam@denx.de>
Cc: Guenter Roeck <groeck@chromium.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Liam Girdwood <lgirdwood@gmail.com>
Cc: Lukasz Luba <lukasz.luba@arm.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Matteo Croce <teknoraver@meta.com>
Cc: Matti Vaittinen <mazziesaccount@gmail.com>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Rob Herring (Arm) <robh@kernel.org>
Cc: Rui Zhang <rui.zhang@intel.com>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-03-16 23:24:14 -07:00
..
broadcom thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
intel thermal: intel: Fix compile issue when CONFIG_NET is not defined 2024-12-19 12:35:46 +01:00
mediatek thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
qcom thermal: qcom-spmi-adc-tm5: Simplify with scoped for each OF child loop 2024-11-26 13:28:43 +01:00
renesas thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
samsung thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
st thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
tegra thermal: tegra: Simplify with scoped for each OF child loop 2024-11-26 13:28:43 +01:00
testing thermal: testing: Initialize some variables annoteded with _free() 2024-11-14 17:40:47 +01:00
ti-soc-thermal More thermal control updates for 6.13-rc1 2024-11-22 19:43:18 -08:00
amlogic_thermal.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
armada_thermal.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
cpufreq_cooling.c thermal/cpufreq_cooling: Remove structure member documentation 2025-02-11 21:02:13 +01:00
cpuidle_cooling.c thermal: cpuidle_cooling: fix kernel-doc warning and a spello 2023-12-21 12:05:48 +01:00
da9062-thermal.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
db8500_thermal.c thermal/drivers/db8500: Remove redundant of_match_ptr() 2023-08-16 12:09:19 +02:00
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 thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
gov_bang_bang.c thermal: core: Rename function argument related to trip crossing 2025-01-17 18:48:58 +01:00
gov_fair_share.c thermal: core: Introduce thermal_cdev_update_nocheck() 2024-10-23 11:57:11 +02:00
gov_power_allocator.c thermal: gov_power_allocator: Update total_weight on bind and cdev updates 2025-02-25 12:30:45 +01:00
gov_step_wise.c thermal: core: Add and use cooling device guard 2024-10-24 14:48:23 +02:00
gov_user_space.c thermal: core: Rename function argument related to trip crossing 2025-01-17 18:48:58 +01:00
hisi_thermal.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
imx_sc_thermal.c thermal/drivers/imx_sc_thermal: Use dev_err_probe 2024-09-04 15:31:29 +02:00
imx_thermal.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
imx8mm_thermal.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
k3_bandgap.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
k3_j72xx_bandgap.c thermal/drivers/k3_j72xx_bandgap: Simplify code in k3_bgp_read_temp() 2024-11-13 18:37:00 +01:00
Kconfig thermal: Add PCIe cooling driver 2024-11-16 10:09:30 -06:00
khadas_mcu_fan.c
kirkwood_thermal.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
loongson2_thermal.c thermal/drivers/loongson2: Add Loongson-2K2000 support 2024-04-23 12:40:30 +02:00
Makefile pci-v6.13-changes 2024-11-26 18:05:44 -08:00
max77620_thermal.c thermal/drivers/max77620: Remove duplicate error message 2023-10-15 23:40:10 +02:00
pcie_cooling.c thermal: Add PCIe cooling driver 2024-11-16 10:09:30 -06:00
qoriq_thermal.c thermal/drivers/qoriq: Remove __maybe_unused notations 2024-09-02 13:17:46 +02:00
rockchip_thermal.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
spear_thermal.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
sprd_thermal.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
sun8i_thermal.c thermal: sun8i: Use scoped device node handling to simplify error paths 2024-11-26 13:28:43 +01:00
thermal_core.c thermal: core: allow user configuration of hardware protection action 2025-03-16 23:24:14 -07:00
thermal_core.h thermal: core: allow user configuration of hardware protection action 2025-03-16 23:24:14 -07:00
thermal_debugfs.c thermal: core: Add and use cooling device guard 2024-10-24 14:48:23 +02:00
thermal_debugfs.h thermal/debugfs: Do not extend mitigation episodes beyond system resume 2024-06-11 21:04:00 +02:00
thermal_helpers.c thermal: core: Add and use cooling device guard 2024-10-24 14:48:23 +02:00
thermal_hwmon.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
thermal_hwmon.h thermal/hwmon: Use the right device for devm_thermal_add_hwmon_sysfs() 2023-03-03 20:45:02 +01:00
thermal_mmio.c thermal/core: Use the thermal zone 'devdata' accessor in thermal located drivers 2023-03-03 20:45:02 +01:00
thermal_netlink.c thermal: netlink: Add the commands and the events for the thresholds 2024-10-24 14:54:01 +02:00
thermal_netlink.h thermal: netlink: Add the commands and the events for the thresholds 2024-10-24 14:54:01 +02:00
thermal_of.c thermal: core: allow user configuration of hardware protection action 2025-03-16 23:24:14 -07:00
thermal_sysfs.c thermal: core: Add and use cooling device guard 2024-10-24 14:48:23 +02:00
thermal_thresholds.c thermal/thresholds: Fix boundaries and detection routine 2024-12-18 14:51:31 +01:00
thermal_thresholds.h thermal: netlink: Add the commands and the events for the thresholds 2024-10-24 14:54:01 +02:00
thermal_trace_ipa.h thermal: core: Make struct thermal_zone_device definition internal 2024-04-08 16:01:20 +02:00
thermal_trace.h tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
thermal_trip.c thermal: core: Relocate functions that update trip points 2024-10-24 17:15:07 +02:00
thermal-generic-adc.c thermal/drivers/generic-adc: Simplify with dev_err_probe() 2024-07-15 13:31:41 +02:00
uniphier_thermal.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00