Hello, I have tested this patch to the device tree on my pinephone (1.2 edition) under Gentoo Linux (vanilla-sources-6.10.7) before the test, my dmesg contained: --- [ 0.156933] thermal_sys: Registered thermal governor 'fair_share' [ 0.156942] thermal_sys: Registered thermal governor 'bang_bang' [ 0.156960] thermal_sys: Registered thermal governor 'step_wise' [ 0.156976] thermal_sys: Registered thermal governor 'user_space' [ 0.156992] thermal_sys: Registered thermal governor 'power_allocator' [ 1.409536] thermal_sys: Failed to find 'trips' node [ 1.409555] thermal_sys: Failed to find trip points for thermal-sensor id=1 [ 1.409594] thermal_sys: Failed to find 'trips' node [ 1.409607] thermal_sys: Failed to find trip points for thermal-sensor id=2 ---- after applying the patch and booting with newer dtb, when i grep for the string 'thermal' in dmesg i only have: ---- [ 0.159456] thermal_sys: Registered thermal governor 'fair_share' [ 0.159465] thermal_sys: Registered thermal governor 'bang_bang' [ 0.159484] thermal_sys: Registered thermal governor 'step_wise' [ 0.159499] thermal_sys: Registered thermal governor 'user_space' [ 0.159515] thermal_sys: Registered thermal governor 'power_allocator' ---- Tested-by: Norayr Chilingarian <norayr@xxxxxxxx> On Tue, 20 Aug 2024 05:57:47 +0200 Dragan Simic <dsimic@xxxxxxxxxxx> wrote: > Add thermal trips for the two GPU thermal sensors found in the Allwinner A64. > There's only one GPU OPP defined since the commit 1428f0c19f9c ("arm64: dts: > allwinner: a64: Run GPU at 432 MHz"), so defining only the critical thermal > trips makes sense for the A64's two GPU thermal zones. > > Having these critical thermal trips defined ensures that no hot spots develop > inside the SoC die that exceed the maximum junction temperature. That might > have been possible before, although quite unlikely, because the CPU and GPU > portions of the SoC are packed closely inside the SoC, so the overheating GPU > would inevitably result in the heat soaking into the CPU portion of the SoC, > causing the CPU thermal sensor to return high readings and trigger the CPU > critical thermal trips. However, it's better not to rely on the heat soak > and have the critical GPU thermal trips properly defined instead. > > Signed-off-by: Dragan Simic <dsimic@xxxxxxxxxxx> > --- > > Notes: > Changes in v2: > - Added "a64:" at the end of the patch subject prefix and adjusted the > patch subject a bit, to match the usual prefix better > - Dropped the removal of potentially redundant comments that describe > the units, as suggested by Icenowy [1] and Chen-Yu [2] > > Link to v1: https://lore.kernel.org/linux-sunxi/a17e0df64c5b976b47f19c5a29c02759cd9e5b8c.1723427375.git.dsimic@xxxxxxxxxxx/T/#u > > [1] https://lore.kernel.org/linux-sunxi/24406e36f6facd93e798113303e22925b0a2dcc1.camel@xxxxxxxxxx/ > [2] https://lore.kernel.org/linux-sunxi/662f2332efb1d6c21e722066562a72b9@xxxxxxxxxxx/T/#mdd7b18962c1ae339141061af51b89cd68bc04d50 > > arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi > index e868ca5ae753..a5c3920e0f04 100644 > --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi > +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi > @@ -263,13 +263,29 @@ gpu0_thermal: gpu0-thermal { > polling-delay-passive = <0>; > polling-delay = <0>; > thermal-sensors = <&ths 1>; > + > + trips { > + gpu0_crit: gpu0-crit { > + temperature = <110000>; > + hysteresis = <2000>; > + type = "critical"; > + }; > + }; > }; > > gpu1_thermal: gpu1-thermal { > /* milliseconds */ > polling-delay-passive = <0>; > polling-delay = <0>; > thermal-sensors = <&ths 2>; > + > + trips { > + gpu1_crit: gpu1-crit { > + temperature = <110000>; > + hysteresis = <2000>; > + type = "critical"; > + }; > + }; > }; > }; >
Attachment:
pgptlL1AyGfNM.pgp
Description: PGP signature