On Sunday 10 November 2024 18:44:31 Greenwich Mean Time Dragan Simic wrote:
The regulator-{min,max}-microvolt values for the vdd_gpu regulator in the PinePhone Pro device dts file are too restrictive, which prevents the highest GPU OPP from being used, slowing the GPU down unnecessarily. Let's fix that by making the regulator-{min,max}-microvolt values less strict, using the voltage range that the Silergy SYR838 chip used for the vdd_gpu regulator is actually capable of producing. [1][2]
This also eliminates the following error messages from the kernel log:
core: _opp_supported_by_regulators: OPP minuV: 1100000 maxuV: 1150000, not supported by regulator panfrost ff9a0000.gpu: _opp_add: OPP not supported by regulators (800000000)
These changes to the regulator-{min,max}-microvolt values make the PinePhone Pro device dts consistent with the dts files for other Rockchip RK3399-based boards and devices. It's possible to be more strict here, by specifying the regulator-{min,max}-microvolt values that don't go outside of what the GPU actually may use, as the consumer of the vdd_gpu regulator, but those changes are left for a later directory-wide regulator cleanup.
Ive tested this on my PPP and can provide the following outputs.
On a device without the patch: # cat /sys/class/devfreq/ff9a0000.gpu/trans_stat From : To : 200000000 297000000 400000000 500000000 600000000 time(ms) 200000000: 0 0 0 0 12203 5387782 297000000: 8208 0 0 0 2973 2337382 400000000: 784 6283 0 0 439 1859857 500000000: 67 287 1093 0 284 389599 600000000: 3145 4611 6413 1730 0 1748889 Total transition : 48520
And with the patch: [root@PinePhonePro defaultuser]# cat /sys/class/devfreq/ff9a0000.gpu/trans_stat From : To : 200000000 297000000 400000000 500000000 600000000 800000000 time(ms) 200000000: 0 0 0 0 0 364 188911 297000000: 120 0 0 0 0 234 31652 400000000: 77 182 0 0 0 82 32287 500000000: 10 57 56 0 0 57 13376 600000000: 21 14 35 31 0 22 9463 800000000: 137 101 250 148 123 0 97310 Total transition : 2121 [root@PinePhonePro defaultuser]# uptime 11:56:24 up 3:34, 1 users, load average: 2.77, 2.24, 1.70
I havnt noticed any issues, though I havnt done anything more in-depth than run the compositor and play a youtube video in the browser
[1] https://files.pine64.org/doc/PinePhonePro/PinephonePro-Schematic-V1.0-20211 127.pdf [2] https://www.t-firefly.com/download/Firefly-RK3399/docs/Chip%20Specification s/DC-DC_SYR837_838.pdf
Fixes: 78a21c7d5952 ("arm64: dts: rockchip: Add initial support for Pine64 PinePhone Pro") Cc: stable@vger.kernel.org Signed-off-by: Dragan Simic dsimic@manjaro.org
Tested-By: Adam Pigg adam@piggz.co.uk
arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts index 1a44582a49fb..956d64f5b271 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts @@ -410,8 +410,8 @@ vdd_gpu: regulator@41 { pinctrl-names = "default"; pinctrl-0 = <&vsel2_pin>; regulator-name = "vdd_gpu";
regulator-min-microvolt = <875000>;
regulator-max-microvolt = <975000>;
regulator-min-microvolt = <712500>;
regulator-ramp-delay = <1000>; regulator-always-on; regulator-boot-on;regulator-max-microvolt = <1500000>;
Linux-rockchip mailing list Linux-rockchip@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-rockchip