lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <90c9133e-3a56-d6d6-abf0-9a3c269bc54a@baylibre.com>
Date:   Mon, 16 Mar 2020 09:20:38 +0100
From:   Neil Armstrong <narmstrong@...libre.com>
To:     Christian Hewitt <christianshewitt@...il.com>,
        Rob Herring <robh+dt@...nel.org>,
        Mark Rutland <mark.rutland@....com>,
        Kevin Hilman <khilman@...libre.com>,
        devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
        linux-amlogic@...ts.infradead.org, linux-kernel@...r.kernel.org
Cc:     Nick Xie <nick@...das.com>
Subject: Re: [PATCH] arm64: dts: meson: add thermal zones to meson gx devices

On 16/03/2020 04:20, Christian Hewitt wrote:
> Adapt and update current VIM2 thermal zones support so that zones are
> available on all meson GXBB/GXL/GXM devices - similar to changes made
> for G12A/G12B/SM1 devices.
> 
> Suggested-by: Nick Xie <nick@...das.com>
> Signed-off-by: Christian Hewitt <christianshewitt@...il.com>
> ---
>  arch/arm64/boot/dts/amlogic/meson-gx.dtsi          | 52 +++++++++++++
>  .../boot/dts/amlogic/meson-gxm-khadas-vim2.dts     | 87 ++++------------------
>  arch/arm64/boot/dts/amlogic/meson-gxm.dtsi         | 28 +++++++
>  3 files changed, 95 insertions(+), 72 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
> index 40db06e..03f79fe 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
> @@ -12,6 +12,7 @@
>  #include <dt-bindings/gpio/gpio.h>
>  #include <dt-bindings/interrupt-controller/irq.h>
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
> +#include <dt-bindings/thermal/thermal.h>
>  
>  / {
>  	interrupt-parent = <&gic>;
> @@ -83,6 +84,7 @@
>  			enable-method = "psci";
>  			next-level-cache = <&l2>;
>  			clocks = <&scpi_dvfs 0>;
> +			#cooling-cells = <2>;
>  		};
>  
>  		cpu1: cpu@1 {
> @@ -92,6 +94,7 @@
>  			enable-method = "psci";
>  			next-level-cache = <&l2>;
>  			clocks = <&scpi_dvfs 0>;
> +			#cooling-cells = <2>;
>  		};
>  
>  		cpu2: cpu@2 {
> @@ -101,6 +104,7 @@
>  			enable-method = "psci";
>  			next-level-cache = <&l2>;
>  			clocks = <&scpi_dvfs 0>;
> +			#cooling-cells = <2>;
>  		};
>  
>  		cpu3: cpu@3 {
> @@ -110,6 +114,7 @@
>  			enable-method = "psci";
>  			next-level-cache = <&l2>;
>  			clocks = <&scpi_dvfs 0>;
> +			#cooling-cells = <2>;
>  		};
>  
>  		l2: l2-cache0 {
> @@ -117,6 +122,53 @@
>  		};
>  	};
>  
> +	thermal-zones {
> +		cpu-thermal {
> +			polling-delay-passive = <250>; /* milliseconds */
> +			polling-delay = <1000>; /* milliseconds */
> +
> +			thermal-sensors = <&scpi_sensors 0>;
> +
> +			trips {
> +				cpu_passive: cpu-passive {
> +					temperature = <80000>; /* millicelsius */
> +					hysteresis = <2000>; /* millicelsius */
> +					type = "passive";
> +				};
> +
> +				cpu_hot: cpu-hot {
> +					temperature = <90000>; /* millicelsius */
> +					hysteresis = <2000>; /* millicelsius */
> +					type = "hot";
> +				};
> +
> +				cpu_critical: cpu-critical {
> +					temperature = <110000>; /* millicelsius */
> +					hysteresis = <2000>; /* millicelsius */
> +					type = "critical";
> +				};
> +			};
> +
> +			cpu_cooling_maps: cooling-maps {
> +				map0 {
> +					trip = <&cpu_passive>;
> +					cooling-device = <&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>;
> +				};
> +
> +				map1 {
> +					trip = <&cpu_hot>;
> +					cooling-device = <&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>;
> +				};
> +			};
> +		};
> +	};
> +
>  	arm-pmu {
>  		compatible = "arm,cortex-a53-pmu";
>  		interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
> 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 d5dc128..27eeab7 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
> +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
> @@ -8,7 +8,6 @@
>  /dts-v1/;
>  
>  #include <dt-bindings/input/input.h>
> -#include <dt-bindings/thermal/thermal.h>
>  
>  #include "meson-gxm.dtsi"
>  
> @@ -100,49 +99,6 @@
>  		clock-names = "ext_clock";
>  	};
>  
> -	thermal-zones {
> -		cpu-thermal {
> -			polling-delay-passive = <250>; /* milliseconds */
> -			polling-delay = <1000>; /* milliseconds */
> -
> -			thermal-sensors = <&scpi_sensors 0>;
> -
> -			trips {
> -				cpu_alert0: cpu-alert0 {
> -					temperature = <70000>; /* millicelsius */
> -					hysteresis = <2000>; /* millicelsius */
> -					type = "active";
> -				};
> -
> -				cpu_alert1: cpu-alert1 {
> -					temperature = <80000>; /* millicelsius */
> -					hysteresis = <2000>; /* millicelsius */
> -					type = "passive";
> -				};
> -			};
> -
> -			cooling-maps {
> -				map0 {
> -					trip = <&cpu_alert0>;
> -					cooling-device = <&gpio_fan THERMAL_NO_LIMIT 1>;
> -				};
> -
> -				map1 {
> -					trip = <&cpu_alert1>;
> -					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>;
> -				};
> -			};
> -		};
> -	};
> -
>  	hdmi_5v: regulator-hdmi-5v {
>  		compatible = "regulator-fixed";
>  
> @@ -198,36 +154,23 @@
>  	hdmi-phandle = <&hdmi_tx>;
>  };
>  
> -&cpu0 {
> -	#cooling-cells = <2>;
> -};
> -
> -&cpu1 {
> -	#cooling-cells = <2>;
> -};
> -
> -&cpu2 {
> -	#cooling-cells = <2>;
> -};
> -
> -&cpu3 {
> -	#cooling-cells = <2>;
> -};
> -
> -&cpu4 {
> -	#cooling-cells = <2>;
> -};
>  
> -&cpu5 {
> -	#cooling-cells = <2>;
> -};
> -
> -&cpu6 {
> -	#cooling-cells = <2>;
> -};
> +&cpu_cooling_maps {
> +	map0 {
> +		cooling-device = <&gpio_fan THERMAL_NO_LIMIT 1>;
> +	};
>  
> -&cpu7 {
> -	#cooling-cells = <2>;
> +	map1 {
> +		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>;
> +	};
>  };
>  
>  &ethmac {
> diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi
> index 5ff64a0..b6f89f1 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi
> +++ b/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi
> @@ -49,6 +49,7 @@
>  			enable-method = "psci";
>  			next-level-cache = <&l2>;
>  			clocks = <&scpi_dvfs 1>;
> +			#cooling-cells = <2>;
>  		};
>  
>  		cpu5: cpu@101 {
> @@ -58,6 +59,7 @@
>  			enable-method = "psci";
>  			next-level-cache = <&l2>;
>  			clocks = <&scpi_dvfs 1>;
> +			#cooling-cells = <2>;
>  		};
>  
>  		cpu6: cpu@102 {
> @@ -67,6 +69,7 @@
>  			enable-method = "psci";
>  			next-level-cache = <&l2>;
>  			clocks = <&scpi_dvfs 1>;
> +			#cooling-cells = <2>;
>  		};
>  
>  		cpu7: cpu@103 {
> @@ -76,6 +79,7 @@
>  			enable-method = "psci";
>  			next-level-cache = <&l2>;
>  			clocks = <&scpi_dvfs 1>;
> +			#cooling-cells = <2>;
>  		};
>  	};
>  };
> @@ -124,6 +128,30 @@
>  	compatible = "amlogic,meson-gxm-aoclkc", "amlogic,meson-gx-aoclkc";
>  };
>  
> +&cpu_cooling_maps {
> +	map0 {
> +		cooling-device = <&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>;
> +	};
> +
> +	map1 {
> +		cooling-device = <&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>;
> +	};
> +};
> +
>  &saradc {
>  	compatible = "amlogic,meson-gxm-saradc", "amlogic,meson-saradc";
>  };
> 

Reviewed-by: Neil Armstrong <narmstrong@...libre.com>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