diff options
Diffstat (limited to 'drivers/gpu/drm/gma500/gem.c')
-rw-r--r-- | drivers/gpu/drm/gma500/gem.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/drivers/gpu/drm/gma500/gem.c b/drivers/gpu/drm/gma500/gem.c index fe1d3320ce6a..2f77bea30b11 100644 --- a/drivers/gpu/drm/gma500/gem.c +++ b/drivers/gpu/drm/gma500/gem.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <drm/drmP.h> | 26 | #include <drm/drmP.h> |
27 | #include <drm/drm.h> | 27 | #include <drm/drm.h> |
28 | #include <drm/gma_drm.h> | 28 | #include <drm/gma_drm.h> |
29 | #include <drm/drm_vma_manager.h> | ||
29 | #include "psb_drv.h" | 30 | #include "psb_drv.h" |
30 | 31 | ||
31 | int psb_gem_init_object(struct drm_gem_object *obj) | 32 | int psb_gem_init_object(struct drm_gem_object *obj) |
@@ -38,8 +39,7 @@ void psb_gem_free_object(struct drm_gem_object *obj) | |||
38 | struct gtt_range *gtt = container_of(obj, struct gtt_range, gem); | 39 | struct gtt_range *gtt = container_of(obj, struct gtt_range, gem); |
39 | 40 | ||
40 | /* Remove the list map if one is present */ | 41 | /* Remove the list map if one is present */ |
41 | if (obj->map_list.map) | 42 | drm_gem_free_mmap_offset(obj); |
42 | drm_gem_free_mmap_offset(obj); | ||
43 | drm_gem_object_release(obj); | 43 | drm_gem_object_release(obj); |
44 | 44 | ||
45 | /* This must occur last as it frees up the memory of the GEM object */ | 45 | /* This must occur last as it frees up the memory of the GEM object */ |
@@ -81,13 +81,10 @@ int psb_gem_dumb_map_gtt(struct drm_file *file, struct drm_device *dev, | |||
81 | /* What validation is needed here ? */ | 81 | /* What validation is needed here ? */ |
82 | 82 | ||
83 | /* Make it mmapable */ | 83 | /* Make it mmapable */ |
84 | if (!obj->map_list.map) { | 84 | ret = drm_gem_create_mmap_offset(obj); |
85 | ret = drm_gem_create_mmap_offset(obj); | 85 | if (ret) |
86 | if (ret) | 86 | goto out; |
87 | goto out; | 87 | *offset = drm_vma_node_offset_addr(&obj->vma_node); |
88 | } | ||
89 | /* GEM should really work out the hash offsets for us */ | ||
90 | *offset = (u64)obj->map_list.hash.key << PAGE_SHIFT; | ||
91 | out: | 88 | out: |
92 | drm_gem_object_unreference(obj); | 89 | drm_gem_object_unreference(obj); |
93 | unlock: | 90 | unlock: |