ARM: dts: exynos: Add all CPUs in cooling maps
authorViresh Kumar <viresh.kumar@linaro.org>
Fri, 16 Nov 2018 10:01:10 +0000 (15:31 +0530)
committerKrzysztof Kozlowski <krzk@kernel.org>
Sun, 18 Nov 2018 14:17:08 +0000 (15:17 +0100)
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@linaro.org>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
13 files changed:
arch/arm/boot/dts/exynos3250-artik5.dtsi
arch/arm/boot/dts/exynos3250-monk.dts
arch/arm/boot/dts/exynos3250-rinato.dts
arch/arm/boot/dts/exynos4210-trats.dts
arch/arm/boot/dts/exynos4210.dtsi
arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
arch/arm/boot/dts/exynos4412-midas.dtsi
arch/arm/boot/dts/exynos4412-odroid-common.dtsi
arch/arm/boot/dts/exynos4412-odroidu3.dts
arch/arm/boot/dts/exynos4412.dtsi
arch/arm/boot/dts/exynos5250.dtsi
arch/arm/boot/dts/exynos5422-odroidhc1.dts
arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi

index 7c22cbf6f3d41f1d2e1e82538f23899de60be426..ace50e194a455e93b89c8aa15349d0c182ccd762 100644 (file)
                        cooling-maps {
                                map0 {
                                        /* Corresponds to 500MHz */
-                                       cooling-device = <&cpu0 5 5>;
+                                       cooling-device = <&cpu0 5 5>,
+                                                        <&cpu1 5 5>;
                                };
                                map1 {
                                        /* Corresponds to 200MHz */
-                                       cooling-device = <&cpu0 8 8>;
+                                       cooling-device = <&cpu0 8 8>,
+                                                        <&cpu1 8 8>;
                                };
                        };
                };
index 6ffedf4ed9f2bd3a924960ef0f7a9ad9314e5f07..e25765500e99f0d520b64bfbae7785bb5b5ab563 100644 (file)
                        cooling-maps {
                                map0 {
                                        /* Correspond to 500MHz at freq_table */
-                                       cooling-device = <&cpu0 5 5>;
+                                       cooling-device = <&cpu0 5 5>,
+                                                        <&cpu1 5 5>;
                                };
                                map1 {
                                        /* Correspond to 200MHz at freq_table */
-                                       cooling-device = <&cpu0 8 8>;
+                                       cooling-device = <&cpu0 8 8>,
+                                                        <&cpu1 8 8>;
                                };
                        };
                };
index 2a6b828c01b7c7f2bad3599736bdb8bed92eaf60..7479993755dacbebfc4f9efc4a593e3a84b96ef2 100644 (file)
                        cooling-maps {
                                map0 {
                                        /* Corresponds to 500MHz */
-                                       cooling-device = <&cpu0 5 5>;
+                                       cooling-device = <&cpu0 5 5>,
+                                                        <&cpu1 5 5>;
                                };
                                map1 {
                                        /* Corresponds to 200MHz */
-                                       cooling-device = <&cpu0 8 8>;
+                                       cooling-device = <&cpu0 8 8>,
+                                                        <&cpu1 8 8>;
                                };
                        };
                };
index f9bbc6315cd956699a1691d909e0a48ae117c0fa..8dbc47d627a574d553348c20460d2a105f881855 100644 (file)
                        cooling-maps {
                                map0 {
                                     /* Corresponds to 800MHz at freq_table */
-                                    cooling-device = <&cpu0 2 2>;
+                                    cooling-device = <&cpu0 2 2>, <&cpu1 2 2>;
                                };
                                map1 {
                                     /* Corresponds to 200MHz at freq_table */
-                                    cooling-device = <&cpu0 4 4>;
+                                    cooling-device = <&cpu0 4 4>, <&cpu1 4 4>;
                               };
                       };
                };
index b6091c27f155dc3a65b5bdf83402fceb71812320..32ccb5fa14f1ff6f263990a2794c54fa61f40a33 100644 (file)
@@ -51,7 +51,7 @@
                        #cooling-cells = <2>; /* min followed by max */
                };
 
