diff options
author | Alan Cox | 2011-07-05 16:35:43 +0200 |
---|---|---|
committer | Greg Kroah-Hartman | 2011-07-05 17:20:38 +0200 |
commit | f0017b10499f1074d3b3c9a438bc9150940d9dc9 (patch) | |
tree | e799639c5d0a0c679aa94dfd58869bebcc447e43 /drivers/staging/gma500/psb_gtt.c | |
parent | gma500: nuke the PSB debug stuff (diff) | |
download | kernel-qcow2-linux-f0017b10499f1074d3b3c9a438bc9150940d9dc9.tar.gz kernel-qcow2-linux-f0017b10499f1074d3b3c9a438bc9150940d9dc9.tar.xz kernel-qcow2-linux-f0017b10499f1074d3b3c9a438bc9150940d9dc9.zip |
gma500: Kill spare kref
We are using the underlying kref in the GEM object so we don't need our own
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/gma500/psb_gtt.c')
-rw-r--r-- | drivers/staging/gma500/psb_gtt.c | 41 |
1 files changed, 6 insertions, 35 deletions
diff --git a/drivers/staging/gma500/psb_gtt.c b/drivers/staging/gma500/psb_gtt.c index 54a93083e976..9da137569139 100644 --- a/drivers/staging/gma500/psb_gtt.c +++ b/drivers/staging/gma500/psb_gtt.c @@ -303,8 +303,6 @@ struct gtt_range *psb_gtt_alloc_range(struct drm_device *dev, int len, gt->in_gart = backed; /* Ensure this is set for non GEM objects */ gt->gem.dev = dev; - kref_init(>->kref); - ret = allocate_resource(dev_priv->gtt_mem, >->resource, len, start, end, PAGE_SIZE, NULL, NULL); if (ret == 0) { @@ -316,18 +314,15 @@ struct gtt_range *psb_gtt_alloc_range(struct drm_device *dev, int len, } /** - * psb_gtt_destroy - final free up of a gtt - * @kref: the kref of the gtt - * - * Called from the kernel kref put when the final reference to our - * GTT object is dropped. At that point we can free up the resources. + * psb_gtt_free_range - release GTT address space + * @dev: our DRM device + * @gt: a mapping created with psb_gtt_alloc_range * - * For now we handle mmap clean up here to work around limits in GEM + * Release a resource that was allocated with psb_gtt_alloc_range. If the object + * has been pinned by mmap users we clean this up here currently. */ -static void psb_gtt_destroy(struct kref *kref) +void psb_gtt_free_range(struct drm_device *dev, struct gtt_range *gt) { - struct gtt_range *gt = container_of(kref, struct gtt_range, kref); - /* Undo the mmap pin if we are destroying the object */ if (gt->mmapping) { psb_gtt_unpin(gt); @@ -338,30 +333,6 @@ static void psb_gtt_destroy(struct kref *kref) kfree(gt); } -/** - * psb_gtt_kref_put - drop reference to a GTT object - * @gt: the GT being dropped - * - * Drop a reference to a psb gtt - */ -void psb_gtt_kref_put(struct gtt_range *gt) -{ - kref_put(>->kref, psb_gtt_destroy); -} - -/** - * psb_gtt_free_range - release GTT address space - * @dev: our DRM device - * @gt: a mapping created with psb_gtt_alloc_range - * - * Release a resource that was allocated with psb_gtt_alloc_range - */ -void psb_gtt_free_range(struct drm_device *dev, struct gtt_range *gt) -{ - psb_gtt_kref_put(gt); -} - - struct psb_gtt *psb_gtt_alloc(struct drm_device *dev) { struct psb_gtt *tmp = kzalloc(sizeof(*tmp), GFP_KERNEL); |