From be446793b3a01ed54ae1cbf80bb49555e3d540de Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Wed, 12 Jun 2024 16:41:46 +0800 Subject: [PATCH] drm/rockchip: vop2: disable acm bypass by default For RK3576 VP0 enable ACM[set acm bypass from 1 to 0] must at standby mode, otherwise will lead to timing error, so we enable ACM by default. Signed-off-by: Sandy Huang Change-Id: I7711cd0ca5b56c3a7bfef800bf9e61a5c0697e90 --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index 4be03b33e8c1..04bcf57a8e94 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -9395,6 +9395,16 @@ static void vop2_crtc_atomic_enable(struct drm_crtc *crtc, struct drm_atomic_sta */ if (vop2->version == VOP_VERSION_RK3588) VOP_MODULE_SET(vop2, vp, dsp_background, 0x80000000); + + /* + * For RK3576 VP0 enable ACM[bypass = 0] will lead to timing error, + * so enable ACM by default. + */ + if (vop2->version <= VOP_VERSION_RK3576 && + vp_data->feature & VOP_FEATURE_POST_ACM) { + writel(0, vop2->acm_regs + RK3528_ACM_CTRL); + VOP_MODULE_SET(vop2, vp, acm_bypass_en, 0); + } if (is_vop3(vop2)) vop3_setup_pipe_dly(vp, NULL);