-               cpu@901 {
+               cpu1: cpu@901 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <0x901>;
index 8fdfd80c3accd5a04c8465a82ebd8b5b2a989fc1..0038465f38f19e217eb565d474f0bb87b0669a9b 100644 (file)
                        cooling-maps {
                                map0 {
                                     /* Corresponds to 800MHz at freq_table */
-                                    cooling-device = <&cpu0 7 7>;
+                                    cooling-device = <&cpu0 7 7>, <&cpu1 7 7>,
+                                                     <&cpu2 7 7>, <&cpu3 7 7>;
                                };
                                map1 {
                                     /* Corresponds to 200MHz at freq_table */
-                                    cooling-device = <&cpu0 13 13>;
+                                    cooling-device = <&cpu0 13 13>,
+                                                     <&cpu1 13 13>,
+                                                     <&cpu2 13 13>,
+                                                     <&cpu3 13 13>;
                               };
                       };
                };
index aed2f2e2b0d1ba9c56fa8784933f997f30ab4400..4c15cb616cdf214bc901877715e222873c755041 100644 (file)
                        cooling-maps {
                                map0 {
                                     /* Corresponds to 800MHz at freq_table */
-                                    cooling-device = <&cpu0 7 7>;
+                                    cooling-device = <&cpu0 7 7>, <&cpu1 7 7>,
+                                                     <&cpu2 7 7>, <&cpu3 7 7>;
                                };
                                map1 {
                                     /* Corresponds to 200MHz at freq_table */
-                                    cooling-device = <&cpu0 13 13>;
+                                    cooling-device = <&cpu0 13 13>,
+                                                     <&cpu1 13 13>,
+                                                     <&cpu2 13 13>,
+                                                     <&cpu3 13 13>;
                               };
                       };
                };
index 2caa3132f34e0644b7faaf6c589084c0b5ff7641..3a9eb1e91c45b0e320657487c2b4363eddfb8dd6 100644 (file)
                        cooling-maps {
                                cooling_map0: map0 {
                                     /* Corresponds to 800MHz at freq_table */
-                                    cooling-device = <&cpu0 7 7>;
+                                    cooling-device = <&cpu0 7 7>, <&cpu1 7 7>,
+                                                     <&cpu2 7 7>, <&cpu3 7 7>;
                                };
                                cooling_map1: map1 {
                                     /* Corresponds to 200MHz at freq_table */
-                                    cooling-device = <&cpu0 13 13>;
+                                    cooling-device = <&cpu0 13 13>,
+                                                     <&cpu1 13 13>,
+                                                     <&cpu2 13 13>,
+                                                     <&cpu3 13 13>;
                               };
                       };
                };
index 459919b65df814b2405db95043000607d39f86fa..2bdf899df436612a68346c32873d37b21ac4a4c4 100644 (file)
                        cooling-maps {
                                map0 {
                                     trip = <&cpu_alert1>;
-                                    cooling-device = <&cpu0 9 9>;
+                                    cooling-device = <&cpu0 9 9>, <&cpu1 9 9>,
+                                                     <&cpu2 9 9>, <&cpu3 9 9>,
+                                                     <&fan0 1 2>;
                                };
                                map1 {
                                     trip = <&cpu_alert2>;
-                                    cooling-device = <&cpu0 15 15>;
+                                    cooling-device = <&cpu0 15 15>,
+                                                     <&cpu1 15 15>,
+                                                     <&cpu2 15 15>,
+                                                     <&cpu3 15 15>,
+                                                     <&fan0 2 3>;
                                };
                                map2 {
                                     trip = <&cpu_alert0>;
                                     cooling-device = <&fan0 0 1>;
                                };
-                               map3 {
-                                    trip = <&cpu_alert1>;
-                                    cooling-device = <&fan0 1 2>;
-                               };
-                               map4 {
-                                    trip = <&cpu_alert2>;
-                                    cooling-device = <&fan0 2 3>;
-                               };
                        };
                };
        };
index 51f72f0327e5241c4403908d270f96771efa4e5e..cd04bb4aea5f84f5bc5314c2584dd848e194ccbe 100644 (file)
@@ -45,7 +45,7 @@
                        #cooling-cells = <2>; /* min followed by max */
                };
 
-               cpu@a01 {
+               cpu1: cpu@a01 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <0xA01>;
@@ -55,7 +55,7 @@
                        #cooling-cells = <2>; /* min followed by max */
                };
 
