diff options
author | Andrzej Hajda <a.hajda@samsung.com> | 2014-04-25 16:43:55 +0900 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2014-04-28 21:33:30 +0900 |
commit | 9d0795608a16c54a938f23b4d8ac099a0b325184 (patch) | |
tree | 6dbba299f07993e106f10a54af3c8b0f0ab1b5ed | |
parent | d5ea79f64bd943e5a73dd3b00b63b6aa658c43e1 (diff) | |
download | linux-3.10-9d0795608a16c54a938f23b4d8ac099a0b325184.tar.gz linux-3.10-9d0795608a16c54a938f23b4d8ac099a0b325184.tar.bz2 linux-3.10-9d0795608a16c54a938f23b4d8ac099a0b325184.zip |
drm/exynos: correct timing porch conversion
The patch corrects porch calculation. It should
be calculated as a difference between adjacent
respective fields of drm_display_mode.
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_fimd.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c index 7ea0c289aee..00140280bd9 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c @@ -230,7 +230,7 @@ static void fimd_commit(struct exynos_drm_manager *mgr) struct drm_display_mode *mode = &ctx->mode; struct fimd_driver_data *driver_data; u32 val, clkdiv; - int hblank, vblank, vsync_len, vbpd, vfpd, hsync_len, hbpd, hfpd; + int vsync_len, vbpd, vfpd, hsync_len, hbpd, hfpd; int ret; driver_data = ctx->driver_data; @@ -254,10 +254,9 @@ static void fimd_commit(struct exynos_drm_manager *mgr) writel(ctx->vidcon1, ctx->regs + driver_data->timing_base + VIDCON1); /* setup vertical timing values. */ - vblank = mode->crtc_vblank_end - mode->crtc_vblank_start; vsync_len = mode->crtc_vsync_end - mode->crtc_vsync_start; - vbpd = (vblank - vsync_len) / 2; - vfpd = vblank - vsync_len - vbpd; + vbpd = mode->crtc_vtotal - mode->crtc_vsync_end; + vfpd = mode->crtc_vsync_start - mode->crtc_vdisplay; val = VIDTCON0_VBPD(vbpd - 1) | VIDTCON0_VFPD(vfpd - 1) | @@ -265,10 +264,9 @@ static void fimd_commit(struct exynos_drm_manager *mgr) writel(val, ctx->regs + driver_data->timing_base + VIDTCON0); /* setup horizontal timing values. */ - hblank = mode->crtc_hblank_end - mode->crtc_hblank_start; hsync_len = mode->crtc_hsync_end - mode->crtc_hsync_start; - hbpd = (hblank - hsync_len) / 2; - hfpd = hblank - hsync_len - hbpd; + hbpd = mode->crtc_htotal - mode->crtc_hsync_end; + hfpd = mode->crtc_hsync_start - mode->crtc_hdisplay; val = VIDTCON1_HBPD(hbpd - 1) | VIDTCON1_HFPD(hfpd - 1) | |