We should only substract 2 from the vblank time when using tcon1.
Signed-off-by: Hans de Goede hdego...@redhat.com
---
drivers/video/sunxi_display.c | 11 +++
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/video/sunxi_display.c b/drivers/video/sunxi_display.c
index 3942d2f..fa4241e 100644
--- a/drivers/video/sunxi_display.c
+++ b/drivers/video/sunxi_display.c
@@ -663,11 +663,14 @@ static void sunxi_lcdc_backlight_enable(void)
gpio_direction_output(pin, PWM_ON);
}
-static int sunxi_lcdc_get_clk_delay(const struct ctfb_res_modes *mode)
+static int sunxi_lcdc_get_clk_delay(const struct ctfb_res_modes *mode, int
tcon)
{
int delay;
- delay = mode-lower_margin + mode-vsync_len + mode-upper_margin - 2;
+ delay = mode-lower_margin + mode-vsync_len + mode-upper_margin;
+ if (tcon == 1)
+ delay -= 2;
+
return (delay 30) ? 30 : delay;
}
@@ -692,7 +695,7 @@ static void sunxi_lcdc_tcon0_mode_set(const struct
ctfb_res_modes *mode,
clrsetbits_le32(lcdc-ctrl, SUNXI_LCDC_CTRL_IO_MAP_MASK,
SUNXI_LCDC_CTRL_IO_MAP_TCON0);
- clk_delay = sunxi_lcdc_get_clk_delay(mode);
+ clk_delay = sunxi_lcdc_get_clk_delay(mode, 0);
writel(SUNXI_LCDC_TCON0_CTRL_ENABLE |
SUNXI_LCDC_TCON0_CTRL_CLK_DELAY(clk_delay), lcdc-tcon0_ctrl);
@@ -770,7 +773,7 @@ static void sunxi_lcdc_tcon1_mode_set(const struct
ctfb_res_modes *mode,
clrsetbits_le32(lcdc-ctrl, SUNXI_LCDC_CTRL_IO_MAP_MASK,
SUNXI_LCDC_CTRL_IO_MAP_TCON1);
- clk_delay = sunxi_lcdc_get_clk_delay(mode);
+ clk_delay = sunxi_lcdc_get_clk_delay(mode, 1);
writel(SUNXI_LCDC_TCON1_CTRL_ENABLE |
SUNXI_LCDC_TCON1_CTRL_CLK_DELAY(clk_delay), lcdc-tcon1_ctrl);
--
2.4.3
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot