diff options
author | Joonyoung Shim <jy0922.shim@samsung.com> | 2012-12-14 01:48:24 -0500 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2012-12-14 01:54:39 -0500 |
commit | ca555e5ab701d00bd91a541778f5aa432d18d478 (patch) | |
tree | a9ee52365f68d88ce84a4f8c4a490430a82f0eef /drivers/gpu | |
parent | f56aad3a697a0189c76100236190e26c1f8e446b (diff) |
drm/exynos: support extended screen coordinate of fimd
The fimd of exynos5 SoC supports extended screen coordinate.
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_fimd.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c index ae0153badaf9..1e4ea96bbe3e 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c | |||
@@ -243,7 +243,9 @@ static void fimd_commit(struct device *dev) | |||
243 | 243 | ||
244 | /* setup horizontal and vertical display size. */ | 244 | /* setup horizontal and vertical display size. */ |
245 | val = VIDTCON2_LINEVAL(timing->yres - 1) | | 245 | val = VIDTCON2_LINEVAL(timing->yres - 1) | |
246 | VIDTCON2_HOZVAL(timing->xres - 1); | 246 | VIDTCON2_HOZVAL(timing->xres - 1) | |
247 | VIDTCON2_LINEVAL_E(timing->yres - 1) | | ||
248 | VIDTCON2_HOZVAL_E(timing->xres - 1); | ||
247 | writel(val, ctx->regs + driver_data->timing_base + VIDTCON2); | 249 | writel(val, ctx->regs + driver_data->timing_base + VIDTCON2); |
248 | 250 | ||
249 | /* setup clock source, clock divider, enable dma. */ | 251 | /* setup clock source, clock divider, enable dma. */ |
@@ -518,12 +520,16 @@ static void fimd_win_commit(struct device *dev, int zpos) | |||
518 | 520 | ||
519 | /* buffer size */ | 521 | /* buffer size */ |
520 | val = VIDW_BUF_SIZE_OFFSET(win_data->buf_offsize) | | 522 | val = VIDW_BUF_SIZE_OFFSET(win_data->buf_offsize) | |
521 | VIDW_BUF_SIZE_PAGEWIDTH(win_data->line_size); | 523 | VIDW_BUF_SIZE_PAGEWIDTH(win_data->line_size) | |
524 | VIDW_BUF_SIZE_OFFSET_E(win_data->buf_offsize) | | ||
525 | VIDW_BUF_SIZE_PAGEWIDTH_E(win_data->line_size); | ||
522 | writel(val, ctx->regs + VIDWx_BUF_SIZE(win, 0)); | 526 | writel(val, ctx->regs + VIDWx_BUF_SIZE(win, 0)); |
523 | 527 | ||
524 | /* OSD position */ | 528 | /* OSD position */ |
525 | val = VIDOSDxA_TOPLEFT_X(win_data->offset_x) | | 529 | val = VIDOSDxA_TOPLEFT_X(win_data->offset_x) | |
526 | VIDOSDxA_TOPLEFT_Y(win_data->offset_y); | 530 | VIDOSDxA_TOPLEFT_Y(win_data->offset_y) | |
531 | VIDOSDxA_TOPLEFT_X_E(win_data->offset_x) | | ||
532 | VIDOSDxA_TOPLEFT_Y_E(win_data->offset_y); | ||
527 | writel(val, ctx->regs + VIDOSD_A(win)); | 533 | writel(val, ctx->regs + VIDOSD_A(win)); |
528 | 534 | ||
529 | last_x = win_data->offset_x + win_data->ovl_width; | 535 | last_x = win_data->offset_x + win_data->ovl_width; |
@@ -533,7 +539,9 @@ static void fimd_win_commit(struct device *dev, int zpos) | |||
533 | if (last_y) | 539 | if (last_y) |
534 | last_y--; | 540 | last_y--; |
535 | 541 | ||
536 | val = VIDOSDxB_BOTRIGHT_X(last_x) | VIDOSDxB_BOTRIGHT_Y(last_y); | 542 | val = VIDOSDxB_BOTRIGHT_X(last_x) | VIDOSDxB_BOTRIGHT_Y(last_y) | |
543 | VIDOSDxB_BOTRIGHT_X_E(last_x) | VIDOSDxB_BOTRIGHT_Y_E(last_y); | ||
544 | |||
537 | writel(val, ctx->regs + VIDOSD_B(win)); | 545 | writel(val, ctx->regs + VIDOSD_B(win)); |
538 | 546 | ||
539 | DRM_DEBUG_KMS("osd pos: tx = %d, ty = %d, bx = %d, by = %d\n", | 547 | DRM_DEBUG_KMS("osd pos: tx = %d, ty = %d, bx = %d, by = %d\n", |