2017-08-03 12:01:39

by Cihangir Akturk

[permalink] [raw]
Subject: [PATCH 12/29] drm/i915: switch to drm_*{get,put} helpers

drm_*_reference() and drm_*_unreference() functions are just
compatibility alias for drm_*_get() and drm_*_put() adn should not be
used by new code. So convert all users of compatibility functions to use
the new APIs.

Signed-off-by: Cihangir Akturk <[email protected]>
---
drivers/gpu/drm/i915/i915_gem_object.h | 10 +++++-----
drivers/gpu/drm/i915/intel_display.c | 24 ++++++++++++------------
drivers/gpu/drm/i915/intel_dp_mst.c | 2 +-
drivers/gpu/drm/i915/intel_fbdev.c | 4 ++--
4 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_object.h b/drivers/gpu/drm/i915/i915_gem_object.h
index 5b19a49..8f6c915 100644
--- a/drivers/gpu/drm/i915/i915_gem_object.h
+++ b/drivers/gpu/drm/i915/i915_gem_object.h
@@ -257,25 +257,25 @@ __attribute__((nonnull))
static inline struct drm_i915_gem_object *
i915_gem_object_get(struct drm_i915_gem_object *obj)
{
- drm_gem_object_reference(&obj->base);
+ drm_gem_object_get(&obj->base);
return obj;
}

__deprecated
-extern void drm_gem_object_reference(struct drm_gem_object *);
+extern void drm_gem_object_get(struct drm_gem_object *);

__attribute__((nonnull))
static inline void
i915_gem_object_put(struct drm_i915_gem_object *obj)
{
- __drm_gem_object_unreference(&obj->base);
+ __drm_gem_object_put(&obj->base);
}

__deprecated
-extern void drm_gem_object_unreference(struct drm_gem_object *);
+extern void drm_gem_object_put(struct drm_gem_object *);

__deprecated
-extern void drm_gem_object_unreference_unlocked(struct drm_gem_object *);
+extern void drm_gem_object_put_unlocked(struct drm_gem_object *);

static inline void i915_gem_object_lock(struct drm_i915_gem_object *obj)
{
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index dec9e58..b4d03cf 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -2672,10 +2672,10 @@ update_state_fb(struct drm_plane *plane)
return;

if (plane->state->fb)
- drm_framebuffer_unreference(plane->state->fb);
+ drm_framebuffer_put(plane->state->fb);
plane->state->fb = plane->fb;
if (plane->state->fb)
- drm_framebuffer_reference(plane->state->fb);
+ drm_framebuffer_get(plane->state->fb);
}

static void
@@ -2746,7 +2746,7 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,

if (intel_plane_ggtt_offset(state) == plane_config->base) {
fb = c->primary->fb;
- drm_framebuffer_reference(fb);
+ drm_framebuffer_get(fb);
goto valid_fb;
}
}
@@ -2777,7 +2777,7 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,
intel_crtc->pipe, PTR_ERR(intel_state->vma));

intel_state->vma = NULL;
- drm_framebuffer_unreference(fb);
+ drm_framebuffer_put(fb);
return;
}

@@ -2798,7 +2798,7 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,
if (i915_gem_object_is_tiled(obj))
dev_priv->preserve_bios_swizzle = true;

- drm_framebuffer_reference(fb);
+ drm_framebuffer_get(fb);
primary->fb = primary->state->fb = fb;
primary->crtc = primary->state->crtc = &intel_crtc->base;

