[PATCH v2 14/20] drm/sun4i: tcon: multiply the vtotal when not in interlace
From: Chen-Yu Tsai <hidden>
Date: 2017-05-04 04:08:21
Also in:
dri-devel, linux-clk, linux-devicetree, lkml
From: Chen-Yu Tsai <hidden>
Date: 2017-05-04 04:08:21
Also in:
dri-devel, linux-clk, linux-devicetree, lkml
On Wed, May 3, 2017 at 7:59 PM, Maxime Ripard [off-list ref] wrote:
It appears that the total vertical resolution needs to be doubled when we're not in interlaced. Make sure that is the case.
I think the total vertical resolution needs to be doubled in all cases. It just happens that you should've been using mode->crtc_vtotal, which is halved when the mode is interlaced. Instead you used mode->vtotal, which is double the actual scan resolution in interlaced mode. ChenYu
Signed-off-by: Maxime Ripard <redacted> --- drivers/gpu/drm/sun4i/sun4i_tcon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c index 0f91ec8a4b26..efa079c1a3f5 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c@@ -272,9 +272,9 @@ void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon, /* Set vertical display timings */ bp = mode->crtc_vtotal - mode->crtc_vsync_start; DRM_DEBUG_DRIVER("Setting vertical total %d, backporch %d\n", - mode->vtotal, bp); + mode->crtc_vtotal, bp); regmap_write(tcon->regs, SUN4I_TCON1_BASIC4_REG, - SUN4I_TCON1_BASIC4_V_TOTAL(mode->vtotal) | + SUN4I_TCON1_BASIC4_V_TOTAL(mode->crtc_vtotal * 2) | SUN4I_TCON1_BASIC4_V_BACKPORCH(bp)); /* Set Hsync and Vsync length */ --git-series 0.8.11