From 6fbc954ded993489dd4e7ea289954efa0f2eac4e Mon Sep 17 00:00:00 2001 From: Akhil P Oommen Date: Sat, 14 Mar 2026 19:56:03 +0530 Subject: [PATCH 1/2] arm64: dts: qcom: glymur: Add GPU SKU support Introduce the `opp-supported-hw` property to the Glymur GPU OPP table. This allows the OPP framework to enable or disable specific frequencies based on the hardware SKU bitmask, ensuring lower-binned chips do not attempt to clock up to the restricted 1550MHz, 1700MHz, and 1850MHz operating points. --- arch/arm64/boot/dts/qcom/glymur.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/glymur.dtsi b/arch/arm64/boot/dts/qcom/glymur.dtsi index 5ecde8f62fed..cd9089e22d98 100644 --- a/arch/arm64/boot/dts/qcom/glymur.dtsi +++ b/arch/arm64/boot/dts/qcom/glymur.dtsi @@ -4118,12 +4118,14 @@ opp-hz = /bits/ 64 <310000000>; opp-level = ; opp-peak-kBps = <2136718>; + opp-supported-hw = <0xf>; }; opp-410000000 { opp-hz = /bits/ 64 <410000000>; opp-level = ; opp-peak-kBps = <2136718>; + opp-supported-hw = <0xf>; }; opp-572000000 { @@ -4131,6 +4133,7 @@ opp-level = ; opp-peak-kBps = <2136718>; qcom,opp-acd-level = <0xe02d5ffd>; + opp-supported-hw = <0xf>; }; opp-760000000 { @@ -4138,6 +4141,7 @@ opp-level = ; opp-peak-kBps = <2136718>; qcom,opp-acd-level = <0xc0285ffd>; + opp-supported-hw = <0xf>; }; opp-820000000 { @@ -4145,6 +4149,7 @@ opp-level = ; opp-peak-kBps = <2136718>; qcom,opp-acd-level = <0xa82e5ffd>; + opp-supported-hw = <0xf>; }; opp-915000000 { @@ -4152,6 +4157,7 @@ opp-level = ; opp-peak-kBps = <2136718>; qcom,opp-acd-level = <0x882d5ffd>; + opp-supported-hw = <0xf>; }; opp-1070000000 { @@ -4159,6 +4165,7 @@ opp-level = ; opp-peak-kBps = <2136718>; qcom,opp-acd-level = <0x882b5ffd>; + opp-supported-hw = <0xf>; }; opp-1185000000 { @@ -4166,6 +4173,7 @@ opp-level = ; opp-peak-kBps = <2136718>; qcom,opp-acd-level = <0x882a5ffd>; + opp-supported-hw = <0xf>; }; opp-1350000000 { @@ -4173,6 +4181,7 @@ opp-level = ; opp-peak-kBps = <2136718>; qcom,opp-acd-level = <0x882a5ffd>; + opp-supported-hw = <0xf>; }; opp-1550000000 { @@ -4180,6 +4189,7 @@ opp-level = ; opp-peak-kBps = <2136718>; qcom,opp-acd-level = <0xa8295ffd>; + opp-supported-hw = <0x7>; }; opp-1700000000 { @@ -4187,6 +4197,7 @@ opp-level = ; opp-peak-kBps = <2136718>; qcom,opp-acd-level = <0x88295ffd>; + opp-supported-hw = <0x7>; }; opp-1850000000 { @@ -4194,6 +4205,7 @@ opp-level = ; opp-peak-kBps = <2136718>; qcom,opp-acd-level = <0x88285ffd>; + opp-supported-hw = <0x3>; }; }; }; From 22343ab5fcadb0a3a7b44e37bec1e24197216b57 Mon Sep 17 00:00:00 2001 From: Akhil P Oommen Date: Tue, 17 Mar 2026 12:37:30 +0530 Subject: [PATCH 2/2] arm64: dts: qcom: glymur: Scale GPU DDR bandwidth with frequency Update the GPU OPP table on Glymur to scale `opp-peak-kBps` according to the GPU frequency. The previous fixed vote is replaced with proper frequency-matched bandwidth votes to prevent bottlenecks at higher OPPs. --- arch/arm64/boot/dts/qcom/glymur.dtsi | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/glymur.dtsi b/arch/arm64/boot/dts/qcom/glymur.dtsi index cd9089e22d98..f477f4156ac3 100644 --- a/arch/arm64/boot/dts/qcom/glymur.dtsi +++ b/arch/arm64/boot/dts/qcom/glymur.dtsi @@ -4117,21 +4117,21 @@ opp-310000000 { opp-hz = /bits/ 64 <310000000>; opp-level = ; - opp-peak-kBps = <2136718>; + opp-peak-kBps = <2136719>; opp-supported-hw = <0xf>; }; opp-410000000 { opp-hz = /bits/ 64 <410000000>; opp-level = ; - opp-peak-kBps = <2136718>; + opp-peak-kBps = <6074219>; opp-supported-hw = <0xf>; }; opp-572000000 { opp-hz = /bits/ 64 <572000000>; opp-level = ; - opp-peak-kBps = <2136718>; + opp-peak-kBps = <12449219>; qcom,opp-acd-level = <0xe02d5ffd>; opp-supported-hw = <0xf>; }; @@ -4139,7 +4139,7 @@ opp-760000000 { opp-hz = /bits/ 64 <760000000>; opp-level = ; - opp-peak-kBps = <2136718>; + opp-peak-kBps = <12449219>; qcom,opp-acd-level = <0xc0285ffd>; opp-supported-hw = <0xf>; }; @@ -4147,7 +4147,7 @@ opp-820000000 { opp-hz = /bits/ 64 <820000000>; opp-level = ; - opp-peak-kBps = <2136718>; + opp-peak-kBps = <16500000>; qcom,opp-acd-level = <0xa82e5ffd>; opp-supported-hw = <0xf>; }; @@ -4155,7 +4155,7 @@ opp-915000000 { opp-hz = /bits/ 64 <915000000>; opp-level = ; - opp-peak-kBps = <2136718>; + opp-peak-kBps = <16500000>; qcom,opp-acd-level = <0x882d5ffd>; opp-supported-hw = <0xf>; }; @@ -4163,7 +4163,7 @@ opp-1070000000 { opp-hz = /bits/ 64 <1070000000>; opp-level = ; - opp-peak-kBps = <2136718>; + opp-peak-kBps = <16500000>; qcom,opp-acd-level = <0x882b5ffd>; opp-supported-hw = <0xf>; }; @@ -4171,7 +4171,7 @@ opp-1185000000 { opp-hz = /bits/ 64 <1185000000>; opp-level = ; - opp-peak-kBps = <2136718>; + opp-peak-kBps = <16500000>; qcom,opp-acd-level = <0x882a5ffd>; opp-supported-hw = <0xf>; }; @@ -4179,7 +4179,7 @@ opp-1350000000 { opp-hz = /bits/ 64 <1350000000>; opp-level = ; - opp-peak-kBps = <2136718>; + opp-peak-kBps = <18597657>; qcom,opp-acd-level = <0x882a5ffd>; opp-supported-hw = <0xf>; }; @@ -4187,7 +4187,7 @@ opp-1550000000 { opp-hz = /bits/ 64 <1550000000>; opp-level = ; - opp-peak-kBps = <2136718>; + opp-peak-kBps = <18597657>; qcom,opp-acd-level = <0xa8295ffd>; opp-supported-hw = <0x7>; }; @@ -4195,7 +4195,7 @@ opp-1700000000 { opp-hz = /bits/ 64 <1700000000>; opp-level = ; - opp-peak-kBps = <2136718>; + opp-peak-kBps = <18597657>; qcom,opp-acd-level = <0x88295ffd>; opp-supported-hw = <0x7>; }; @@ -4203,7 +4203,7 @@ opp-1850000000 { opp-hz = /bits/ 64 <1850000000>; opp-level = ; - opp-peak-kBps = <2136718>; + opp-peak-kBps = <18597657>; qcom,opp-acd-level = <0x88285ffd>; opp-supported-hw = <0x3>; };