-               cpu@a02 {
+               cpu2: cpu@a02 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <0xA02>;
@@ -65,7 +65,7 @@
                        #cooling-cells = <2>; /* min followed by max */
                };
 
-               cpu@a03 {
+               cpu3: cpu@a03 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <0xA03>;
index 5044f754e6e59afc40fe70d141ce548f07b7ccd2..80986b97dfe5e18ee3ad3aae7c3fb619328fe681 100644 (file)
@@ -59,7 +59,7 @@
                        operating-points-v2 = <&cpu0_opp_table>;
                        #cooling-cells = <2>; /* min followed by max */
                };
-               cpu@1 {
+               cpu1: cpu@1 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a15";
                        reg = <1>;
                        cooling-maps {
                                map0 {
                                     /* Corresponds to 800MHz at freq_table */
-                                    cooling-device = <&cpu0 9 9>;
+                                    cooling-device = <&cpu0 9 9>, <&cpu1 9 9>;
                                };
                                map1 {
                                     /* Corresponds to 200MHz at freq_table */
-                                    cooling-device = <&cpu0 15 15>;
+                                    cooling-device = <&cpu0 15 15>,
+                                                     <&cpu1 15 15>;
                               };
                       };
                };
index 8f332be143f7b349dbe3cb76e1880002c3ea2f53..d271e75488262679ee748dea7eccd3c814847f03 100644 (file)
                                 */
                                map0 {
                                        trip = <&cpu0_alert0>;
-                                       cooling-device = <&cpu0 0 2>;
-                               };
-                               map1 {
-                                       trip = <&cpu0_alert0>;
-                                       cooling-device = <&cpu4 0 2>;
+                                       cooling-device = <&cpu0 0 2>,
+                                                        <&cpu1 0 2>,
+                                                        <&cpu2 0 2>,
+                                                        <&cpu3 0 2>,
+                                                        <&cpu4 0 2>,
+                                                        <&cpu5 0 2>,
+                                                        <&cpu6 0 2>,
+                                                        <&cpu7 0 2>;
                                };
                                /*
                                 * When reaching cpu0_alert1, reduce CPU
                                 * further, down to 600 MHz (12 steps for big,
                                 * 7 steps for LITTLE).
                                 */
