| From bb0dd8e5e70543ab817f7f9301f770e4c1b094c5 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 1 Oct 2019 16:02:51 +0800 |
| Subject: Revert "drm/sun4i: dsi: Change the start delay calculation" |
| |
| From: Icenowy Zheng <icenowy@aosc.io> |
| |
| [ Upstream commit a00d17e0a71ae2e4fdaac46e1c12785d3346c3f2 ] |
| |
| This reverts commit da676c6aa6413d59ab0a80c97bbc273025e640b2. |
| |
| The original commit adds a start parameter to the calculation of the |
| start delay according to some old BSP versions from Allwinner. However, |
| there're two ways to add this delay -- add it in DSI controller or add |
| it in the TCON. Add it in both controllers won't work. |
| |
| The code before this commit is picked from new versions of BSP kernel, |
| which has a comment for the 1 that says "put start_delay to tcon". By |
| checking the sun4i_tcon0_mode_set_cpu() in sun4i_tcon driver, it has |
| already added this delay, so we shouldn't repeat to add the delay in DSI |
| controller, otherwise the timing won't match. |
| |
| Signed-off-by: Icenowy Zheng <icenowy@aosc.io> |
| Reviewed-by: Jagan Teki <jagan@amarulasolutions.com> |
| Signed-off-by: Maxime Ripard <mripard@kernel.org> |
| Link: https://patchwork.freedesktop.org/patch/msgid/20191001080253.6135-2-icenowy@aosc.io |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 3 +-- |
| 1 file changed, 1 insertion(+), 2 deletions(-) |
| |
| diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c |
| index 97a0573cc5145..79eb11cd185d1 100644 |
| --- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c |
| +++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c |
| @@ -357,8 +357,7 @@ static void sun6i_dsi_inst_init(struct sun6i_dsi *dsi, |
| static u16 sun6i_dsi_get_video_start_delay(struct sun6i_dsi *dsi, |
| struct drm_display_mode *mode) |
| { |
| - u16 start = clamp(mode->vtotal - mode->vdisplay - 10, 8, 100); |
| - u16 delay = mode->vtotal - (mode->vsync_end - mode->vdisplay) + start; |
| + u16 delay = mode->vtotal - (mode->vsync_end - mode->vdisplay) + 1; |
| |
| if (delay > mode->vtotal) |
| delay = delay % mode->vtotal; |
| -- |
| 2.20.1 |
| |