From: Manaf Meethalavalappu Pallikunhi <quic_manafm@quicinc.com>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Wasim Nazir <quic_wasimn@quicinc.com>,
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: Wed, 8 Jan 2025 17:57:06 +0530 [thread overview]
Message-ID: <07c41571-28ca-6f9e-bcee-899bbf77f687@quicinc.com> (raw)
In-Reply-To: <ubasbsyspn5euygihgphyw3xg4ckveytvgnjpwdiyg4pv7degr@6y44ya4gvaqj>
Hi Dmitry,
On 1/3/2025 11:21 AM, Dmitry Baryshkov wrote:
> On Tue, Dec 31, 2024 at 05:31:41PM +0530, Manaf Meethalavalappu Pallikunhi wrote:
>> 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.
> "we don't want" is not a proper justification. So, no.
As noted in the commit, thermal cooling mitigation is only necessary for
non-safe SoCs. Adding this cooling cell property to the CPU node in the
base DT (sa8775p.dtsi), which is shared by both safe and non-safe SoCs,
would violate the requirements for safe SoCs. Therefore, we will include
it only in non-safe SoC boards.
Best Regards,
Manaf
>> 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
>>>>
next prev parent reply other threads:[~2025-01-08 12:27 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
2025-01-03 5:51 ` Dmitry Baryshkov
2025-01-08 12:27 ` Manaf Meethalavalappu Pallikunhi [this message]
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=07c41571-28ca-6f9e-bcee-899bbf77f687@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