[PATCH v3 03/28] drm/armada: switch to drm_*_get(), drm_*_put() helpers

Russell King - ARM Linux linux at armlinux.org.uk
Thu Aug 17 09:13:07 UTC 2017


On Fri, Aug 11, 2017 at 03:32:49PM +0300, Cihangir Akturk wrote:
> Use drm_*_get() and drm_*_put() helpers instead of drm_*_reference()
> and drm_*_unreference() helpers.
> 
> drm_*_reference() and drm_*_unreference() functions are just
> compatibility alias for drm_*_get() and drm_*_put() and should not be
> used by new code. So convert all users of compatibility functions to
> use the new APIs.

This looks trivial - provided drm-misc has no conflicts, I'm happy for
it to be applied there.  Thanks.

Acked-by: Russell King <rmk+kernel at armlinux.org.uk>

> 
> Generated by: scripts/coccinelle/api/drm-get-put.cocci
> 
> Signed-off-by: Cihangir Akturk <cakturk at gmail.com>
> ---
>  drivers/gpu/drm/armada/armada_crtc.c    | 22 +++++++++++-----------
>  drivers/gpu/drm/armada/armada_drv.c     |  2 +-
>  drivers/gpu/drm/armada/armada_fb.c      |  8 ++++----
>  drivers/gpu/drm/armada/armada_fbdev.c   |  6 +++---
>  drivers/gpu/drm/armada/armada_gem.c     | 14 +++++++-------
>  drivers/gpu/drm/armada/armada_overlay.c |  4 ++--
>  6 files changed, 28 insertions(+), 28 deletions(-)
> 
> diff --git a/drivers/gpu/drm/armada/armada_crtc.c b/drivers/gpu/drm/armada/armada_crtc.c
> index 2a4d163..2e065fa 100644
> --- a/drivers/gpu/drm/armada/armada_crtc.c
> +++ b/drivers/gpu/drm/armada/armada_crtc.c
> @@ -298,7 +298,7 @@ static void armada_drm_crtc_finish_fb(struct armada_crtc *dcrtc,
>  
>  	if (force) {
>  		/* Display is disabled, so just drop the old fb */
> -		drm_framebuffer_unreference(fb);
> +		drm_framebuffer_put(fb);
>  		return;
>  	}
>  
> @@ -321,7 +321,7 @@ static void armada_drm_crtc_finish_fb(struct armada_crtc *dcrtc,
>  	 * the best.  The worst that will happen is the buffer gets
>  	 * reused before it has finished being displayed.
>  	 */
> -	drm_framebuffer_unreference(fb);
> +	drm_framebuffer_put(fb);
>  }
>  
>  static void armada_drm_vblank_off(struct armada_crtc *dcrtc)
> @@ -577,7 +577,7 @@ static int armada_drm_crtc_mode_set(struct drm_crtc *crtc,
>  	unsigned i;
>  	bool interlaced;
>  
> -	drm_framebuffer_reference(crtc->primary->fb);
> +	drm_framebuffer_get(crtc->primary->fb);
>  
>  	interlaced = !!(adj->flags & DRM_MODE_FLAG_INTERLACE);
>  
> @@ -718,7 +718,7 @@ static int armada_drm_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,
>  				   MAX_SCHEDULE_TIMEOUT);
>  
>  	/* Take a reference to the new fb as we're using it */
> -	drm_framebuffer_reference(crtc->primary->fb);
> +	drm_framebuffer_get(crtc->primary->fb);
>  
>  	/* Update the base in the CRTC */
>  	armada_drm_crtc_update_regs(dcrtc, regs);
> @@ -742,7 +742,7 @@ void armada_drm_crtc_plane_disable(struct armada_crtc *dcrtc,
>  	 * primary plane.
>  	 */
>  	if (plane->fb)
> -		drm_framebuffer_unreference(plane->fb);
> +		drm_framebuffer_put(plane->fb);
>  
>  	/* Power down the Y/U/V FIFOs */
>  	sram_para1 = CFG_PDWN16x66 | CFG_PDWN32x66;
> @@ -947,13 +947,13 @@ static int armada_drm_crtc_cursor_set(struct drm_crtc *crtc,
>  
>  		/* Must be a kernel-mapped object */
>  		if (!obj->addr) {
> -			drm_gem_object_unreference_unlocked(&obj->obj);
> +			drm_gem_object_put_unlocked(&obj->obj);
>  			return -EINVAL;
>  		}
>  
>  		if (obj->obj.size < w * h * 4) {
>  			DRM_ERROR("buffer is too small\n");
> -			drm_gem_object_unreference_unlocked(&obj->obj);
> +			drm_gem_object_put_unlocked(&obj->obj);
>  			return -ENOMEM;
>  		}
>  	}
> @@ -961,7 +961,7 @@ static int armada_drm_crtc_cursor_set(struct drm_crtc *crtc,
>  	if (dcrtc->cursor_obj) {
>  		dcrtc->cursor_obj->update = NULL;
>  		dcrtc->cursor_obj->update_data = NULL;
> -		drm_gem_object_unreference_unlocked(&dcrtc->cursor_obj->obj);
> +		drm_gem_object_put_unlocked(&dcrtc->cursor_obj->obj);
>  	}
>  	dcrtc->cursor_obj = obj;
>  	dcrtc->cursor_w = w;
> @@ -997,7 +997,7 @@ static void armada_drm_crtc_destroy(struct drm_crtc *crtc)
>  	struct armada_private *priv = crtc->dev->dev_private;
>  
>  	if (dcrtc->cursor_obj)
> -		drm_gem_object_unreference_unlocked(&dcrtc->cursor_obj->obj);
> +		drm_gem_object_put_unlocked(&dcrtc->cursor_obj->obj);
>  
>  	priv->dcrtc[dcrtc->num] = NULL;
>  	drm_crtc_cleanup(&dcrtc->crtc);
> @@ -1045,12 +1045,12 @@ static int armada_drm_crtc_page_flip(struct drm_crtc *crtc,
>  	 * Ensure that we hold a reference on the new framebuffer.
>  	 * This has to match the behaviour in mode_set.
>  	 */
> -	drm_framebuffer_reference(fb);
> +	drm_framebuffer_get(fb);
>  
>  	ret = armada_drm_crtc_queue_frame_work(dcrtc, work);
>  	if (ret) {
>  		/* Undo our reference above */
> -		drm_framebuffer_unreference(fb);
> +		drm_framebuffer_put(fb);
>  		kfree(work);
>  		return ret;
>  	}
> diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c
> index 0b3227c..c993bcc 100644
> --- a/drivers/gpu/drm/armada/armada_drv.c
> +++ b/drivers/gpu/drm/armada/armada_drv.c
> @@ -26,7 +26,7 @@ static void armada_drm_unref_work(struct work_struct *work)
>  	struct drm_framebuffer *fb;
>  
>  	while (kfifo_get(&priv->fb_unref, &fb))
> -		drm_framebuffer_unreference(fb);
> +		drm_framebuffer_put(fb);
>  }
>  
>  /* Must be called with dev->event_lock held */
> diff --git a/drivers/gpu/drm/armada/armada_fb.c b/drivers/gpu/drm/armada/armada_fb.c
> index 92e6b08..51839c1 100644
> --- a/drivers/gpu/drm/armada/armada_fb.c
> +++ b/drivers/gpu/drm/armada/armada_fb.c
> @@ -18,7 +18,7 @@ static void armada_fb_destroy(struct drm_framebuffer *fb)
>  	struct armada_framebuffer *dfb = drm_fb_to_armada_fb(fb);
>  
>  	drm_framebuffer_cleanup(&dfb->fb);
> -	drm_gem_object_unreference_unlocked(&dfb->obj->obj);
> +	drm_gem_object_put_unlocked(&dfb->obj->obj);
>  	kfree(dfb);
>  }
>  
> @@ -95,7 +95,7 @@ struct armada_framebuffer *armada_framebuffer_create(struct drm_device *dev,
>  	 * the above call, but the caller will drop their reference
>  	 * to it.  Hence we need to take our own reference.
>  	 */
> -	drm_gem_object_reference(&obj->obj);
> +	drm_gem_object_get(&obj->obj);
>  
>  	return dfb;
>  }
> @@ -144,12 +144,12 @@ static struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
>  		goto err;
>  	}
>  
> -	drm_gem_object_unreference_unlocked(&obj->obj);
> +	drm_gem_object_put_unlocked(&obj->obj);
>  
>  	return &dfb->fb;
>  
>   err_unref:
> -	drm_gem_object_unreference_unlocked(&obj->obj);
> +	drm_gem_object_put_unlocked(&obj->obj);
>   err:
>  	DRM_ERROR("failed to initialize framebuffer: %d\n", ret);
>  	return ERR_PTR(ret);
> diff --git a/drivers/gpu/drm/armada/armada_fbdev.c b/drivers/gpu/drm/armada/armada_fbdev.c
> index 29c7d04..cf6bad1 100644
> --- a/drivers/gpu/drm/armada/armada_fbdev.c
> +++ b/drivers/gpu/drm/armada/armada_fbdev.c
> @@ -52,13 +52,13 @@ static int armada_fb_create(struct drm_fb_helper *fbh,
>  
>  	ret = armada_gem_linear_back(dev, obj);
>  	if (ret) {
> -		drm_gem_object_unreference_unlocked(&obj->obj);
> +		drm_gem_object_put_unlocked(&obj->obj);
>  		return ret;
>  	}
>  
>  	ptr = armada_gem_map_object(dev, obj);
>  	if (!ptr) {
> -		drm_gem_object_unreference_unlocked(&obj->obj);
> +		drm_gem_object_put_unlocked(&obj->obj);
>  		return -ENOMEM;
>  	}
>  
> @@ -68,7 +68,7 @@ static int armada_fb_create(struct drm_fb_helper *fbh,
>  	 * A reference is now held by the framebuffer object if
>  	 * successful, otherwise this drops the ref for the error path.
>  	 */
> -	drm_gem_object_unreference_unlocked(&obj->obj);
> +	drm_gem_object_put_unlocked(&obj->obj);
>  
>  	if (IS_ERR(dfb))
>  		return PTR_ERR(dfb);
> diff --git a/drivers/gpu/drm/armada/armada_gem.c b/drivers/gpu/drm/armada/armada_gem.c
> index a76ca21..49d40aa 100644
> --- a/drivers/gpu/drm/armada/armada_gem.c
> +++ b/drivers/gpu/drm/armada/armada_gem.c
> @@ -266,7 +266,7 @@ int armada_gem_dumb_create(struct drm_file *file, struct drm_device *dev,
>  	/* drop reference from allocate - handle holds it now */
>  	DRM_DEBUG_DRIVER("obj %p size %zu handle %#x\n", dobj, size, handle);
>   err:
> -	drm_gem_object_unreference_unlocked(&dobj->obj);
> +	drm_gem_object_put_unlocked(&dobj->obj);
>  	return ret;
>  }
>  
> @@ -295,7 +295,7 @@ int armada_gem_dumb_map_offset(struct drm_file *file, struct drm_device *dev,
>  	}
>  
>   err_unref:
> -	drm_gem_object_unreference_unlocked(&obj->obj);
> +	drm_gem_object_put_unlocked(&obj->obj);
>  
>  	return ret;
>  }
> @@ -334,7 +334,7 @@ int armada_gem_create_ioctl(struct drm_device *dev, void *data,
>  	/* drop reference from allocate - handle holds it now */
>  	DRM_DEBUG_DRIVER("obj %p size %zu handle %#x\n", dobj, size, handle);
>   err:
> -	drm_gem_object_unreference_unlocked(&dobj->obj);
> +	drm_gem_object_put_unlocked(&dobj->obj);
>  	return ret;
>  }
>  
> @@ -351,13 +351,13 @@ int armada_gem_mmap_ioctl(struct drm_device *dev, void *data,
>  		return -ENOENT;
>  
>  	if (!dobj->obj.filp) {
> -		drm_gem_object_unreference_unlocked(&dobj->obj);
> +		drm_gem_object_put_unlocked(&dobj->obj);
>  		return -EINVAL;
>  	}
>  
>  	addr = vm_mmap(dobj->obj.filp, 0, args->size, PROT_READ | PROT_WRITE,
>  		       MAP_SHARED, args->offset);
> -	drm_gem_object_unreference_unlocked(&dobj->obj);
> +	drm_gem_object_put_unlocked(&dobj->obj);
>  	if (IS_ERR_VALUE(addr))
>  		return addr;
>  
> @@ -412,7 +412,7 @@ int armada_gem_pwrite_ioctl(struct drm_device *dev, void *data,
>  	}
>  
>   unref:
> -	drm_gem_object_unreference_unlocked(&dobj->obj);
> +	drm_gem_object_put_unlocked(&dobj->obj);
>  	return ret;
>  }
>  
> @@ -561,7 +561,7 @@ armada_gem_prime_import(struct drm_device *dev, struct dma_buf *buf)
>  			 * Importing our own dmabuf(s) increases the
>  			 * refcount on the gem object itself.
>  			 */
> -			drm_gem_object_reference(obj);
> +			drm_gem_object_get(obj);
>  			return obj;
>  		}
>  	}
> diff --git a/drivers/gpu/drm/armada/armada_overlay.c b/drivers/gpu/drm/armada/armada_overlay.c
> index edc4491..b411b60 100644
> --- a/drivers/gpu/drm/armada/armada_overlay.c
> +++ b/drivers/gpu/drm/armada/armada_overlay.c
> @@ -177,7 +177,7 @@ armada_ovl_plane_update(struct drm_plane *plane, struct drm_crtc *crtc,
>  		 * Take a reference on the new framebuffer - we want to
>  		 * hold on to it while the hardware is displaying it.
>  		 */
> -		drm_framebuffer_reference(fb);
> +		drm_framebuffer_get(fb);
>  
>  		if (plane->fb)
>  			armada_ovl_retire_fb(dplane, plane->fb);
> @@ -278,7 +278,7 @@ static int armada_ovl_plane_disable(struct drm_plane *plane,
>  
>  	fb = xchg(&dplane->old_fb, NULL);
>  	if (fb)
> -		drm_framebuffer_unreference(fb);
> +		drm_framebuffer_put(fb);
>  
>  	return 0;
>  }
> -- 
> 2.7.4
> 

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
According to speedtest.net: 8.21Mbps down 510kbps up


More information about the dri-devel mailing list