From nobody Wed Feb 11 04:19:54 2026 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D22111FA8CF for ; Fri, 3 Jan 2025 14:38:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735915118; cv=none; b=KAAhZIvwNlRD3/HvEYvmNXGP4aESVrXXI4Z1h3jW5zvovEhy/r02XzLzfxBgXn0GqspzIJE85yW1IZ0vPJKQoWea0td2ARctgnu08Rciby0w3rN2a8FOn51vI6LaiIL1/uwjXal5NRXosA06AxgtFPDCiQ5uzaI7/7ZKuYOqGwo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735915118; c=relaxed/simple; bh=6MYAyJNiKjIJRjZP+kRmtZAtfqVcLkXfnhiloyCSICI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=G42sm+jHebeIoCw4s8qhQo4jzxLG+HRQ7YB9zi7SlM4/hLWL6JR09810x/O44M3pmRvtDKf4hZ10fnatM8sO/UWlQNcLD9i3qV/Q63dL/gXJNPoVQ8ylneb2JVssxshbYRgQP0CFcZ2epMMrxeH0PU8Lndkhxt5TZjN7qUqWVAw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=Ymf5idym; arc=none smtp.client-ip=209.85.221.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Ymf5idym" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-38634c35129so9364286f8f.3 for ; Fri, 03 Jan 2025 06:38:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1735915113; x=1736519913; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=KvFk6EK6W/VRxWdLvZU9XD5Dh65CwZ2VlJ4c/jgx6xY=; b=Ymf5idymuzicDiW02UuBaZWIAbDvibb78DPoW3ylp439HCoftLbQTRSToEYBbmIhDm 6DX9fcTpM3jo71U6EEcxYSe4RSFaTIOtrXgJ+XRUMpOFC2Kb30yj9+myHJ+WH5OxSv8Q qiks/2pfGFsaRzYK2MaB0Ji4b5fM1B2sjDJDkvl/TcOOmiLky8uZGcI0M2jspEr+jKn/ js4+qlCk4IoBIY3kZNcuagay3KH0UOwGYsF50n7Cs+006GQBtT4ljkJpeo9HPopDGMr+ RohbxMJ7LGzoQVOrEsBNI7+OBCzwq/x+8eA9Vvgx+Hv4UnkILqCclRDXm8yWbAIIWkRL CZPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735915113; x=1736519913; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KvFk6EK6W/VRxWdLvZU9XD5Dh65CwZ2VlJ4c/jgx6xY=; b=GaS2NlIPvWnQNrDaS/bulS+bB+GLlFFnfD0eJUWhI/DkZk+FRZLFkQAFbiNNvLKz+D fx5yqvQKl6ExeIG3daPBUQ6xP5NHnB7vJKWNDalc8DH8trTgPtIs1qwseaOR/STSGDR+ r8bbN6tBhr8n2p09hHJJ7eojBTUFER3Xq3a4Y6JFx5W2iF86CORJHBsnXEBu+QMK0WOW DvQYs5VfxJNTWN7amN32maCc6u7C4zLP6cTfY/0uPVuxS/3k0y398p2T8RRKCM8qYeNb IRuZ47f6DMRUuoh6QPKgGBXxWKZrSoBPyk2QceNwHjW9SZ/RJFPo4ke+9KpMUkb+J1nn 4QxQ== X-Forwarded-Encrypted: i=1; AJvYcCUvUw3RetCyttOm41TkEReTurxs9FFmLXAjgSnhgWAQNAEWU7FesDB0E48biE948HL6af17LQg0RWHtZSo=@vger.kernel.org X-Gm-Message-State: AOJu0YxDJ9u+8JPR3U4J5Uxlpe466R9VPCsJGuLSjdYfHyD88LPFW97/ bvR2QhTXhK8Cl5TrNxgXtTRqlUHEp3mx/st5mWZXnF7yAC7Q67MkcOWy996dTYM= X-Gm-Gg: ASbGncvappdCaQQxVrodRQkAuX3E2AZzdwSdt2zJ63JzYUC6fwsmwSD/z6VLxijjgfh jq/w5hRc0PC/hVx1Nb4FHl6apkYD1KHbKUb80771aJEJ7XLMKCU+orZxIhZa6K8S6P/3VSE6Uxq UvtQuz6k97VXj0UOSL/oCdsPD1lDxlo4gCrToctfIfF4Ef7CeRRqgbS5NjHSdqRX9ZlV0Padtl4 7KsMBVcJZY/xdUEq4ReQSpzf3pp629RQY/V/DrC8OZP8C4QsUHFbHRH6zUQCSvS93tra5C6CIan +Q== X-Google-Smtp-Source: AGHT+IEXFOZ+0uZp/4l43sA+IegSsxHw2PJ6o4TvVY4/FxpHANnNWTFPHdMmzUntC1G9T6ixXRt4qw== X-Received: by 2002:a05:6000:186b:b0:386:3835:9fec with SMTP id ffacd0b85a97d-38a223f76aemr49024142f8f.44.1735915113174; Fri, 03 Jan 2025 06:38:33 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:8261:5fff:fe11:bdda]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38a1c846ca4sm41558404f8f.43.2025.01.03.06.38.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Jan 2025 06:38:32 -0800 (PST) From: Neil Armstrong Date: Fri, 03 Jan 2025 15:38:27 +0100 Subject: [PATCH 2/2] arm64: dts: qcom: sm8650: setup gpu thermal with higher temperatures Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250103-topic-sm8650-thermal-cpu-idle-v1-2-faa1f011ecd9@linaro.org> References: <20250103-topic-sm8650-thermal-cpu-idle-v1-0-faa1f011ecd9@linaro.org> In-Reply-To: <20250103-topic-sm8650-thermal-cpu-idle-v1-0-faa1f011ecd9@linaro.org> To: Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5322; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=6MYAyJNiKjIJRjZP+kRmtZAtfqVcLkXfnhiloyCSICI=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBnd/ZmZONkGPkWRBeHrOF+YcppWKlIJtf6T1DNYzq9 Uu+bV+KJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZ3f2ZgAKCRB33NvayMhJ0fCGD/ 0UKMFH58M5axg9yTfUD9YC54sXBCnEAy/fHTxLa2H6OAPNZ924D66SJU9kK15RLLQ9QHM/y9YHHY9E IP6PJoahgFyKEgl13gBvMyOylkKprMYsRI8AAaYZobZdazRfp+rvyOV78FgRnxXcj59MmL45qzqxNE U/Xqu3AccEGT2quRNFXDLvm4B8W4qElSXZuD4ynvYFeCQw94g1nliDaUq6zOjssMct2mHspj/2cM5P nG1YgBuS+USVvAhgjtG45rCQDreRyj0S8L9NiXfnJ7L38l6tU66dS5Wz+bDTGevc7p3ngeLjtdI5ap U1e0OyEwzakT747w6m9BdlyISFibDWZIQm1TmPFRK8UUTV8Ju66L0D/h8YeizFRS8Hdt/jLHM8dN4a b5lXcGIv2jWAH7nN3Uznx3Qisnnx5cULozFetICL094eGOadxtdXinWXKoNvFaJ7H1qEfvAU6j8VMO XoP5QeOCeBMzoXxbqnaU1KJpFiGZ4Ne0Vh7rYtkAdrs7148/X7n3plrKO/NrRMx3L00rvOiyW+TCRI YAle8CDDzSdowg+psfbbzj0+PhB9wR0bifjZq4RLGd9srzvXSFx1RLek6LjG9Od2WxnZ/+6Gsyypha b3StsmKFdYlO0EsZRgKS5HHNFnLlFhgEtSVsDcirj6mkB1HbKrweylDx1QVw== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE On the SM8650, the dynamic clock and voltage scaling (DCVS) for the GPU is done in an hardware controlled loop by the GPU Management Unit (GMU). Since the GMU does a better job at maintaining the GPUs temperature in an acceptable range by taking in account more parameters like the die characteristics or other internal sensors, it makes no sense to try and reproduce a similar set of constraints with the Linux devfreq thermal core. Instead, set higher temperatures in the GPU trip points corresponding to the temperatures provided by Qualcomm in the dowstream source, which will trigger the devfreq thermal core if the GMU cannot handle the temperature surge, and try our best to avoid reaching the critical temperature trip point which should trigger an inevitable thermal shutdown. Fixes: 497624ed5506 ("arm64: dts: qcom: sm8650: Throttle the GPU when overh= eating") Signed-off-by: Neil Armstrong --- arch/arm64/boot/dts/qcom/sm8650.dtsi | 48 ++++++++++++++++++--------------= ---- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qco= m/sm8650.dtsi index 448374a32e07151e35727d92fab77356769aea8a..ddcb57886eb5eac2a70d28e6ad6= 8fc6820b5dcf1 100644 --- a/arch/arm64/boot/dts/qcom/sm8650.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi @@ -6507,19 +6507,19 @@ map0 { =20 trips { gpu0_alert0: trip-point0 { - temperature =3D <85000>; + temperature =3D <95000>; hysteresis =3D <1000>; type =3D "passive"; }; =20 trip-point1 { - temperature =3D <90000>; + temperature =3D <115000>; hysteresis =3D <1000>; type =3D "hot"; }; =20 trip-point2 { - temperature =3D <110000>; + temperature =3D <125000>; hysteresis =3D <1000>; type =3D "critical"; }; @@ -6540,19 +6540,19 @@ map0 { =20 trips { gpu1_alert0: trip-point0 { - temperature =3D <85000>; + temperature =3D <95000>; hysteresis =3D <1000>; type =3D "passive"; }; =20 trip-point1 { - temperature =3D <90000>; + temperature =3D <115000>; hysteresis =3D <1000>; type =3D "hot"; }; =20 trip-point2 { - temperature =3D <110000>; + temperature =3D <125000>; hysteresis =3D <1000>; type =3D "critical"; }; @@ -6573,19 +6573,19 @@ map0 { =20 trips { gpu2_alert0: trip-point0 { - temperature =3D <85000>; + temperature =3D <95000>; hysteresis =3D <1000>; type =3D "passive"; }; =20 trip-point1 { - temperature =3D <90000>; + temperature =3D <115000>; hysteresis =3D <1000>; type =3D "hot"; }; =20 trip-point2 { - temperature =3D <110000>; + temperature =3D <125000>; hysteresis =3D <1000>; type =3D "critical"; }; @@ -6606,19 +6606,19 @@ map0 { =20 trips { gpu3_alert0: trip-point0 { - temperature =3D <85000>; + temperature =3D <95000>; hysteresis =3D <1000>; type =3D "passive"; }; =20 trip-point1 { - temperature =3D <90000>; + temperature =3D <115000>; hysteresis =3D <1000>; type =3D "hot"; }; =20 trip-point2 { - temperature =3D <110000>; + temperature =3D <125000>; hysteresis =3D <1000>; type =3D "critical"; }; @@ -6639,19 +6639,19 @@ map0 { =20 trips { gpu4_alert0: trip-point0 { - temperature =3D <85000>; + temperature =3D <95000>; hysteresis =3D <1000>; type =3D "passive"; }; =20 trip-point1 { - temperature =3D <90000>; + temperature =3D <115000>; hysteresis =3D <1000>; type =3D "hot"; }; =20 trip-point2 { - temperature =3D <110000>; + temperature =3D <125000>; hysteresis =3D <1000>; type =3D "critical"; }; @@ -6672,19 +6672,19 @@ map0 { =20 trips { gpu5_alert0: trip-point0 { - temperature =3D <85000>; + temperature =3D <95000>; hysteresis =3D <1000>; type =3D "passive"; }; =20 trip-point1 { - temperature =3D <90000>; + temperature =3D <115000>; hysteresis =3D <1000>; type =3D "hot"; }; =20 trip-point2 { - temperature =3D <110000>; + temperature =3D <125000>; hysteresis =3D <1000>; type =3D "critical"; }; @@ -6705,19 +6705,19 @@ map0 { =20 trips { gpu6_alert0: trip-point0 { - temperature =3D <85000>; + temperature =3D <95000>; hysteresis =3D <1000>; type =3D "passive"; }; =20 trip-point1 { - temperature =3D <90000>; + temperature =3D <115000>; hysteresis =3D <1000>; type =3D "hot"; }; =20 trip-point2 { - temperature =3D <110000>; + temperature =3D <125000>; hysteresis =3D <1000>; type =3D "critical"; }; @@ -6738,19 +6738,19 @@ map0 { =20 trips { gpu7_alert0: trip-point0 { - temperature =3D <85000>; + temperature =3D <95000>; hysteresis =3D <1000>; type =3D "passive"; }; =20 trip-point1 { - temperature =3D <90000>; + temperature =3D <115000>; hysteresis =3D <1000>; type =3D "hot"; }; =20 trip-point2 { - temperature =3D <110000>; + temperature =3D <125000>; hysteresis =3D <1000>; type =3D "critical"; }; --=20 2.34.1