-                               map2 {
-                                       trip = <&cpu0_alert1>;
-                                       cooling-device = <&cpu0 3 7>;
-                               };
-                               map3 {
+                               map1 {
                                        trip = <&cpu0_alert1>;
-                                       cooling-device = <&cpu4 3 12>;
+                                       cooling-device = <&cpu0 3 7>,
+                                                        <&cpu1 3 7>,
+                                                        <&cpu2 3 7>,
+                                                        <&cpu3 3 7>,
+                                                        <&cpu4 3 12>,
+                                                        <&cpu5 3 12>,
+                                                        <&cpu6 3 12>,
+                                                        <&cpu7 3 12>;
                                };
                        };
                };
                        cooling-maps {
                                map0 {
                                        trip = <&cpu1_alert0>;
-                                       cooling-device = <&cpu0 0 2>;
+                                       cooling-device = <&cpu0 0 2>,
+                                                        <&cpu1 0 2>,
+                                                        <&cpu2 0 2>,
+                                                        <&cpu3 0 2>,
+                                                        <&cpu4 0 2>,
+                                                        <&cpu5 0 2>,
+                                                        <&cpu6 0 2>,
+                                                        <&cpu7 0 2>;
                                };
                                map1 {
-                                       trip = <&cpu1_alert0>;
-                                       cooling-device = <&cpu4 0 2>;
-                               };
-                               map2 {
-                                       trip = <&cpu1_alert1>;
-                                       cooling-device = <&cpu0 3 7>;
-                               };
-                               map3 {
                                        trip = <&cpu1_alert1>;
-                                       cooling-device = <&cpu4 3 12>;
+                                       cooling-device = <&cpu0 3 7>,
+                                                        <&cpu1 3 7>,
+                                                        <&cpu2 3 7>,
+                                                        <&cpu3 3 7>,
+                                                        <&cpu4 3 12>,
+                                                        <&cpu5 3 12>,
+                                                        <&cpu6 3 12>,
+                                                        <&cpu7 3 12>;
                                };
                        };
                };
                        cooling-maps {
                                map0 {
                                        trip = <&cpu2_alert0>;
-                                       cooling-device = <&cpu0 0 2>;
+                                       cooling-device = <&cpu0 0 2>,
+                                                        <&cpu1 0 2>,
+                                                        <&cpu2 0 2>,
+                                                        <&cpu3 0 2>,
+                                                        <&cpu4 0 2>,
+                                                        <&cpu5 0 2>,
+                                                        <&cpu6 0 2>,
+                                                        <&cpu7 0 2>;
                                };
                                map1 {
-                                       trip = <&cpu2_alert0>;
-                                       cooling-device = <&cpu4 0 2>;
-                               };
-                               map2 {
-                                       trip = <&cpu2_alert1>;
-                                       cooling-device = <&cpu0 3 7>;
-                               };
-                               map3 {
                                        trip = <&cpu2_alert1>;
-                                       cooling-device = <&cpu4 3 12>;
+                                       cooling-device = <&cpu0 3 7>,
+                                                        <&cpu1 3 7>,
+                                                        <&cpu2 3 7>,
+                                                        <&cpu3 3 7>,
+                                                        <&cpu4 3 12>,
+                                                        <&cpu5 3 12>,
+                                                        <&cpu6 3 12>,
+                                                        <&cpu7 3 12>;
                                };
                        };
                };
                        cooling-maps {
                                map0 {
                                        trip = <&cpu3_alert0>;
-                                       cooling-device = <&cpu0 0 2>;
+                                       cooling-device = <&cpu0 0 2>,
+                                                        <&cpu1 0 2>,
+                                                        <&cpu2 0 2>,
+                                                        <&cpu3 0 2>,
+                                                        <&cpu4 0 2>,
+                                                        <&cpu5 0 2>,
+                                                        <&cpu6 0 2>,
+                                                        <&cpu7 0 2>;
                                };
                                map1 {
-                                       trip = <&cpu3_alert0>;
-                                       cooling-device = <&cpu4 0 2>;
-                               };
-                               map2 {
-                                       trip = <&cpu3_alert1>;
-                                       cooling-device = <&cpu0 3 7>;
-                               };
-                               map3 {
                                        trip = <&cpu3_alert1>;
-                                       cooling-device = <&cpu4 3 12>;
+                                       cooling-device = <&cpu0 3 7>,
+                                                        <&cpu1 3 7>,
+                                                        <&cpu2 3 7>,
+                                                        <&cpu3 3 7>,
+                                                        <&cpu4 3 12>,
+                                                        <&cpu5 3 12>,
+                                                        <&cpu6 3 12>,
+                                                        <&cpu7 3 12>;
                                };
                        };
                };
index e1b6a30b4ec7dc1c3287eafe47e84d158d731b70..b299e541cac079fc317e54f33c47ab4be13331eb 100644 (file)
                                 */
                                map3 {
                                        trip = <&cpu0_alert3>;
-                                       cooling-device = <&cpu0 0 2>;
-                               };
-                               map4 {
-                                       trip = <&cpu0_alert3>;
-                                       cooling-device = <&cpu4 0 2>;
+                                       cooling-device = <&cpu0 0 2>,
+                                                        <&cpu1 0 2>,
+                                                        <&cpu2 0 2>,
+                                                        <&cpu3 0 2>,
+                                                        <&cpu4 0 2>,
+                                                        <&cpu5 0 2>,
+                                                        <&cpu6 0 2>,
+                                                        <&cpu7 0 2>;
                                };
                                /*
                                 * When reaching cpu0_alert4, reduce CPU
                                 * further, down to 600 MHz (12 steps for big,
                                 * 7 steps for LITTLE).
                                 */
