Thread (43 messages) 43 messages, 4 authors, 2017-05-12

[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

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
quoted hunk ↗ jump to hunk
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help