Skip to content

Commit

Permalink
gma500: Update the GEM todo
Browse files Browse the repository at this point in the history
We also pull out the undo side of the mmap offset processing so we can later
push it into GEM where it belongs

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Alan Cox authored and Greg Kroah-Hartman committed Jul 5, 2011
1 parent 078d6f7 commit 5338afd
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 14 deletions.
9 changes: 9 additions & 0 deletions drivers/staging/gma500/gem_glue.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,15 @@ int drm_gem_private_object_init(struct drm_device *dev,

void drm_gem_object_release_wrap(struct drm_gem_object *obj)
{
/* Remove the list map if one is present */
if (obj->map_list.map) {
struct drm_gem_mm *mm = obj->dev->mm_private;
struct drm_map_list *list = &obj->map_list;
drm_ht_remove_item(&mm->offset_hash, &list->hash);
drm_mm_put_block(list->file_offset_node);
kfree(list->map);
list->map = NULL;
}
if (obj->filp)
drm_gem_object_release(obj);
}
Expand Down
15 changes: 1 addition & 14 deletions drivers/staging/gma500/psb_gem.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,8 @@
* Authors: Alan Cox
*
* TODO:
* - we don't actually put GEM objects into the GART yet
* - we need to work out if the MMU is relevant as well (eg for
* - we need to work out if the MMU is relevant (eg for
* accelerated operations on a GEM object)
* - cache coherency
*
* ie this is just an initial framework to get us going.
*/

#include <drm/drmP.h>
Expand All @@ -40,15 +36,6 @@ int psb_gem_init_object(struct drm_gem_object *obj)
void psb_gem_free_object(struct drm_gem_object *obj)
{
struct gtt_range *gtt = container_of(obj, struct gtt_range, gem);
if (obj->map_list.map) {
/* Do things GEM should do for us */
struct drm_gem_mm *mm = obj->dev->mm_private;
struct drm_map_list *list = &obj->map_list;
drm_ht_remove_item(&mm->offset_hash, &list->hash);
drm_mm_put_block(list->file_offset_node);
kfree(list->map);
list->map = NULL;
}
drm_gem_object_release_wrap(obj);
/* This must occur last as it frees up the memory of the GEM object */
psb_gtt_free_range(obj->dev, gtt);
Expand Down

0 comments on commit 5338afd

Please sign in to comment.