summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorInki Dae <inki.dae@samsung.com>2012-11-09 08:41:29 +0100
committerInki Dae <daeinki@gmail.com>2012-11-29 12:30:33 +0100
commit9d934799025072d0a9c47b0ac6b9541418e5e88c (patch)
tree190fa185436624c7ccca0669775660a61521d3f7
parentMerge branch 'for-airlied' of git://people.freedesktop.org/~danvet/drm-intel ... (diff)
downloadlinux-9d934799025072d0a9c47b0ac6b9541418e5e88c.tar.xz
linux-9d934799025072d0a9c47b0ac6b9541418e5e88c.zip
drm/exynos: fix linux framebuffer address setting.
With iommu, buffer->dma_addr has device addres so this patch fixes for physical address to be set to fix.smem_start always. Signed-off-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fbdev.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index 67eb6ba56edf..e7466c4414cb 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -87,7 +87,8 @@ static int exynos_drm_fbdev_update(struct drm_fb_helper *helper,
dev->mode_config.fb_base = (resource_size_t)buffer->dma_addr;
fbi->screen_base = buffer->kvaddr + offset;
- fbi->fix.smem_start = (unsigned long)(buffer->dma_addr + offset);
+ fbi->fix.smem_start = (unsigned long)(page_to_phys(buffer->pages[0]) +
+ offset);
fbi->screen_size = size;
fbi->fix.smem_len = size;