diff options
author | Daniel Stone <daniels@collabora.com> | 2018-03-30 10:11:31 -0400 |
---|---|---|
committer | Inki Dae <inki.dae@samsung.com> | 2018-04-17 01:55:41 -0400 |
commit | 7b30508f5116574f94b50c71d3da1089d145e603 (patch) | |
tree | ab98de40d19658f8638fc11282e0b36b737225d7 | |
parent | b11954a6971baa5842e24e6c0dcf56f117249638 (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.c | 8 |
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 | */ |
38 | struct exynos_drm_fb { | 38 | struct 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 | ||
43 | static int check_fb_gem_memory_type(struct drm_device *drm_dev, | 42 | static 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 | ||
161 | dma_addr_t exynos_drm_fb_dma_addr(struct drm_framebuffer *fb, int index) | 158 | dma_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 | ||
171 | static struct drm_mode_config_helper_funcs exynos_drm_mode_config_helpers = { | 169 | static struct drm_mode_config_helper_funcs exynos_drm_mode_config_helpers = { |