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

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
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -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;
+6 −35
Original line number Diff line number Diff line
@@ -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) {
@@ -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(&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);
+0 −1
Original line number Diff line number Diff line
@@ -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 */