drm/rockchip: vop2: use rkiommu 1.0 for rk3576 reserved plane mode

reserved plane mode will enable iommu bypass for rtos reserved plane
display, but rkiommu 2.0 can't support iommu bypass function, so use
rkiommu 1.0 at reserved plane mode by default, others will use rkiommu
2.0 by default.

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I68f2ae66e4e0d7eec45264c39a7f23deab01c8eb
This commit is contained in:
Sandy Huang
2025-06-10 16:40:53 +08:00
committed by Tao Huang
parent fc46321d50
commit 2d33531068

View File

@@ -4712,8 +4712,14 @@ static void vop2_initial(struct drm_crtc *crtc)
vop2_mask_write(vop2, 0x700, 0x3, 4, 0, 0, true);
if (vop2->version == VOP_VERSION_RK3576) {
/* Default use rkiommu 2.0 for axi0 */
VOP_CTRL_SET(vop2, rkmmu_v2_en, 1);
/* reserved plane mode will enable iommu bypass for rtos reserved plane display,
* but rkiommu 2.0 can't support iommu bypass function, so use rkiommu 1.0
* at reserved plane mode by default, others will use rkiommu 2.0 by default.
*/
if (vop2->enable_reserved_plane)
VOP_CTRL_SET(vop2, rkmmu_v2_en, 0);
else /* Default use rkiommu 2.0 for axi0 */
VOP_CTRL_SET(vop2, rkmmu_v2_en, 1);
if (vop2->merge_irq == true)
VOP_CTRL_SET(vop2, vp_intr_merge_en, 1);