[PATCH v2] iommu/rockchip: disable fetch dte time limit
Heiko Stuebner
heiko at sntech.de
Fri May 29 10:47:27 PDT 2026
Am Dienstag, 28. April 2026, 18:05:31 Mitteleuropäische Sommerzeit schrieb Sven Püschel:
> From: Simon Xue <xxm at rock-chips.com>
>
> Disable the Bit 31 of the AUTO_GATING iommu register, as it causes
> hangups with the RGA3 (Raster Graphics Acceleration 3) peripheral.
> The RGA3 register description of the TRM already states that the bit
> must be set to 1. The vendor kernel sets the bit unconditionally to
> 1 to fix VOP (Video Output Processor) screen black issues. This patch
> squashes the 2 vendor kernel commits with the following commit messages:
>
> Master fetch data and cpu update page table may work in parallel, may
> have the following procedure:
>
> master cpu
> fetch dte update page tabl
> | |
> (make dte invalid) <- zap iotlb entry
> | |
> fetch dte again
> (make dte invalid) <- zap iotlb entry
> | |
> fetch dte again
> (make dte invalid) <- zap iotlb entry
> | |
> fetch dte again
> (make iommu block) <- zap iotlb entry
>
> New iommu version has the above bug, if fetch dte consecutively four
> times, then it will be blocked. Fortunately, we can set bit 31 of
> register MMU_AUTO_GATING to 1 to make it work as old version which does
> not have this issue.
>
> This issue only appears on RV1126 so far, so make a workaround dedicated
> to "rockchip,rv1126" machine type.
>
> iommu/rockchip: fix vop blocked and screen black on RK356X and RK3588
>
> RK3568 and RK3588 has the same issue as RV1126/RV1109 that caused by
> dte fetch time limit, So we can set BIT(31) of register 0x24 default
> to 1 as a workaround.
>
> Signed-off-by: Simon Xue <xxm at rock-chips.com>
> Signed-off-by: Sven Püschel <s.pueschel at pengutronix.de>
Acked-by: Heiko Stuebner <heiko at sntech.de>
@Joerg: could we get this merged?
Thanks
Heiko
More information about the Linux-rockchip
mailing list