From eae144a7cc286f82c88aebda04f3cda1cd1c095c Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Tue, 10 Apr 2018 19:32:37 +0800 Subject: [PATCH] drm/rockchip: vop: update lineflag1 number for ddr freq conver except rk3368 and rk3328 lineflag1 number should be set before last active line 1000us, other platform lineflag1 number should be set at the last active line. Change-Id: I4598ae79f437e180c4de261894f09b421b473572 Signed-off-by: Sandy Huang --- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index baed6af44c91..70c7a3e1bee7 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -2466,6 +2466,7 @@ static void vop_crtc_enable(struct drm_crtc *crtc) uint32_t val; int act_end; bool interlaced = !!(adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE); + int for_ddr_freq = 0; rockchip_set_system_status(sys_status); mutex_lock(&vop->vop_lock); @@ -2580,9 +2581,12 @@ static void vop_crtc_enable(struct drm_crtc *crtc) act_end = vact_end; } + if (VOP_MAJOR(vop->version) == 3 && + (VOP_MINOR(vop->version) == 2 || VOP_MINOR(vop->version) == 8)) + for_ddr_freq = 1000; VOP_INTR_SET(vop, line_flag_num[0], act_end); VOP_INTR_SET(vop, line_flag_num[1], - act_end - us_to_vertical_line(adjusted_mode, 1000)); + act_end - us_to_vertical_line(adjusted_mode, for_ddr_freq)); VOP_CTRL_SET(vop, vtotal_pw, vtotal << 16 | vsync_len);