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

From: Russell King - ARM Linux
Date: Thu Aug 17 2017 - 05:13:25 EST


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@xxxxxxxxxxxxxxx>

>
> Generated by: scripts/coccinelle/api/drm-get-put.cocci
>
> Signed-off-by: Cihangir Akturk <cakturk@xxxxxxxxx>
> ---
> 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