@@ -9668,7 +9668,7 @@ mode_fits_in_fbdev(struct drm_device *dev,
if (obj->base.size < mode->vdisplay * fb->pitches[0])
return NULL;

- drm_framebuffer_reference(fb);
+ drm_framebuffer_get(fb);
return fb;
#else
return NULL;
@@ -9849,7 +9849,7 @@ int intel_get_load_detect_pipe(struct drm_connector *connector,
if (ret)
goto fail;

- drm_framebuffer_unreference(fb);
+ drm_framebuffer_put(fb);

ret = drm_atomic_set_mode_for_crtc(&crtc_state->base, mode);
if (ret)
@@ -10159,7 +10159,7 @@ static void intel_unpin_work_fn(struct work_struct *__work)
intel_frontbuffer_flip_complete(to_i915(dev),
to_intel_plane(primary)->frontbuffer_bit);
intel_fbc_post_update(crtc);
- drm_framebuffer_unreference(work->old_fb);
+ drm_framebuffer_put(work->old_fb);

BUG_ON(atomic_read(&crtc->unpin_work_count) == 0);
atomic_dec(&crtc->unpin_work_count);
@@ -10799,7 +10799,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
flush_workqueue(dev_priv->wq);

/* Reference the objects for the scheduled work. */
- drm_framebuffer_reference(work->old_fb);
+ drm_framebuffer_get(work->old_fb);

crtc->primary->fb = fb;
update_state_fb(crtc->primary);
@@ -10913,7 +10913,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
update_state_fb(crtc->primary);

i915_gem_object_put(obj);
- drm_framebuffer_unreference(work->old_fb);
+ drm_framebuffer_put(work->old_fb);

spin_lock_irq(&dev->event_lock);
intel_crtc->flip_work = NULL;
@@ -11237,7 +11237,7 @@ static void intel_modeset_update_connector_atomic_state(struct drm_device *dev)
drm_connector_list_iter_begin(dev, &conn_iter);
for_each_intel_connector_iter(connector, &conn_iter) {
if (connector->base.state->crtc)
- drm_connector_unreference(&connector->base);
+ drm_connector_put(&connector->base);

if (connector->base.encoder) {
connector->base.state->best_encoder =
@@ -11245,7 +11245,7 @@ static void intel_modeset_update_connector_atomic_state(struct drm_device *dev)
connector->base.state->crtc =
connector->base.encoder->crtc;

- drm_connector_reference(&connector->base);
+ drm_connector_get(&connector->base);
} else {
connector->base.state->best_encoder = NULL;
connector->base.state->crtc = NULL;
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index 2cf046b..b942578 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -524,7 +524,7 @@ static void intel_dp_destroy_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
intel_connector->mst_port = NULL;
drm_modeset_unlock_all(dev);

- drm_connector_unreference(&intel_connector->base);
+ drm_connector_put(&intel_connector->base);
DRM_DEBUG_KMS("\n");
}

diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c
index 0c4cde6..13fbe80 100644
--- a/drivers/gpu/drm/i915/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/intel_fbdev.c
@@ -189,7 +189,7 @@ static int intelfb_create(struct drm_fb_helper *helper,
" releasing it\n",
intel_fb->base.width, intel_fb->base.height,
sizes->fb_width, sizes->fb_height);
- drm_framebuffer_unreference(&intel_fb->base);
+ drm_framebuffer_put(&intel_fb->base);
intel_fb = ifbdev->fb = NULL;
}
if (!intel_fb || WARN_ON(!intel_fb->obj)) {
@@ -650,7 +650,7 @@ static bool intel_fbdev_init_bios(struct drm_device *dev,
ifbdev->preferred_bpp = fb->base.format->cpp[0] * 8;
ifbdev->fb = fb;

- drm_framebuffer_reference(&ifbdev->fb->base);
+ drm_framebuffer_get(&ifbdev->fb->base);

/* Final pass to check if any active pipes don't have fbs */
for_each_crtc(dev, crtc) {
--
2.7.4


2017-08-03 12:21:07

by Jani Nikula

[permalink] [raw]
Subject: Re: [PATCH 12/29] drm/i915: switch to drm_*{get,put} helpers

On Thu, 03 Aug 2017, Cihangir Akturk <[email protected]> wrote:
> drm_*_reference() and drm_*_unreference() functions are just
> compatibility alias for drm_*_get() and drm_*_put() adn should not be
> used by new code. So convert all users of compatibility functions to use
> the new APIs.

Please include the cocci script in the commit message. If you didn't use
cocci, you should check it out! :)

BR,
Jani.

>
> Signed-off-by: Cihangir Akturk <[email protected]>
> ---
> drivers/gpu/drm/i915/i915_gem_object.h | 10 +++++-----
> drivers/gpu/drm/i915/intel_display.c | 24 ++++++++++++------------
> drivers/gpu/drm/i915/intel_dp_mst.c | 2 +-
> drivers/gpu/drm/i915/intel_fbdev.c | 4 ++--
> 4 files changed, 20 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_object.h b/drivers/gpu/drm/i915/i915_gem_object.h
> index 5b19a49..8f6c915 100644
> --- a/drivers/gpu/drm/i915/i915_gem_object.h
> +++ b/drivers/gpu/drm/i915/i915_gem_object.h
> @@ -257,25 +257,25 @@ __attribute__((nonnull))
> static inline struct drm_i915_gem_object *
> i915_gem_object_get(struct drm_i915_gem_object *obj)
> {
> - drm_gem_object_reference(&obj->base);
> + drm_gem_object_get(&obj->base);
> return obj;
> }
>
> __deprecated
> -extern void drm_gem_object_reference(struct drm_gem_object *);
> +extern void drm_gem_object_get(struct drm_gem_object *);
>
> __attribute__((nonnull))
> static inline void
> i915_gem_object_put(struct drm_i915_gem_object *obj)
> {
> - __drm_gem_object_unreference(&obj->base);
> + __drm_gem_object_put(&obj->base);
> }
>
> __deprecated
> -extern void drm_gem_object_unreference(struct drm_gem_object *);
> +extern void drm_gem_object_put(struct drm_gem_object *);
>
> __deprecated
> -extern void drm_gem_object_unreference_unlocked(struct drm_gem_object *);
> +extern void drm_gem_object_put_unlocked(struct drm_gem_object *);
>
> static inline void i915_gem_object_lock(struct drm_i915_gem_object *obj)
> {
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index dec9e58..b4d03cf 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -2672,10 +2672,10 @@ update_state_fb(struct drm_plane *plane)
> return;
>
> if (plane->state->fb)
> - drm_framebuffer_unreference(plane->state->fb);
> + drm_framebuffer_put(plane->state->fb);
> plane->state->fb = plane->fb;
> if (plane->state->fb)
> - drm_framebuffer_reference(plane->state->fb);
> + drm_framebuffer_get(plane->state->fb);
> }
>
> static void
> @@ -2746,7 +2746,7 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,
>
> if (intel_plane_ggtt_offset(state) == plane_config->base) {
> fb = c->primary->fb;
> - drm_framebuffer_reference(fb);
> + drm_framebuffer_get(fb);
> goto valid_fb;
> }
> }
> @@ -2777,7 +2777,7 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,
> intel_crtc->pipe, PTR_ERR(intel_state->vma));
>
> intel_state->vma = NULL;
> - drm_framebuffer_unreference(fb);
> + drm_framebuffer_put(fb);
> return;
> }
>
> @@ -2798,7 +2798,7 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,
> if (i915_gem_object_is_tiled(obj))
> dev_priv->preserve_bios_swizzle = true;
>
> - drm_framebuffer_reference(fb);
> + drm_framebuffer_get(fb);
> primary->fb = primary->state->fb = fb;
> primary->crtc = primary->state->crtc = &intel_crtc->base;
>
> @@ -9668,7 +9668,7 @@ mode_fits_in_fbdev(struct drm_device *dev,
> if (obj->base.size < mode->vdisplay * fb->pitches[0])
> return NULL;
>
> - drm_framebuffer_reference(fb);
> + drm_framebuffer_get(fb);
> return fb;
> #else
> return NULL;
> @@ -9849,7 +9849,7 @@ int intel_get_load_detect_pipe(struct drm_connector *connector,
> if (ret)
> goto fail;
>
> - drm_framebuffer_unreference(fb);
> + drm_framebuffer_put(fb);
>
> ret = drm_atomic_set_mode_for_crtc(&crtc_state->base, mode);
> if (ret)
> @@ -10159,7 +10159,7 @@ static void intel_unpin_work_fn(struct work_struct *__work)
> intel_frontbuffer_flip_complete(to_i915(dev),
> to_intel_plane(primary)->frontbuffer_bit);
> intel_fbc_post_update(crtc);
> - drm_framebuffer_unreference(work->old_fb);
> + drm_framebuffer_put(work->old_fb);
>
> BUG_ON(atomic_read(&crtc->unpin_work_count) == 0);
> atomic_dec(&crtc->unpin_work_count);
> @@ -10799,7 +10799,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
> flush_workqueue(dev_priv->wq);
>
> /* Reference the objects for the scheduled work. */
> - drm_framebuffer_reference(work->old_fb);
> + drm_framebuffer_get(work->old_fb);
>
> crtc->primary->fb = fb;
> update_state_fb(crtc->primary);
> @@ -10913,7 +10913,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
> update_state_fb(crtc->primary);
>
> i915_gem_object_put(obj);
> - drm_framebuffer_unreference(work->old_fb);
> + drm_framebuffer_put(work->old_fb);
>
> spin_lock_irq(&dev->event_lock);
> intel_crtc->flip_work = NULL;
> @@ -11237,7 +11237,7 @@ static void intel_modeset_update_connector_atomic_state(struct drm_device *dev)
> drm_connector_list_iter_begin(dev, &conn_iter);
> for_each_intel_connector_iter(connector, &conn_iter) {
> if (connector->base.state->crtc)
> - drm_connector_unreference(&connector->base);
> + drm_connector_put(&connector->base);
>
> if (connector->base.encoder) {
> connector->base.state->best_encoder =
> @@ -11245,7 +11245,7 @@ static void intel_modeset_update_connector_atomic_state(struct drm_device *dev)
> connector->base.state->crtc =
> connector->base.encoder->crtc;
>
> - drm_connector_reference(&connector->base);
> + drm_connector_get(&connector->base);
> } else {
> connector->base.state->best_encoder = NULL;
> connector->base.state->crtc = NULL;
> diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
> index 2cf046b..b942578 100644
> --- a/drivers/gpu/drm/i915/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/intel_dp_mst.c
> @@ -524,7 +524,7 @@ static void intel_dp_destroy_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
> intel_connector->mst_port = NULL;
> drm_modeset_unlock_all(dev);
>
> - drm_connector_unreference(&intel_connector->base);
> + drm_connector_put(&intel_connector->base);
> DRM_DEBUG_KMS("\n");
> }
>
> diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c
> index 0c4cde6..13fbe80 100644
> --- a/drivers/gpu/drm/i915/intel_fbdev.c
> +++ b/drivers/gpu/drm/i915/intel_fbdev.c
> @@ -189,7 +189,7 @@ static int intelfb_create(struct drm_fb_helper *helper,
> " releasing it\n",
> intel_fb->base.width, intel_fb->base.height,
> sizes->fb_width, sizes->fb_height);
> - drm_framebuffer_unreference(&intel_fb->base);
> + drm_framebuffer_put(&intel_fb->base);
> intel_fb = ifbdev->fb = NULL;
> }
> if (!intel_fb || WARN_ON(!intel_fb->obj)) {
> @@ -650,7 +650,7 @@ static bool intel_fbdev_init_bios(struct drm_device *dev,
> ifbdev->preferred_bpp = fb->base.format->cpp[0] * 8;
> ifbdev->fb = fb;
>
> - drm_framebuffer_reference(&ifbdev->fb->base);
> + drm_framebuffer_get(&ifbdev->fb->base);
>
> /* Final pass to check if any active pipes don't have fbs */
> for_each_crtc(dev, crtc) {

--
Jani Nikula, Intel Open Source Technology Center

2017-08-03 12:49:10

by Daniel Vetter

[permalink] [raw]
Subject: Re: [PATCH 12/29] drm/i915: switch to drm_*{get,put} helpers

On Thu, Aug 03, 2017 at 03:26:01PM +0300, Jani Nikula wrote:
> On Thu, 03 Aug 2017, Cihangir Akturk <[email protected]> wrote:
> > drm_*_reference() and drm_*_unreference() functions are just
> > compatibility alias for drm_*_get() and drm_*_put() adn should not be
> > used by new code. So convert all users of compatibility functions to use
> > the new APIs.
>
> Please include the cocci script in the commit message. If you didn't use
> cocci, you should check it out! :)

Yeah I assume you've created these with spatch/cocci, not with your own
script. I trust cocci a lot more than any kind of scripting, and the
coccie patch is already in there kernel (the commits you've cited in the
cover letter contain it iirc).

Thanks, Daniel
>
> BR,
> Jani.
>
> >
> > Signed-off-by: Cihangir Akturk <[email protected]>
> > ---
> > drivers/gpu/drm/i915/i915_gem_object.h | 10 +++++-----
> > drivers/gpu/drm/i915/intel_display.c | 24 ++++++++++++------------
> > drivers/gpu/drm/i915/intel_dp_mst.c | 2 +-
> > drivers/gpu/drm/i915/intel_fbdev.c | 4 ++--
> > 4 files changed, 20 insertions(+), 20 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_gem_object.h b/drivers/gpu/drm/i915/i915_gem_object.h
> > index 5b19a49..8f6c915 100644
> > --- a/drivers/gpu/drm/i915/i915_gem_object.h
> > +++ b/drivers/gpu/drm/i915/i915_gem_object.h
> > @@ -257,25 +257,25 @@ __attribute__((nonnull))
> > static inline struct drm_i915_gem_object *
> > i915_gem_object_get(struct drm_i915_gem_object *obj)
> > {
> > - drm_gem_object_reference(&obj->base);
> > + drm_gem_object_get(&obj->base);
> > return obj;
> > }
> >
> > __deprecated
> > -extern void drm_gem_object_reference(struct drm_gem_object *);
> > +extern void drm_gem_object_get(struct drm_gem_object *);
> >
> > __attribute__((nonnull))
> > static inline void
> > i915_gem_object_put(struct drm_i915_gem_object *obj)
> > {
> > - __drm_gem_object_unreference(&obj->base);
> > + __drm_gem_object_put(&obj->base);
> > }
> >
> > __deprecated
> > -extern void drm_gem_object_unreference(struct drm_gem_object *);
> > +extern void drm_gem_object_put(struct drm_gem_object *);
> >
> > __deprecated
> > -extern void drm_gem_object_unreference_unlocked(struct drm_gem_object *);
> > +extern void drm_gem_object_put_unlocked(struct drm_gem_object *);
> >
> > static inline void i915_gem_object_lock(struct drm_i915_gem_object *obj)
> > {
> > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> > index dec9e58..b4d03cf 100644
> > --- a/drivers/gpu/drm/i915/intel_display.c
> > +++ b/drivers/gpu/drm/i915/intel_display.c
> > @@ -2672,10 +2672,10 @@ update_state_fb(struct drm_plane *plane)
> > return;
> >
> > if (plane->state->fb)
> > - drm_framebuffer_unreference(plane->state->fb);
> > + drm_framebuffer_put(plane->state->fb);
> > plane->state->fb = plane->fb;
> > if (plane->state->fb)
> > - drm_framebuffer_reference(plane->state->fb);
> > + drm_framebuffer_get(plane->state->fb);
> > }
> >
> > static void
> > @@ -2746,7 +2746,7 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,
> >
> > if (intel_plane_ggtt_offset(state) == plane_config->base) {
> > fb = c->primary->fb;
> > - drm_framebuffer_reference(fb);
> > + drm_framebuffer_get(fb);
> > goto valid_fb;
> > }
> > }
> > @@ -2777,7 +2777,7 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,
> > intel_crtc->pipe, PTR_ERR(intel_state->vma));
> >
> > intel_state->vma = NULL;
> > - drm_framebuffer_unreference(fb);
> > + drm_framebuffer_put(fb);
> > return;
> > }
> >
> > @@ -2798,7 +2798,7 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,
> > if (i915_gem_object_is_tiled(obj))
> > dev_priv->preserve_bios_swizzle = true;
> >
> > - drm_framebuffer_reference(fb);
> > + drm_framebuffer_get(fb);
> > primary->fb = primary->state->fb = fb;
> > primary->crtc = primary->state->crtc = &intel_crtc->base;
> >
> > @@ -9668,7 +9668,7 @@ mode_fits_in_fbdev(struct drm_device *dev,
> > if (obj->base.size < mode->vdisplay * fb->pitches[0])
> > return NULL;
> >
> > - drm_framebuffer_reference(fb);
> > + drm_framebuffer_get(fb);
> > return fb;
> > #else
> > return NULL;
> > @@ -9849,7 +9849,7 @@ int intel_get_load_detect_pipe(struct drm_connector *connector,
> > if (ret)
> > goto fail;
> >
> > - drm_framebuffer_unreference(fb);
> > + drm_framebuffer_put(fb);
> >
> > ret = drm_atomic_set_mode_for_crtc(&crtc_state->base, mode);
> > if (ret)
> > @@ -10159,7 +10159,7 @@ static void intel_unpin_work_fn(struct work_struct *__work)
> > intel_frontbuffer_flip_complete(to_i915(dev),
> > to_intel_plane(primary)->frontbuffer_bit);
> > intel_fbc_post_update(crtc);
> > - drm_framebuffer_unreference(work->old_fb);
> > + drm_framebuffer_put(work->old_fb);
> >
> > BUG_ON(atomic_read(&crtc->unpin_work_count) == 0);
> > atomic_dec(&crtc->unpin_work_count);
> > @@ -10799,7 +10799,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
> > flush_workqueue(dev_priv->wq);
> >
> > /* Reference the objects for the scheduled work. */
> > - drm_framebuffer_reference(work->old_fb);
> > + drm_framebuffer_get(work->old_fb);
> >
> > crtc->primary->fb = fb;
> > update_state_fb(crtc->primary);
> > @@ -10913,7 +10913,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
> > update_state_fb(crtc->primary);
> >
> > i915_gem_object_put(obj);
> > - drm_framebuffer_unreference(work->old_fb);
> > + drm_framebuffer_put(work->old_fb);
> >
> > spin_lock_irq(&dev->event_lock);
> > intel_crtc->flip_work = NULL;
> > @@ -11237,7 +11237,7 @@ static void intel_modeset_update_connector_atomic_state(struct drm_device *dev)
> > drm_connector_list_iter_begin(dev, &conn_iter);
> > for_each_intel_connector_iter(connector, &conn_iter) {
> > if (connector->base.state->crtc)
> > - drm_connector_unreference(&connector->base);
> > + drm_connector_put(&connector->base);
> >
> > if (connector->base.encoder) {
> > connector->base.state->best_encoder =
> > @@ -11245,7 +11245,7 @@ static void intel_modeset_update_connector_atomic_state(struct drm_device *dev)
> > connector->base.state->crtc =
> > connector->base.encoder->crtc;
> >
> > - drm_connector_reference(&connector->base);
> > + drm_connector_get(&connector->base);
> > } else {
> > connector->base.state->best_encoder = NULL;
> > connector->base.state->crtc = NULL;
> > diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
> > index 2cf046b..b942578 100644
> > --- a/drivers/gpu/drm/i915/intel_dp_mst.c
> > +++ b/drivers/gpu/drm/i915/intel_dp_mst.c
> > @@ -524,7 +524,7 @@ static void intel_dp_destroy_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
> > intel_connector->mst_port = NULL;
> > drm_modeset_unlock_all(dev);
> >
> > - drm_connector_unreference(&intel_connector->base);
> > + drm_connector_put(&intel_connector->base);
> > DRM_DEBUG_KMS("\n");
> > }
> >
> > diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c
> > index 0c4cde6..13fbe80 100644
> > --- a/drivers/gpu/drm/i915/intel_fbdev.c
> > +++ b/drivers/gpu/drm/i915/intel_fbdev.c
> > @@ -189,7 +189,7 @@ static int intelfb_create(struct drm_fb_helper *helper,
> > " releasing it\n",
> > intel_fb->base.width, intel_fb->base.height,
> > sizes->fb_width, sizes->fb_height);
> > - drm_framebuffer_unreference(&intel_fb->base);
> > + drm_framebuffer_put(&intel_fb->base);
> > intel_fb = ifbdev->fb = NULL;
> > }
> > if (!intel_fb || WARN_ON(!intel_fb->obj)) {
> > @@ -650,7 +650,7 @@ static bool intel_fbdev_init_bios(struct drm_device *dev,
> > ifbdev->preferred_bpp = fb->base.format->cpp[0] * 8;
> > ifbdev->fb = fb;
> >
> > - drm_framebuffer_reference(&ifbdev->fb->base);
> > + drm_framebuffer_get(&ifbdev->fb->base);
> >
> > /* Final pass to check if any active pipes don't have fbs */
> > for_each_crtc(dev, crtc) {
>
> --
> Jani Nikula, Intel Open Source Technology Center
> _______________________________________________
> dri-devel mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

2017-08-03 15:36:26

by Cihangir Akturk

[permalink] [raw]
Subject: Re: [PATCH 12/29] drm/i915: switch to drm_*{get,put} helpers

On Thu, Aug 03, 2017 at 03:26:01PM +0300, Jani Nikula wrote:
> On Thu, 03 Aug 2017, Cihangir Akturk <[email protected]> wrote:
> > drm_*_reference() and drm_*_unreference() functions are just
> > compatibility alias for drm_*_get() and drm_*_put() adn should not be
> > used by new code. So convert all users of compatibility functions to use
> > the new APIs.
>
> Please include the cocci script in the commit message. If you didn't use
> cocci, you should check it out! :)

Indeed I used a simple shell script, which I included in the cover
letter. But the cover letter doesn't seem to show up in the mailing
list archives for some reason. I think I have done something wrong.

The script I use is like:
path=$1

do_replace() {
local pattern=$1
local replacement=$2

git grep -lw "${pattern}" -- "${path}/*.[hc]" |\
xargs -r sed -i "s/\b$pattern\b/$replacement/g"
}

do_replace drm_mode_object_reference drm_mode_object_get
do_replace drm_mode_object_unreference drm_mode_object_put
do_replace drm_connector_reference drm_connector_get
do_replace drm_connector_unreference drm_connector_put
do_replace drm_framebuffer_reference drm_framebuffer_get
do_replace drm_framebuffer_unreference drm_framebuffer_put
do_replace drm_gem_object_reference drm_gem_object_get
do_replace drm_gem_object_unreference drm_gem_object_put
do_replace __drm_gem_object_unreference __drm_gem_object_put
do_replace drm_gem_object_unreference_unlocked drm_gem_object_put_unlocked
do_replace drm_property_reference_blob drm_property_blob_get
do_replace drm_property_unreference_blob drm_property_blob_put

I had used the coccinelle in report mode for staging tree. It reported
about staging: vboxvideo driver. In this way I saw there is a need to
change to the new APIs.

I used my own script because I haven't used coccinelle in patch mode
before.

>
> BR,
> Jani.
>
> >
> > Signed-off-by: Cihangir Akturk <[email protected]>
> > ---
> > drivers/gpu/drm/i915/i915_gem_object.h | 10 +++++-----
> > drivers/gpu/drm/i915/intel_display.c | 24 ++++++++++++------------
> > drivers/gpu/drm/i915/intel_dp_mst.c | 2 +-
> > drivers/gpu/drm/i915/intel_fbdev.c | 4 ++--
> > 4 files changed, 20 insertions(+), 20 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_gem_object.h b/drivers/gpu/drm/i915/i915_gem_object.h
> > index 5b19a49..8f6c915 100644
> > --- a/drivers/gpu/drm/i915/i915_gem_object.h
> > +++ b/drivers/gpu/drm/i915/i915_gem_object.h
> > @@ -257,25 +257,25 @@ __attribute__((nonnull))
> > static inline struct drm_i915_gem_object *
> > i915_gem_object_get(struct drm_i915_gem_object *obj)
> > {
> > - drm_gem_object_reference(&obj->base);
> > + drm_gem_object_get(&obj->base);
> > return obj;
> > }
> >
> > __deprecated
> > -extern void drm_gem_object_reference(struct drm_gem_object *);
> > +extern void drm_gem_object_get(struct drm_gem_object *);
> >
> > __attribute__((nonnull))
> > static inline void
> > i915_gem_object_put(struct drm_i915_gem_object *obj)
> > {
> > - __drm_gem_object_unreference(&obj->base);
> > + __drm_gem_object_put(&obj->base);
> > }
> >
> > __deprecated
> > -extern void drm_gem_object_unreference(struct drm_gem_object *);
> > +extern void drm_gem_object_put(struct drm_gem_object *);
> >
> > __deprecated
> > -extern void drm_gem_object_unreference_unlocked(struct drm_gem_object *);
> > +extern void drm_gem_object_put_unlocked(struct drm_gem_object *);
> >
> > static inline void i915_gem_object_lock(struct drm_i915_gem_object *obj)
> > {
> > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> > index dec9e58..b4d03cf 100644
> > --- a/drivers/gpu/drm/i915/intel_display.c
> > +++ b/drivers/gpu/drm/i915/intel_display.c
> > @@ -2672,10 +2672,10 @@ update_state_fb(struct drm_plane *plane)
> > return;
> >
> > if (plane->state->fb)
> > - drm_framebuffer_unreference(plane->state->fb);
> > + drm_framebuffer_put(plane->state->fb);
> > plane->state->fb = plane->fb;
> > if (plane->state->fb)
> > - drm_framebuffer_reference(plane->state->fb);
> > + drm_framebuffer_get(plane->state->fb);
> > }
> >
> > static void
> > @@ -2746,7 +2746,7 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,
> >
> > if (intel_plane_ggtt_offset(state) == plane_config->base) {
> > fb = c->primary->fb;
> > - drm_framebuffer_reference(fb);
> > + drm_framebuffer_get(fb);
> > goto valid_fb;
> > }
> > }
> > @@ -2777,7 +2777,7 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,
> > intel_crtc->pipe, PTR_ERR(intel_state->vma));
> >
> > intel_state->vma = NULL;
> > - drm_framebuffer_unreference(fb);
> > + drm_framebuffer_put(fb);
> > return;
> > }
> >
> > @@ -2798,7 +2798,7 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc,
> > if (i915_gem_object_is_tiled(obj))
> > dev_priv->preserve_bios_swizzle = true;
> >
> > - drm_framebuffer_reference(fb);
> > + drm_framebuffer_get(fb);
> > primary->fb = primary->state->fb = fb;
> > primary->crtc = primary->state->crtc = &intel_crtc->base;
> >
> > @@ -9668,7 +9668,7 @@ mode_fits_in_fbdev(struct drm_device *dev,
> > if (obj->base.size < mode->vdisplay * fb->pitches[0])
> > return NULL;
> >
> > - drm_framebuffer_reference(fb);
> > + drm_framebuffer_get(fb);
> > return fb;
> > #else
> > return NULL;
> > @@ -9849,7 +9849,7 @@ int intel_get_load_detect_pipe(struct drm_connector *connector,
> > if (ret)
> > goto fail;
> >
> > - drm_framebuffer_unreference(fb);
> > + drm_framebuffer_put(fb);
> >
> > ret = drm_atomic_set_mode_for_crtc(&crtc_state->base, mode);
> > if (ret)
> > @@ -10159,7 +10159,7 @@ static void intel_unpin_work_fn(struct work_struct *__work)
> > intel_frontbuffer_flip_complete(to_i915(dev),
> > to_intel_plane(primary)->frontbuffer_bit);
> > intel_fbc_post_update(crtc);
> > - drm_framebuffer_unreference(work->old_fb);
> > + drm_framebuffer_put(work->old_fb);
> >
> > BUG_ON(atomic_read(&crtc->unpin_work_count) == 0);
> > atomic_dec(&crtc->unpin_work_count);
> > @@ -10799,7 +10799,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
> > flush_workqueue(dev_priv->wq);
> >
> > /* Reference the objects for the scheduled work. */
> > - drm_framebuffer_reference(work->old_fb);
> > + drm_framebuffer_get(work->old_fb);
> >
> > crtc->primary->fb = fb;
> > update_state_fb(crtc->primary);
> > @@ -10913,7 +10913,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
> > update_state_fb(crtc->primary);
> >
> > i915_gem_object_put(obj);
> > - drm_framebuffer_unreference(work->old_fb);
> > + drm_framebuffer_put(work->old_fb);
> >
> > spin_lock_irq(&dev->event_lock);
> > intel_crtc->flip_work = NULL;
> > @@ -11237,7 +11237,7 @@ static void intel_modeset_update_connector_atomic_state(struct drm_device *dev)
> > drm_connector_list_iter_begin(dev, &conn_iter);
> > for_each_intel_connector_iter(connector, &conn_iter) {
> > if (connector->base.state->crtc)
> > - drm_connector_unreference(&connector->base);
> > + drm_connector_put(&connector->base);
> >
> > if (connector->base.encoder) {
> > connector->base.state->best_encoder =
> > @@ -11245,7 +11245,7 @@ static void intel_modeset_update_connector_atomic_state(struct drm_device *dev)
> > connector->base.state->crtc =
> > connector->base.encoder->crtc;
> >
> > - drm_connector_reference(&connector->base);
> > + drm_connector_get(&connector->base);
> > } else {
> > connector->base.state->best_encoder = NULL;
> > connector->base.state->crtc = NULL;
> > diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
> > index 2cf046b..b942578 100644
> > --- a/drivers/gpu/drm/i915/intel_dp_mst.c
> > +++ b/drivers/gpu/drm/i915/intel_dp_mst.c
> > @@ -524,7 +524,7 @@ static void intel_dp_destroy_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
> > intel_connector->mst_port = NULL;
> > drm_modeset_unlock_all(dev);
> >
> > - drm_connector_unreference(&intel_connector->base);
> > + drm_connector_put(&intel_connector->base);
> > DRM_DEBUG_KMS("\n");
> > }
> >
> > diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c
> > index 0c4cde6..13fbe80 100644
> > --- a/drivers/gpu/drm/i915/intel_fbdev.c
> > +++ b/drivers/gpu/drm/i915/intel_fbdev.c
> > @@ -189,7 +189,7 @@ static int intelfb_create(struct drm_fb_helper *helper,
> > " releasing it\n",
> > intel_fb->base.width, intel_fb->base.height,
> > sizes->fb_width, sizes->fb_height);
> > - drm_framebuffer_unreference(&intel_fb->base);
> > + drm_framebuffer_put(&intel_fb->base);
> > intel_fb = ifbdev->fb = NULL;
> > }
> > if (!intel_fb || WARN_ON(!intel_fb->obj)) {
> > @@ -650,7 +650,7 @@ static bool intel_fbdev_init_bios(struct drm_device *dev,
> > ifbdev->preferred_bpp = fb->base.format->cpp[0] * 8;
> > ifbdev->fb = fb;
> >
> > - drm_framebuffer_reference(&ifbdev->fb->base);
> > + drm_framebuffer_get(&ifbdev->fb->base);
> >
> > /* Final pass to check if any active pipes don't have fbs */
> > for_each_crtc(dev, crtc) {
>
> --
> Jani Nikula, Intel Open Source Technology Center

2017-08-03 15:52:18

by Cihangir Akturk

[permalink] [raw]
Subject: Re: [PATCH 12/29] drm/i915: switch to drm_*{get,put} helpers

On Thu, Aug 03, 2017 at 02:49:03PM +0200, Daniel Vetter wrote:
> On Thu, Aug 03, 2017 at 03:26:01PM +0300, Jani Nikula wrote:
> > On Thu, 03 Aug 2017, Cihangir Akturk <[email protected]> wrote:
> > > drm_*_reference() and drm_*_unreference() functions are just
> > > compatibility alias for drm_*_get() and drm_*_put() adn should not be
> > > used by new code. So convert all users of compatibility functions to use
> > > the new APIs.
> >
> > Please include the cocci script in the commit message. If you didn't use
> > cocci, you should check it out! :)
>
> Yeah I assume you've created these with spatch/cocci, not with your own
> script. I trust cocci a lot more than any kind of scripting, and the
> coccie patch is already in there kernel (the commits you've cited in the
> cover letter contain it iirc).

I wrote a simple shell script, which you can see in the cover letter.
But you are right I take function list from scripts/coccinelle/api/drm-get-put.cocci
file.

Daniel Should I use coccinelle to generate patches and resend a v2?
If so, do i need to include reviewed-by and acked-by tags to patches myself?

Thanks.

> Thanks, Daniel

2017-08-04 08:14:00

by Jani Nikula

[permalink] [raw]
Subject: Re: [PATCH 12/29] drm/i915: switch to drm_*{get,put} helpers

On Thu, 03 Aug 2017, Cihangir Akturk <[email protected]> wrote:
> Indeed I used a simple shell script, which I included in the cover
> letter. But the cover letter doesn't seem to show up in the mailing
> list archives for some reason. I think I have done something wrong.

For intel-gfx it was in moderation, I let it through now.

BR,
Jani.


--
Jani Nikula, Intel Open Source Technology Center

2017-08-07 09:10:21

by Daniel Vetter

[permalink] [raw]
Subject: Re: [PATCH 12/29] drm/i915: switch to drm_*{get,put} helpers

On Thu, Aug 3, 2017 at 5:52 PM, Cihangir Akturk <[email protected]> wrote:
> On Thu, Aug 03, 2017 at 02:49:03PM +0200, Daniel Vetter wrote:
>> On Thu, Aug 03, 2017 at 03:26:01PM +0300, Jani Nikula wrote:
>> > On Thu, 03 Aug 2017, Cihangir Akturk <[email protected]> wrote:
>> > > drm_*_reference() and drm_*_unreference() functions are just
>> > > compatibility alias for drm_*_get() and drm_*_put() adn should not be
>> > > used by new code. So convert all users of compatibility functions to use
>> > > the new APIs.
>> >
>> > Please include the cocci script in the commit message. If you didn't use
>> > cocci, you should check it out! :)
>>
>> Yeah I assume you've created these with spatch/cocci, not with your own
>> script. I trust cocci a lot more than any kind of scripting, and the
>> coccie patch is already in there kernel (the commits you've cited in the
>> cover letter contain it iirc).
>
> I wrote a simple shell script, which you can see in the cover letter.
> But you are right I take function list from scripts/coccinelle/api/drm-get-put.cocci
> file.
>
> Daniel Should I use coccinelle to generate patches and resend a v2?
> If so, do i need to include reviewed-by and acked-by tags to patches myself?

I think regenerating the patches using cocci would be great, I trust
cocci a lot more than random scripts. And cocci is a great tool to
learn anyway (if you don't know it yet). If the resulting patches
match, you can keep the r-b/a-b tags for v2.

Thanks, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch