Commit f0017b10 authored by Alan Cox's avatar Alan Cox Committed by Greg Kroah-Hartman

gma500: Kill spare kref

We are using the underlying kref in the GEM object so we don't need our own
Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 99d8f034
...@@ -231,7 +231,6 @@ static int psbfb_mmap(struct fb_info *info, struct vm_area_struct *vma) ...@@ -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_fbdev *fbdev = info->par;
struct psb_framebuffer *psbfb = &fbdev->pfb; struct psb_framebuffer *psbfb = &fbdev->pfb;
char *fb_screen_base = NULL; char *fb_screen_base = NULL;
struct drm_device *dev = psbfb->base.dev;
if (vma->vm_pgoff != 0) if (vma->vm_pgoff != 0)
return -EINVAL; return -EINVAL;
......
...@@ -303,8 +303,6 @@ struct gtt_range *psb_gtt_alloc_range(struct drm_device *dev, int len, ...@@ -303,8 +303,6 @@ struct gtt_range *psb_gtt_alloc_range(struct drm_device *dev, int len,
gt->in_gart = backed; gt->in_gart = backed;
/* Ensure this is set for non GEM objects */ /* Ensure this is set for non GEM objects */
gt->gem.dev = dev; gt->gem.dev = dev;
kref_init(&gt->kref);
ret = allocate_resource(dev_priv->gtt_mem, &gt->resource, ret = allocate_resource(dev_priv->gtt_mem, &gt->resource,
len, start, end, PAGE_SIZE, NULL, NULL); len, start, end, PAGE_SIZE, NULL, NULL);
if (ret == 0) { if (ret == 0) {
...@@ -316,18 +314,15 @@ struct gtt_range *psb_gtt_alloc_range(struct drm_device *dev, int len, ...@@ -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 * psb_gtt_free_range - release GTT address space
* @kref: the kref of the gtt * @dev: our DRM device
* * @gt: a mapping created with psb_gtt_alloc_range
* 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.
* *
* 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 */ /* Undo the mmap pin if we are destroying the object */
if (gt->mmapping) { if (gt->mmapping) {
psb_gtt_unpin(gt); psb_gtt_unpin(gt);
...@@ -338,30 +333,6 @@ static void psb_gtt_destroy(struct kref *kref) ...@@ -338,30 +333,6 @@ static void psb_gtt_destroy(struct kref *kref)
kfree(gt); 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 *psb_gtt_alloc(struct drm_device *dev)
{ {
struct psb_gtt *tmp = kzalloc(sizeof(*tmp), GFP_KERNEL); struct psb_gtt *tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
......
...@@ -44,7 +44,6 @@ extern void psb_gtt_takedown(struct drm_device *dev); ...@@ -44,7 +44,6 @@ extern void psb_gtt_takedown(struct drm_device *dev);
struct gtt_range { struct gtt_range {
struct resource resource; /* Resource for our allocation */ struct resource resource; /* Resource for our allocation */
u32 offset; /* GTT offset of our object */ 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 */ struct drm_gem_object gem; /* GEM high level stuff */
int in_gart; /* Currently in the GART (ref ct) */ int in_gart; /* Currently in the GART (ref ct) */
bool stolen; /* Backed from stolen RAM */ bool stolen; /* Backed from stolen RAM */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment