Skip to content

Commit

Permalink
gma500: Kill spare kref
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Alan Cox authored and Greg Kroah-Hartman committed Jul 5, 2011
1 parent 99d8f03 commit f0017b1
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 37 deletions.
1 change: 0 additions & 1 deletion drivers/staging/gma500/psb_fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,6 @@ static int psbfb_mmap(struct fb_info *info, struct vm_area_struct *vma)
struct psb_fbdev *fbdev = info->par;
struct psb_framebuffer *psbfb = &fbdev->pfb;
char *fb_screen_base = NULL;
struct drm_device *dev = psbfb->base.dev;

if (vma->vm_pgoff != 0)
return -EINVAL;
Expand Down
41 changes: 6 additions & 35 deletions drivers/staging/gma500/psb_gtt.c
Original file line number Diff line number Diff line change
Expand Up @@ -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(&gt->kref);

ret = allocate_resource(dev_priv->gtt_mem, &gt->resource,
len, start, end, PAGE_SIZE, NULL, NULL);
if (ret == 0) {
Expand All @@ -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);
Expand All @@ -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(&gt->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);
Expand Down
1 change: 0 additions & 1 deletion drivers/staging/gma500/psb_gtt.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ extern void psb_gtt_takedown(struct drm_device *dev);
struct gtt_range {
struct resource resource; /* Resource for our allocation */
u32 offset; /* GTT offset of our object */
struct kref kref; /* Can probably go FIXME - GEM kref will do */
struct drm_gem_object gem; /* GEM high level stuff */
int in_gart; /* Currently in the GART (ref ct) */
bool stolen; /* Backed from stolen RAM */
Expand Down

0 comments on commit f0017b1

Please sign in to comment.