devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Manaf Meethalavalappu Pallikunhi <quic_manafm@quicinc.com>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
	Wasim Nazir <quic_wasimn@quicinc.com>
Cc: Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konradybcio@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	<linux-arm-msm@vger.kernel.org>, <devicetree@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <kernel@quicinc.com>
Subject: Re: [PATCH v5 6/6] arm64: dts: qcom: Enable cpu cooling devices for QCS9075 platforms
Date: Tue, 31 Dec 2024 17:31:41 +0530	[thread overview]
Message-ID: <d54c6706-3c6b-211c-6acb-fa3984c30c67@quicinc.com> (raw)
In-Reply-To: <zn4uf3mmlmt3who474hwkr44poycfqtjtidshybbg55a3hr63y@zxefqbhiwkbg>


Hi Dmitry,

On 12/30/2024 9:10 PM, Dmitry Baryshkov wrote:
> On Sun, Dec 29, 2024 at 08:53:32PM +0530, Wasim Nazir wrote:
>> From: Manaf Meethalavalappu Pallikunhi <quic_manafm@quicinc.com>
>>
>> In QCS9100 SoC, the safety subsystem monitors all thermal sensors and
>> does corrective action for each subsystem based on sensor violation
>> to comply safety standards. But as QCS9075 is non-safe SoC it
>> requires conventional thermal mitigation to control thermal for
>> different subsystems.
>>
>> The cpu frequency throttling for different cpu tsens is enabled in
>> hardware as first defense for cpu thermal control. But QCS9075 SoC
>> has higher ambient specification. During high ambient condition, even
>> lowest frequency with multi cores can slowly build heat over the time
>> and it can lead to thermal run-away situations. This patch restrict
>> cpu cores during this scenario helps further thermal control and
>> avoids thermal critical violation.
>>
>> Add cpu idle injection cooling bindings for cpu tsens thermal zones
>> as a mitigation for cpu subsystem prior to thermal shutdown.
>>
>> Add cpu frequency cooling devices that will be used by userspace
>> thermal governor to mitigate skin thermal management.
> Does anything prevent us from having this config as a part of the basic
> sa8775p.dtsi setup? If HW is present in the base version but it is not
> accessible for whatever reason, please move it the base device config
> and use status "disabled" or "reserved" to the respective board files.

Sure,  I will move idle injection node for each cpu to sa8775p.dtsi and 
keep it disabled state. #cooling cells property for CPU, still wanted to 
keep it in board files as we don't want to enable any cooling device in 
base DT.

Best Regards,

Manaf

