From 71a96ffcb0dec1a9c3f167d7bb40046a6764870d Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Tue, 5 Jul 2011 15:35:55 +0100 Subject: [PATCH] --- yaml --- r: 259665 b: refs/heads/master c: 635816e1b87923f6715b8eec412c5eb32506805f h: refs/heads/master i: 259663: a177ff4a5f55c8575f043d26d64eb5f05dc99d5c v: v3 --- [refs] | 2 +- trunk/drivers/staging/gma500/Makefile | 3 +- trunk/drivers/staging/gma500/gem_glue.c | 47 +++++++++++++++++++++++++ trunk/drivers/staging/gma500/gem_glue.h | 4 +++ 4 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 trunk/drivers/staging/gma500/gem_glue.c create mode 100644 trunk/drivers/staging/gma500/gem_glue.h diff --git a/[refs] b/[refs] index 236fd5872d13..01322c4f5fd7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f0017b10499f1074d3b3c9a438bc9150940d9dc9 +refs/heads/master: 635816e1b87923f6715b8eec412c5eb32506805f diff --git a/trunk/drivers/staging/gma500/Makefile b/trunk/drivers/staging/gma500/Makefile index db73ec6d8128..01aaa28a6771 100644 --- a/trunk/drivers/staging/gma500/Makefile +++ b/trunk/drivers/staging/gma500/Makefile @@ -3,7 +3,8 @@ # ccflags-y += -Iinclude/drm -psb_gfx-y += psb_bl.o \ +psb_gfx-y += gem_glue.o \ + psb_bl.o \ psb_drv.o \ psb_gem.o \ psb_fb.o \ diff --git a/trunk/drivers/staging/gma500/gem_glue.c b/trunk/drivers/staging/gma500/gem_glue.c new file mode 100644 index 000000000000..08174973008c --- /dev/null +++ b/trunk/drivers/staging/gma500/gem_glue.c @@ -0,0 +1,47 @@ +/************************************************************************** + * Copyright (c) 2011, Intel Corporation. + * All Rights Reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * + **************************************************************************/ + +#include +#include + +/** + * Initialize an already allocated GEM object of the specified size with + * no GEM provided backing store. Instead the caller is responsible for + * backing the object and handling it. + */ +int drm_gem_private_object_init(struct drm_device *dev, + struct drm_gem_object *obj, size_t size) +{ + BUG_ON((size & (PAGE_SIZE - 1)) != 0); + + obj->dev = dev; + obj->filp = NULL; + + kref_init(&obj->refcount); + atomic_set(&obj->handle_count, 0); + obj->size = size; + + return 0; +} + +void drm_gem_object_release_wrap(struct drm_gem_object *obj) +{ + if (obj->filp) + drm_gem_object_release(obj); +} diff --git a/trunk/drivers/staging/gma500/gem_glue.h b/trunk/drivers/staging/gma500/gem_glue.h new file mode 100644 index 000000000000..c38285b0c839 --- /dev/null +++ b/trunk/drivers/staging/gma500/gem_glue.h @@ -0,0 +1,4 @@ +extern void drm_gem_object_release_wrap(struct drm_gem_object *obj); +extern int drm_gem_private_object_init(struct drm_device *dev, + struct drm_gem_object *obj, size_t size); +