-                               map5 {
-                                       trip = <&cpu0_alert4>;
-                                       cooling-device = <&cpu0 3 7>;
-                               };
-                               map6 {
+                               map4 {
                                        trip = <&cpu0_alert4>;
-                                       cooling-device = <&cpu4 3 12>;
+                                       cooling-device = <&cpu0 3 7>,
+                                                        <&cpu1 3 7>,
+                                                        <&cpu2 3 7>,
+                                                        <&cpu3 3 7>,
+                                                        <&cpu4 3 12>,
+                                                        <&cpu5 3 12>,
+                                                        <&cpu6 3 12>,
+                                                        <&cpu7 3 12>;
                                };
                        };
                };
                                };
                                map3 {
                                        trip = <&cpu1_alert3>;
-                                       cooling-device = <&cpu0 0 2>;
+                                       cooling-device = <&cpu0 0 2>,
+                                                        <&cpu1 0 2>,
+                                                        <&cpu2 0 2>,
+                                                        <&cpu3 0 2>,
+                                                        <&cpu4 0 2>,
+                                                        <&cpu5 0 2>,
+                                                        <&cpu6 0 2>,
+                                                        <&cpu7 0 2>;
                                };
                                map4 {
-                                       trip = <&cpu1_alert3>;
-                                       cooling-device = <&cpu4 0 2>;
-                               };
-                               map5 {
-                                       trip = <&cpu1_alert4>;
-                                       cooling-device = <&cpu0 3 7>;
-                               };
-                               map6 {
                                        trip = <&cpu1_alert4>;
-                                       cooling-device = <&cpu4 3 12>;
+                                       cooling-device = <&cpu0 3 7>,
+                                                        <&cpu1 3 7>,
+                                                        <&cpu2 3 7>,
+                                                        <&cpu3 3 7>,
+                                                        <&cpu4 3 12>,
+                                                        <&cpu5 3 12>,
+                                                        <&cpu6 3 12>,
+                                                        <&cpu7 3 12>;
                                };
                        };
                };
                                };
                                map3 {
                                        trip = <&cpu2_alert3>;
-                                       cooling-device = <&cpu0 0 2>;
+                                       cooling-device = <&cpu0 0 2>,
+                                                        <&cpu1 0 2>,
+                                                        <&cpu2 0 2>,
+                                                        <&cpu3 0 2>,
+                                                        <&cpu4 0 2>,
+                                                        <&cpu5 0 2>,
+                                                        <&cpu6 0 2>,
+                                                        <&cpu7 0 2>;
                                };
                                map4 {
-                                       trip = <&cpu2_alert3>;
-                                       cooling-device = <&cpu4 0 2>;
-                               };
-                               map5 {
-                                       trip = <&cpu2_alert4>;
-                                       cooling-device = <&cpu0 3 7>;
-                               };
-                               map6 {
                                        trip = <&cpu2_alert4>;
-                                       cooling-device = <&cpu4 3 12>;
+                                       cooling-device = <&cpu0 3 7>,
+                                                        <&cpu1 3 7>,
+                                                        <&cpu2 3 7>,
+                                                        <&cpu3 3 7>,
+                                                        <&cpu4 3 12>,
+                                                        <&cpu5 3 12>,
+                                                        <&cpu6 3 12>,
+                                                        <&cpu7 3 12>;
                                };
                        };
                };
                                };
                                map3 {
                                        trip = <&cpu3_alert3>;
-                                       cooling-device = <&cpu0 0 2>;
+                                       cooling-device = <&cpu0 0 2>,
+                                                        <&cpu1 0 2>,
+                                                        <&cpu2 0 2>,
+                                                        <&cpu3 0 2>,
+                                                        <&cpu4 0 2>,
+                                                        <&cpu5 0 2>,
+                                                        <&cpu6 0 2>,
+                                                        <&cpu7 0 2>;
                                };
                                map4 {
-                                       trip = <&cpu3_alert3>;
-                                       cooling-device = <&cpu4 0 2>;
-                               };
-                               map5 {
-                                       trip = <&cpu3_alert4>;
-                                       cooling-device = <&cpu0 3 7>;
-                               };
-                               map6 {
                                        trip = <&cpu3_alert4>;
-                                       cooling-device = <&cpu4 3 12>;
+                                       cooling-device = <&cpu0 3 7>,
+                                                        <&cpu1 3 7>,
+                                                        <&cpu2 3 7>,
+                                                        <&cpu3 3 7>,
+                                                        <&cpu4 3 12>,
+                                                        <&cpu5 3 12>,
+                                                        <&cpu6 3 12>,
+                                                        <&cpu7 3 12>;
                                };
                        };
                };