Re: [PATCH] Update H700 opp values

From: Chen-Yu Tsai
Date: Fri Nov 29 2024 - 00:13:37 EST


On Thu, Nov 28, 2024 at 11:46 PM Philippe Simons
<simons.philippe@xxxxxxxxx> wrote:
>
> My H700 (RG35XX-H, RG40XX-V and RG CubeXX) devices are very unstable,
> especially with some OPPs.
> Crashes were fairly easy to reproduce with any dynamic cpufreq governor
> and some load on CPU, usually in matter of minutes.
> Crashes manifested randomly as simply hanging or various kernel oops
>
> Manufacturer (Anbernic) is using more conservative mircrovolt values,
> so let's use these.
> While using performance gov seems stables at 1.5Ghz, it still crashes
> using a dynamic gov (even with Andre reparenting patch), so let's drop
> it for now, like manufacturer does.
>
> Signed-off-by: Philippe Simons <simons.philippe@xxxxxxxxx
> ---
> .../dts/allwinner/sun50i-h616-cpu-opp.dtsi | 19 +++++++++----------
> 1 file changed, 9 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp.dtsi
> index dd10aaf47..ac13fe169 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp.dtsi
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616-cpu-opp.dtsi
> @@ -50,24 +50,21 @@ opp-1008000000 {
> opp-microvolt-speed2 = <950000>;
> opp-microvolt-speed3 = <950000>;
> opp-microvolt-speed4 = <1020000>;
> - opp-microvolt-speed5 = <900000>;
> + opp-microvolt-speed5 = <950000>;

It seems that you are encountering the issues on this particular binning.
Could you mention that in the commit message?

It's not very obvious that H700 == a particular speed bin of H616.

ChenYu

> clock-latency-ns = <244144>; /* 8 32k periods */
> opp-supported-hw = <0x3f>;
> };
>
> opp-1032000000 {
> opp-hz = /bits/ 64 <1032000000>;
> - opp-microvolt = <900000>;
> + opp-microvolt = <950000>;
> clock-latency-ns = <244144>; /* 8 32k periods */
> opp-supported-hw = <0x20>;
> };
>
> opp-1104000000 {
> opp-hz = /bits/ 64 <1104000000>;
> - opp-microvolt-speed0 = <1000000>;
> - opp-microvolt-speed2 = <1000000>;
> - opp-microvolt-speed3 = <1000000>;
> - opp-microvolt-speed5 = <950000>;
> + opp-microvolt = <1000000>;
> clock-latency-ns = <244144>; /* 8 32k periods */
> opp-supported-hw = <0x2d>;
> };
> @@ -79,7 +76,7 @@ opp-1200000000 {
> opp-microvolt-speed2 = <1050000>;
> opp-microvolt-speed3 = <1050000>;
> opp-microvolt-speed4 = <1100000>;
> - opp-microvolt-speed5 = <1020000>;
> + opp-microvolt-speed5 = <1050000>;
> clock-latency-ns = <244144>; /* 8 32k periods */
> opp-supported-hw = <0x3f>;
> };
> @@ -93,7 +90,10 @@ opp-1320000000 {
>
> opp-1416000000 {
> opp-hz = /bits/ 64 <1416000000>;
> - opp-microvolt = <1100000>;
> + opp-microvolt-speed0 = <1100000>;
> + opp-microvolt-speed2 = <1100000>;
> + opp-microvolt-speed3 = <1100000>;
> + opp-microvolt-speed5 = <1160000>;
> clock-latency-ns = <244144>; /* 8 32k periods */
> opp-supported-hw = <0x2d>;
> };
> @@ -102,9 +102,8 @@ opp-1512000000 {
> opp-hz = /bits/ 64 <1512000000>;
> opp-microvolt-speed1 = <1100000>;
> opp-microvolt-speed3 = <1100000>;
> - opp-microvolt-speed5 = <1160000>;
> clock-latency-ns = <244144>; /* 8 32k periods */
> - opp-supported-hw = <0x2a>;
> + opp-supported-hw = <0x0a>;
> };
> };
> };
> --
> 2.46.1
>