>
>> Signed-off-by: Manaf Meethalavalappu Pallikunhi <quic_manafm@quicinc.com>
>> ---
>>   arch/arm64/boot/dts/qcom/qcs9075-rb8.dts      |   1 +
>>   arch/arm64/boot/dts/qcom/qcs9075-ride-r3.dts  |   1 +
>>   arch/arm64/boot/dts/qcom/qcs9075-ride.dts     |   1 +
>>   arch/arm64/boot/dts/qcom/qcs9075-thermal.dtsi | 287 ++++++++++++++++++
>>   4 files changed, 290 insertions(+)
>>   create mode 100644 arch/arm64/boot/dts/qcom/qcs9075-thermal.dtsi
>>
>> diff --git a/arch/arm64/boot/dts/qcom/qcs9075-rb8.dts b/arch/arm64/boot/dts/qcom/qcs9075-rb8.dts
>> index ecaa383b6508..3ab6deeaacf1 100644
>> --- a/arch/arm64/boot/dts/qcom/qcs9075-rb8.dts
>> +++ b/arch/arm64/boot/dts/qcom/qcs9075-rb8.dts
>> @@ -9,6 +9,7 @@
>>
>>   #include "sa8775p.dtsi"
>>   #include "sa8775p-pmics.dtsi"
>> +#include "qcs9075-thermal.dtsi"
>>
>>   / {
>>   	model = "Qualcomm Technologies, Inc. Robotics RB8";
>> diff --git a/arch/arm64/boot/dts/qcom/qcs9075-ride-r3.dts b/arch/arm64/boot/dts/qcom/qcs9075-ride-r3.dts
>> index d9a8956d3a76..5f2d9f416617 100644
>> --- a/arch/arm64/boot/dts/qcom/qcs9075-ride-r3.dts
>> +++ b/arch/arm64/boot/dts/qcom/qcs9075-ride-r3.dts
>> @@ -5,6 +5,7 @@
>>   /dts-v1/;
>>
>>   #include "sa8775p-ride.dtsi"
>> +#include "qcs9075-thermal.dtsi"
>>
>>   / {
>>   	model = "Qualcomm Technologies, Inc. QCS9075 Ride Rev3";
>> diff --git a/arch/arm64/boot/dts/qcom/qcs9075-ride.dts b/arch/arm64/boot/dts/qcom/qcs9075-ride.dts
>> index 3b524359a72d..10ce48e7ba2f 100644
>> --- a/arch/arm64/boot/dts/qcom/qcs9075-ride.dts
>> +++ b/arch/arm64/boot/dts/qcom/qcs9075-ride.dts
>> @@ -5,6 +5,7 @@
>>   /dts-v1/;
>>
>>   #include "sa8775p-ride.dtsi"
>> +#include "qcs9075-thermal.dtsi"
>>
>>   / {
>>   	model = "Qualcomm Technologies, Inc. QCS9075 Ride";
>> diff --git a/arch/arm64/boot/dts/qcom/qcs9075-thermal.dtsi b/arch/arm64/boot/dts/qcom/qcs9075-thermal.dtsi
>> new file mode 100644
>> index 000000000000..40544c8582c4
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/qcom/qcs9075-thermal.dtsi
>> @@ -0,0 +1,287 @@
>> +// SPDX-License-Identifier: BSD-3-Clause
>> +/*
>> + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
>> + */
>> +
>> +#include <dt-bindings/thermal/thermal.h>
>> +
>> +&cpu0 {
>> +	#cooling-cells = <2>;
>> +};
>> +
>> +&cpu1 {
>> +	#cooling-cells = <2>;
>> +	cpu1_idle: thermal-idle {
>> +		#cooling-cells = <2>;
>> +		duration-us = <800000>;
>> +		exit-latency-us = <10000>;
>> +	};
>> +};
>> +
>> +&cpu2 {
>> +	#cooling-cells = <2>;
>> +	cpu2_idle: thermal-idle {
>> +		#cooling-cells = <2>;
>> +		duration-us = <800000>;
>> +		exit-latency-us = <10000>;
>> +	};
>> +};
>> +
>> +&cpu3 {
>> +	#cooling-cells = <2>;
>> +	cpu3_idle: thermal-idle {
>> +		#cooling-cells = <2>;
>> +		duration-us = <800000>;
>> +		exit-latency-us = <10000>;
>> +	};
>> +};
>> +
>> +&cpu4 {
>> +	#cooling-cells = <2>;
>> +	cpu4_idle: thermal-idle {
>> +		#cooling-cells = <2>;
>> +		duration-us = <800000>;
>> +		exit-latency-us = <10000>;
>> +	};
>> +};
>> +
>> +&cpu5 {
>> +	#cooling-cells = <2>;
>> +	cpu5_idle: thermal-idle {
>> +		#cooling-cells = <2>;
>> +		duration-us = <800000>;
>> +		exit-latency-us = <10000>;
>> +	};
>> +};
>> +
>> +&cpu6 {
>> +	#cooling-cells = <2>;
>> +	cpu6_idle: thermal-idle {
>> +		#cooling-cells = <2>;
>> +		duration-us = <800000>;
>> +		exit-latency-us = <10000>;
>> +	};
>> +};
>> +
>> +&cpu7 {
>> +	#cooling-cells = <2>;
>> +	cpu7_idle: thermal-idle {
>> +		#cooling-cells = <2>;
>> +		duration-us = <800000>;
>> +		exit-latency-us = <10000>;
>> +	};
>> +};
>> +
>> +/ {
>> +	thermal-zones {
>> +		cpu-0-1-0-thermal {
>> +			trips {
>> +				cpu_0_1_0_passive: trip-point1 {
>> +					temperature = <116000>;
>> +				};
>> +			};
>> +
>> +			cooling-maps {
>> +				map0 {
>> +					trip = <&cpu_0_1_0_passive>;
>> +					cooling-device = <&cpu1_idle 100 100>;
>> +				};
>> +			};
>> +		};
>> +
>> +		cpu-0-2-0-thermal {
>> +			trips {
>> +				cpu_0_2_0_passive: trip-point1 {
>> +					temperature = <116000>;
>> +				};
>> +			};
>> +
>> +			cooling-maps {
>> +				map0 {
>> +					trip = <&cpu_0_2_0_passive>;
>> +					cooling-device = <&cpu2_idle 100 100>;
>> +				};
>> +			};
>> +		};
>> +
>> +		cpu-0-3-0-thermal {
>> +			trips {
>> +				cpu_0_3_0_passive: trip-point1 {
>> +					temperature = <116000>;
>> +				};
>> +			};
>> +
>> +			cooling-maps {
>> +				map0 {
>> +					trip = <&cpu_0_3_0_passive>;
>> +					cooling-device = <&cpu3_idle 100 100>;
>> +				};
>> +			};
>> +		};
>> +
>> +		cpu-0-1-1-thermal {
>> +			trips {
>> +				cpu_0_1_1_passive: trip-point1 {
>> +					temperature = <116000>;
>> +				};
>> +			};
>> +
>> +			cooling-maps {
>> +				map0 {
>> +					trip = <&cpu_0_1_1_passive>;
>> +					cooling-device = <&cpu1_idle 100 100>;
>> +				};
>> +			};
>> +		};
>> +
>> +		cpu-0-2-1-thermal {
>> +			trips {
>> +				cpu_0_2_1_passive: trip-point1 {
>> +					temperature = <116000>;
>> +				};
>> +			};
>> +
>> +			cooling-maps {
>> +				map0 {
>> +					trip = <&cpu_0_2_1_passive>;
>> +					cooling-device = <&cpu2_idle 100 100>;
>> +				};
>> +			};
>> +		};
>> +
>> +		cpu-0-3-1-thermal {
>> +			trips {
>> +				cpu_0_3_1_passive: trip-point1 {
>> +					temperature = <116000>;
>> +				};
>> +			};
>> +
>> +			cooling-maps {
>> +				map0 {
>> +					trip = <&cpu_0_3_1_passive>;
>> +					cooling-device = <&cpu3_idle 100 100>;
>> +				};
>> +			};
>> +		};
>> +
>> +		cpu-1-0-0-thermal {
>> +			trips {
>> +				cpu_1_0_0_passive: trip-point1 {
>> +					temperature = <116000>;
>> +				};
>> +			};
>> +
>> +			cooling-maps {
>> +				map0 {
>> +					trip = <&cpu_1_0_0_passive>;
>> +					cooling-device = <&cpu4_idle 100 100>;
>> +				};
>> +			};
>> +		};
>> +
>> +		cpu-1-1-0-thermal {
>> +			trips {
>> +				cpu_1_1_0_passive: trip-point1 {
>> +					temperature = <116000>;
>> +				};
>> +			};
>> +
>> +			cooling-maps {
>> +				map0 {
>> +					trip = <&cpu_1_1_0_passive>;
>> +					cooling-device = <&cpu5_idle 100 100>;
>> +				};
>> +			};
>> +		};
>> +
>> +		cpu-1-2-0-thermal {
>> +			trips {
>> +				cpu_1_2_0_passive: trip-point1 {
>> +					temperature = <116000>;
>> +				};
>> +			};
>> +
>> +			cooling-maps {
>> +				map0 {
>> +					trip = <&cpu_1_2_0_passive>;
>> +					cooling-device = <&cpu6_idle 100 100>;
>> +				};
>> +			};
>> +		};
>> +
>> +		cpu-1-3-0-thermal {
>> +			trips {
>> +				cpu_1_3_0_passive: trip-point1 {
>> +					temperature = <116000>;
>> +				};
>> +			};
>> +
>> +			cooling-maps {
>> +				map0 {
>> +					trip = <&cpu_1_3_0_passive>;
>> +					cooling-device = <&cpu7_idle 100 100>;
>> +				};
>> +			};
>> +		};
>> +
>> +		cpu-1-0-1-thermal {
>> +			trips {
>> +				cpu_1_0_1_passive: trip-point1 {
>> +					temperature = <116000>;
>> +				};
>> +			};
>> +
>> +			cooling-maps {
>> +				map0 {
>> +					trip = <&cpu_1_0_1_passive>;
>> +					cooling-device = <&cpu4_idle 100 100>;
>> +				};
>> +			};
>> +		};
>> +
>> +		cpu-1-1-1-thermal {
>> +			trips {
>> +				cpu_1_1_1_passive: trip-point1 {
>> +					temperature = <116000>;
>> +				};
>> +			};
>> +
>> +			cooling-maps {
>> +				map0 {
>> +					trip = <&cpu_1_1_1_passive>;
>> +					cooling-device = <&cpu5_idle 100 100>;
>> +				};
>> +			};
>> +		};
>> +
>> +		cpu-1-2-1-thermal {
>> +			trips {
>> +				cpu_1_2_1_passive: trip-point1 {
>> +					temperature = <116000>;
>> +				};
>> +			};
>> +
>> +			cooling-maps {
>> +				map0 {
>> +					trip = <&cpu_1_2_1_passive>;
>> +					cooling-device = <&cpu6_idle 100 100>;
>> +				};
>> +			};
>> +		};
>> +
>> +		cpu-1-3-1-thermal {
>> +			trips {
>> +				cpu_1_3_1_passive: trip-point1 {
>> +					temperature = <116000>;
>> +				};
>> +			};
>> +
>> +			cooling-maps {
>> +				map0 {
>> +					trip = <&cpu_1_3_1_passive>;
>> +					cooling-device = <&cpu7_idle 100 100>;
>> +				};
>> +			};
>> +		};
>> +	};
>> +};
>> --
>> 2.47.0
>>

  reply	other threads:[~2024-12-31 12:01 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-29 15:23 [PATCH v5 0/6] arm64: qcom: Add support for QCS9075 boards Wasim Nazir
2024-12-29 15:23 ` [PATCH v5 1/6] dt-bindings: arm: qcom,ids: add SoC ID for QCS9075 Wasim Nazir
2024-12-29 15:23 ` [PATCH v5 2/6] soc: qcom: socinfo: add QCS9075 SoC ID Wasim Nazir
2024-12-29 15:23 ` [PATCH v5 3/6] dt-bindings: arm: qcom: Document rb8/ride/ride-r3 on QCS9075 Wasim Nazir
2024-12-29 15:23 ` [PATCH v5 4/6] arm64: dts: qcom: Add support for QCS9075 RB8 Wasim Nazir
2025-05-06 12:08   ` Dmitry Baryshkov
2025-05-06 12:29     ` Wasim Nazir
2025-05-06 12:30       ` Dmitry Baryshkov
2025-05-06 13:14         ` Wasim Nazir
2025-05-09 22:56           ` Konrad Dybcio
2024-12-29 15:23 ` [PATCH v5 5/6] arm64: dts: qcom: Add support for QCS9075 Ride & Ride-r3 Wasim Nazir
2024-12-30 15:32   ` Konrad Dybcio
2024-12-31  5:10     ` Andrew Lunn
2025-01-02  9:13       ` Wasim Nazir
2024-12-30 15:45   ` Dmitry Baryshkov
2025-01-02  9:07     ` Wasim Nazir
2025-01-03  5:50       ` Dmitry Baryshkov
2025-01-03  7:07         ` Wasim Nazir
2025-01-03 10:31           ` Dmitry Baryshkov
2025-01-03 18:59             ` Wasim Nazir
2025-01-03 19:58               ` Dmitry Baryshkov
2025-01-08 14:09                 ` Krzysztof Kozlowski
2025-01-09 14:47                   ` Wasim Nazir
2025-01-09 15:03                     ` Wasim Nazir
2025-01-09 16:16                     ` Krzysztof Kozlowski
2025-01-15  5:48                       ` Wasim Nazir
2025-01-15  8:35                         ` Krzysztof Kozlowski
2025-02-27  7:37                           ` Wasim Nazir
2025-03-03  7:46                             ` Krzysztof Kozlowski
2025-03-06  8:17                               ` Wasim Nazir
2025-03-06  8:25                                 ` Wasim Nazir
2025-03-11  8:02                                   ` Krzysztof Kozlowski
2025-03-20 11:45                                     ` Wasim Nazir
2025-03-29  4:48                                       ` Krzysztof Kozlowski
2025-04-02  6:48                                         ` Wasim Nazir
2025-03-11  7:59                                 ` Krzysztof Kozlowski
2025-01-09 13:52                 ` Wasim Nazir
2025-01-06 23:59   ` Bjorn Andersson
2025-01-09 13:36     ` Wasim Nazir
2024-12-29 15:23 ` [PATCH v5 6/6] arm64: dts: qcom: Enable cpu cooling devices for QCS9075 platforms Wasim Nazir
2024-12-30  6:02   ` Aiqun(Maria) Yu
2024-12-30 15:35   ` Konrad Dybcio
2024-12-31 11:05     ` Manaf Meethalavalappu Pallikunhi
2024-12-31 16:21       ` Konrad Dybcio
2025-01-08 12:10         ` Manaf Meethalavalappu Pallikunhi
2024-12-30 15:40   ` Dmitry Baryshkov
2024-12-31 12:01     ` Manaf Meethalavalappu Pallikunhi [this message]
2025-01-03  5:51       ` Dmitry Baryshkov
2025-01-08 12:27         ` Manaf Meethalavalappu Pallikunhi
2025-01-08 12:46           ` Dmitry Baryshkov
2025-01-08 16:08             ` Manaf Meethalavalappu Pallikunhi
2025-01-09 14:30               ` Konrad Dybcio
2025-01-09 23:54               ` Dmitry Baryshkov
2025-01-10 12:31                 ` Konrad Dybcio
2025-01-13  8:43                   ` Dmitry Baryshkov
2025-01-14 19:16                 ` Manaf Meethalavalappu Pallikunhi
2025-01-15  8:54                   ` Dmitry Baryshkov
2024-12-30 18:17 ` [PATCH v5 0/6] arm64: qcom: Add support for QCS9075 boards Rob Herring (Arm)
2025-01-07 16:38 ` (subset) " Bjorn Andersson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d54c6706-3c6b-211c-6acb-fa3984c30c67@quicinc.com \
    --to=quic_manafm@quicinc.com \
    --cc=andersson@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=kernel@quicinc.com \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=quic_wasimn@quicinc.com \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).