[PATCH v3 0/7] drm: Introduce consistent reference counting APIs

Thierry Reding thierry.reding at gmail.com
Tue Feb 28 14:46:36 UTC 2017


From: Thierry Reding <treding at nvidia.com>

This series introduces DRM reference counting APIs that are consistent
with other reference counting APIs in the kernel. They are also much
shorter. Compatibility aliases are added to keep existing code working
and will stay in place until all users of the old APIs are gone.

All occurrences of the old APIs in the core are already replaced by
this series, and a semantic patch is provided that allows drivers to
be converted automatically. I plan on generating patches against the
drivers once the new functions have been merged and send them out to
their respective maintainers.

Oh, and this fixes one of the items in our recently added TODO list.

Changes in v3:
- fix build error

Changes in v2:
- add patch to rename drm_connector_list_iter_{get,put}() because they
  aren't in fact reference counting
- add Reviewed-by from Sean, Acked-by from Christian
- left in the semantic patch for convenience, it can be removed along
  with the compatibility functions

Thanks,
Thierry

Thierry Reding (7):
  drm: Rename drm_mode_object_get()
  drm: Introduce drm_mode_object_{get,put}()
  drm: Introduce drm_connector_{get,put}()
  drm: Introduce drm_framebuffer_{get,put}()
  drm: Introduce drm_gem_object_{get,put}()
  drm: Introduce drm_property_blob_{get,put}()
  drm: Rename connector list iterator API

 Documentation/gpu/drm-mm.rst             | 14 +++--
 drivers/gpu/drm/drm_atomic.c             | 54 +++++++++----------
 drivers/gpu/drm/drm_atomic_helper.c      | 44 +++++++--------
 drivers/gpu/drm/drm_connector.c          | 40 +++++++-------
 drivers/gpu/drm/drm_crtc.c               | 12 ++---
 drivers/gpu/drm/drm_crtc_helper.c        | 42 +++++++--------
 drivers/gpu/drm/drm_crtc_internal.h      | 12 ++---
 drivers/gpu/drm/drm_encoder.c            |  8 +--
 drivers/gpu/drm/drm_fb_cma_helper.c      | 16 +++---
 drivers/gpu/drm/drm_fb_helper.c          | 16 +++---
 drivers/gpu/drm/drm_framebuffer.c        | 38 ++++++-------
 drivers/gpu/drm/drm_gem.c                | 44 +++++++--------
 drivers/gpu/drm/drm_gem_cma_helper.c     | 10 ++--
 drivers/gpu/drm/drm_mode_config.c        | 22 ++++----
 drivers/gpu/drm/drm_mode_object.c        | 44 +++++++--------
 drivers/gpu/drm/drm_modes.c              |  2 +-
 drivers/gpu/drm/drm_plane.c              | 14 ++---
 drivers/gpu/drm/drm_plane_helper.c       |  4 +-
 drivers/gpu/drm/drm_prime.c              | 10 ++--
 drivers/gpu/drm/drm_probe_helper.c       | 12 ++---
 drivers/gpu/drm/drm_property.c           | 52 +++++++++---------
 include/drm/drm_connector.h              | 51 +++++++++++++-----
 include/drm/drm_framebuffer.h            | 49 ++++++++++++-----
 include/drm/drm_gem.h                    | 80 +++++++++++++++++++++------
 include/drm/drm_mode_object.h            | 36 ++++++++++---
 include/drm/drm_property.h               | 35 ++++++++++--
 scripts/coccinelle/api/drm-get-put.cocci | 92 ++++++++++++++++++++++++++++++++
 27 files changed, 542 insertions(+), 311 deletions(-)
 create mode 100644 scripts/coccinelle/api/drm-get-put.cocci

-- 
2.11.1



More information about the dri-devel mailing list