aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Stone <daniels@collabora.com>2018-03-30 10:11:31 -0400
committerInki Dae <inki.dae@samsung.com>2018-04-17 01:55:41 -0400
commit7b30508f5116574f94b50c71d3da1089d145e603 (patch)
treeab98de40d19658f8638fc11282e0b36b737225d7
parentb11954a6971baa5842e24e6c0dcf56f117249638 (diff)
drm/exynos: Move dma_addr out of exynos_drm_fb
This can be calculated from the GEM BO DMA address as well as the offset stored in the base framebuffer. Signed-off-by: Daniel Stone <daniels@collabora.com> Signed-off-by: Inki Dae <inki.dae@samsung.com> Cc: Inki Dae <inki.dae@samsung.com> Cc: Joonyoung Shim <jy0922.shim@samsung.com> Cc: Seung-Woo Kim <sw0312.kim@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com>
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fb.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fb.c b/drivers/gpu/drm/exynos/exynos_drm_fb.c
index f28ce493e314..168c71f80b72 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fb.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fb.c
@@ -37,7 +37,6 @@
37 */ 37 */
38struct exynos_drm_fb { 38struct exynos_drm_fb {
39 struct drm_framebuffer fb; 39 struct drm_framebuffer fb;
40 dma_addr_t dma_addr[MAX_FB_BUFFER];
41}; 40};
42 41
43static int check_fb_gem_memory_type(struct drm_device *drm_dev, 42static int check_fb_gem_memory_type(struct drm_device *drm_dev,
@@ -91,8 +90,6 @@ exynos_drm_framebuffer_init(struct drm_device *dev,
91 goto err; 90 goto err;
92 91
93 exynos_fb->fb.obj[i] = &exynos_gem[i]->base; 92 exynos_fb->fb.obj[i] = &exynos_gem[i]->base;
94 exynos_fb->dma_addr[i] = exynos_gem[i]->dma_addr
95 + mode_cmd->offsets[i];
96 } 93 }
97 94
98 drm_helper_mode_fill_fb_struct(dev, &exynos_fb->fb, mode_cmd); 95 drm_helper_mode_fill_fb_struct(dev, &exynos_fb->fb, mode_cmd);
@@ -160,12 +157,13 @@ err:
160 157
161dma_addr_t exynos_drm_fb_dma_addr(struct drm_framebuffer *fb, int index) 158dma_addr_t exynos_drm_fb_dma_addr(struct drm_framebuffer *fb, int index)
162{ 159{
163 struct exynos_drm_fb *exynos_fb = to_exynos_fb(fb); 160 struct exynos_drm_gem *exynos_gem;
164 161
165 if (WARN_ON_ONCE(index >= MAX_FB_BUFFER)) 162 if (WARN_ON_ONCE(index >= MAX_FB_BUFFER))
166 return 0; 163 return 0;
167 164
168 return exynos_fb->dma_addr[index]; 165 exynos_gem = to_exynos_gem(fb->obj[index]);
166 return exynos_gem->dma_addr + fb->offsets[index];
169} 167}
170 168
171static struct drm_mode_config_helper_funcs exynos_drm_mode_config_helpers = { 169static struct drm_mode_config_helper_funcs exynos_drm_mode_config_helpers = {