On 16/11/2018 11:04, Viresh Kumar wrote: > Each CPU can (and does) participate in cooling down the system but the > DT only captures a handful of them, normally CPU0, in the cooling maps. > Things work by chance currently as under normal circumstances its the > first CPU of each cluster which is used by the operating systems to > probe the cooling devices. But as soon as this CPU ordering changes and > any other CPU is used to bring up the cooling device, we will start > seeing failures. > > Also the DT is rather incomplete when we list only one CPU in the > cooling maps, as the hardware doesn't have any such limitations. > > Update cooling maps to include all devices affected by individual trip > points. > > Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx> > --- > .../dts/amlogic/meson-gxm-khadas-vim2.dts | 22 ++++++++----------- > 1 file changed, 9 insertions(+), 13 deletions(-) > > diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts > index 313f88f8759e..cfc92d06a28f 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts > +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts > @@ -132,19 +132,15 @@ > > map1 { > trip = <&cpu_alert1>; > - cooling-device = <&gpio_fan 2 THERMAL_NO_LIMIT>; > - }; > - > - map2 { > - trip = <&cpu_alert1>; > - cooling-device = > - <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; > - }; > - > - map3 { > - trip = <&cpu_alert1>; > - cooling-device = > - <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; > + cooling-device = <&gpio_fan 2 THERMAL_NO_LIMIT>, > + <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > + <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > + <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > + <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > + <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > + <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > + <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > + <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; > }; > }; > }; > Acked-by: Neil Armstrong <narmstrong@xxxxxxxxxxxx>