[PATCH v2 6/6] arm64: dts: rockchip: Add GPU power domain regulator dependency for RK3588

Jonas Karlman jonas at kwiboo.se
Thu Sep 19 14:00:52 PDT 2024


Hi,

On 2024-09-19 21:27, Sebastian Reichel wrote:
> Hi,
> 
> On Thu, Sep 19, 2024 at 01:33:25PM GMT, Jonas Karlman wrote:
>> On 2024-09-19 11:12, Sebastian Reichel wrote:
>>> Enabling the GPU power domain requires that the GPU regulator is
>>> enabled. The regulator is enabled at boot time, but automatically
>>> gets disabled when there are no users.
>>>
>>> If the GPU driver is not probed at boot time or rebound while
>>> the system is running the system will try to enable the power
>>> domain before the regulator is enabled resulting in a failure
>>> hanging the whole system. Avoid this by adding an explicit
>>> dependency.
>>>
>>> Reported-by: Adrián Martínez Larumbe <adrian.larumbe at collabora.com>
>>> Tested-by: Adrian Larumbe <adrian.larumbe at collabora.com> # On Rock 5B
>>> Signed-off-by: Sebastian Reichel <sebastian.reichel at collabora.com>
>>> ---
>>>  arch/arm64/boot/dts/rockchip/rk3588-armsom-sige7.dts         | 4 ++++
>>>  arch/arm64/boot/dts/rockchip/rk3588-base.dtsi                | 2 +-
>>>  arch/arm64/boot/dts/rockchip/rk3588-coolpi-cm5.dtsi          | 4 ++++
>>>  arch/arm64/boot/dts/rockchip/rk3588-friendlyelec-cm3588.dtsi | 4 ++++
>>>  arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts               | 4 ++++
>>>  arch/arm64/boot/dts/rockchip/rk3588-ok3588-c.dts             | 4 ++++
>>>  arch/arm64/boot/dts/rockchip/rk3588-rock-5-itx.dts           | 4 ++++
>>>  arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts              | 4 ++++
>>>  arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi               | 4 ++++
>>>  arch/arm64/boot/dts/rockchip/rk3588s-coolpi-4b.dts           | 4 ++++
>>>  arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts        | 4 ++++
>>>  arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts          | 4 ++++
>>>  12 files changed, 45 insertions(+), 1 deletion(-)
>>
>> Any reason why following rk3588 DTs was not updated?
>>
>> rk3588-evb1-v10.dts
>> rk3588-quartzpro64.dts
> 
> These two I skipped initially, since they have the GPU regulators
> always enabled due to the coupling. I'm not 100% sure if the GPU
> or the GPU-MEM regulator (or both) are required for the GPU power
> domain.
> 
>> rk3588-nanopc-t6.dtsi
>> rk3588s-gameforce-ace.dts
>> rk3588s-odroid-m2.dts
> 
> ... And these I missed, since they are new.

Great, so no technical reason :-)

> 
> I don't have enough time to prepare a v3 before my vacation.
> Note, that not describing the regulator just keeps the current
> behaviour.

Yeah, remaining boards can be updated in a separate/follow-up series.

> 
>> I also expect we may need to define domain-supply for the npu on
>> rk3588 and also both gpu and npu on rk356x in a future series.
> 
> Yes, I already discussed that in Vienna with Heiko and Tomeu. The
> binding change also allows adding a regulator to the NPU power
> domain.

Great and good to know.

> 
>> Similar freeze issue has been observed on rk356x when booting vendor
>> kernel with npu support enabled using mainline U-Boot and DT [1].
>>
>> To work around that issue on rk356x the npu regulator could be changed
>> to always-on/boot-on to get past the kernel freeze [2].
>>
>> [1] https://github.com/armbian/build/pull/7025#issuecomment-2291067748
>> [2] https://github.com/Kwiboo/u-boot-rockchip/commit/da31da4b68f858f54364a21b0dd00fef2ab0d0d6
> 
> Yes, that looks like the same issue and I guess the changes to the Rockchip
> power-domain driver should also work for rk356x. I don't have one, though.

I will test this series and try to add domain-supply for GPU and NPU on
a few rk356x boards, should help avoid possible issues in future.

Will also send a U-Boot series to enable RK806 PMIC support on a few
more rk3588 boards, should help ensure always-on/boot-on PMIC regulators
are enabled before Linux is started.

Regards,
Jonas

> 
> -- Sebastian




More information about the Linux-rockchip mailing list