From 624a79f14481c28508239d8008f66e6a7b5ed98c Mon Sep 17 00:00:00 2001 From: Mark Yao Date: Fri, 24 Mar 2017 19:46:46 +0800 Subject: [PATCH] drm/rockchip: vop: add line_flag 0/1 for ddr freq change Change-Id: Icae9fe3d3600a478f68220545c17b393b4aff1ec Signed-off-by: Mark Yao --- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 ++++ drivers/gpu/drm/rockchip/rockchip_drm_vop.h | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 9219d9672d54..706fc973e94f 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -1701,6 +1701,10 @@ static void vop_crtc_enable(struct drm_crtc *crtc) val |= vact_end; VOP_CTRL_SET(vop, vact_st_end, val); VOP_CTRL_SET(vop, vpost_st_end, val); + + VOP_INTR_SET(vop, line_flag_num[0], vact_end); + VOP_INTR_SET(vop, line_flag_num[1], + vact_end - us_to_vertical_line(adjusted_mode, 1000)); if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) { u16 vact_st_f1 = vtotal + vact_st + 1; u16 vact_end_f1 = vact_st_f1 + vdisplay; diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h index cd36b6cd3391..9e912415f800 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h @@ -493,5 +493,10 @@ static inline int scl_vop_cal_lb_mode(int width, bool is_yuv) return lb_mode; } +static inline int us_to_vertical_line(struct drm_display_mode *mode, int us) +{ + return us * mode->clock / mode->htotal / 1000; +} + extern const struct component_ops vop_component_ops; #endif /* _ROCKCHIP_DRM_VOP_H */ -- 2.34.1