[Intel-gfx] [PATCH 16/16] drm/atomic: Remove deprecated accessor macros

Daniel Vetter daniel at ffwll.ch
Wed Jul 12 09:50:11 UTC 2017


On Wed, Jul 12, 2017 at 10:13:44AM +0200, Maarten Lankhorst wrote:
> Now that the last users have been converted, we can finally get rid of
> for_each_obj_in_state, we have better macros to replace them with.
> 
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Cc: Daniel Vetter <daniel.vetter at intel.com>
> Cc: Jani Nikula <jani.nikula at linux.intel.com>
> Cc: Sean Paul <seanpaul at chromium.org>
> Cc: David Airlie <airlied at linux.ie>

Lgtm, but please make sure you do compile test with all three drm-misc
defconfigs. Two of the patches looked like they didn't see a compiler, so
there might be more lurking.
-Daniel

> ---
>  include/drm/drm_atomic.h    | 75 ---------------------------------------------
>  include/drm/drm_connector.h |  3 +-
>  include/drm/drm_crtc.h      |  8 ++---
>  include/drm/drm_plane.h     |  8 ++---
>  4 files changed, 9 insertions(+), 85 deletions(-)
> 
> diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
> index dcc8e0cdb7ff..9f484d0ebcb6 100644
> --- a/include/drm/drm_atomic.h
> +++ b/include/drm/drm_atomic.h
> @@ -555,31 +555,6 @@ int __must_check drm_atomic_nonblocking_commit(struct drm_atomic_state *state);
>  void drm_state_dump(struct drm_device *dev, struct drm_printer *p);
>  
>  /**
> - * for_each_connector_in_state - iterate over all connectors in an atomic update
> - * @__state: &struct drm_atomic_state pointer
> - * @connector: &struct drm_connector iteration cursor
> - * @connector_state: &struct drm_connector_state iteration cursor
> - * @__i: int iteration cursor, for macro-internal use
> - *
> - * This iterates over all connectors in an atomic update. Note that before the
> - * software state is committed (by calling drm_atomic_helper_swap_state(), this
> - * points to the new state, while afterwards it points to the old state. Due to
> - * this tricky confusion this macro is deprecated.
> - *
> - * FIXME:
> - *
> - * Replace all usage of this with one of the explicit iterators below and then
> - * remove this macro.
> - */
> -#define for_each_connector_in_state(__state, connector, connector_state, __i) \
> -	for ((__i) = 0;							\
> -	     (__i) < (__state)->num_connector &&				\
> -	     ((connector) = (__state)->connectors[__i].ptr,			\
> -	     (connector_state) = (__state)->connectors[__i].state, 1); 	\
> -	     (__i)++)							\
> -		for_each_if (connector)
> -
> -/**
>   * for_each_oldnew_connector_in_state - iterate over all connectors in an atomic update
>   * @__state: &struct drm_atomic_state pointer
>   * @connector: &struct drm_connector iteration cursor
> @@ -643,31 +618,6 @@ void drm_state_dump(struct drm_device *dev, struct drm_printer *p);
>  		for_each_if (connector)
>  
>  /**
> - * for_each_crtc_in_state - iterate over all connectors in an atomic update
> - * @__state: &struct drm_atomic_state pointer
> - * @crtc: &struct drm_crtc iteration cursor
> - * @crtc_state: &struct drm_crtc_state iteration cursor
> - * @__i: int iteration cursor, for macro-internal use
> - *
> - * This iterates over all CRTCs in an atomic update. Note that before the
> - * software state is committed (by calling drm_atomic_helper_swap_state(), this
> - * points to the new state, while afterwards it points to the old state. Due to
> - * this tricky confusion this macro is deprecated.
> - *
> - * FIXME:
> - *
> - * Replace all usage of this with one of the explicit iterators below and then
> - * remove this macro.
> - */
> -#define for_each_crtc_in_state(__state, crtc, crtc_state, __i)	\
> -	for ((__i) = 0;						\
> -	     (__i) < (__state)->dev->mode_config.num_crtc &&	\
> -	     ((crtc) = (__state)->crtcs[__i].ptr,			\
> -	     (crtc_state) = (__state)->crtcs[__i].state, 1);	\
> -	     (__i)++)						\
> -		for_each_if (crtc_state)
> -
> -/**
>   * for_each_oldnew_crtc_in_state - iterate over all CRTCs in an atomic update
>   * @__state: &struct drm_atomic_state pointer
>   * @crtc: &struct drm_crtc iteration cursor
> @@ -727,31 +677,6 @@ void drm_state_dump(struct drm_device *dev, struct drm_printer *p);
>  		for_each_if (crtc)
>  
>  /**
> - * for_each_plane_in_state - iterate over all planes in an atomic update
> - * @__state: &struct drm_atomic_state pointer
> - * @plane: &struct drm_plane iteration cursor
> - * @plane_state: &struct drm_plane_state iteration cursor
> - * @__i: int iteration cursor, for macro-internal use
> - *
> - * This iterates over all planes in an atomic update. Note that before the
> - * software state is committed (by calling drm_atomic_helper_swap_state(), this
> - * points to the new state, while afterwards it points to the old state. Due to
> - * this tricky confusion this macro is deprecated.
> - *
> - * FIXME:
> - *
> - * Replace all usage of this with one of the explicit iterators below and then
> - * remove this macro.
> - */
> -#define for_each_plane_in_state(__state, plane, plane_state, __i)		\
> -	for ((__i) = 0;							\
> -	     (__i) < (__state)->dev->mode_config.num_total_plane &&	\
> -	     ((plane) = (__state)->planes[__i].ptr,				\
> -	     (plane_state) = (__state)->planes[__i].state, 1);		\
> -	     (__i)++)							\
> -		for_each_if (plane_state)
> -
> -/**
>   * for_each_oldnew_plane_in_state - iterate over all planes in an atomic update
>   * @__state: &struct drm_atomic_state pointer
>   * @plane: &struct drm_plane iteration cursor
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index ae5b7dc316c8..4878007103e2 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -858,8 +858,7 @@ struct drm_connector {
>  	 * This is protected by @drm_mode_config.connection_mutex. Note that
>  	 * nonblocking atomic commits access the current connector state without
>  	 * taking locks. Either by going through the &struct drm_atomic_state
> -	 * pointers, see for_each_connector_in_state(),
> -	 * for_each_oldnew_connector_in_state(),
> +	 * pointers, see for_each_oldnew_connector_in_state(),
>  	 * for_each_old_connector_in_state() and
>  	 * for_each_new_connector_in_state(). Or through careful ordering of
>  	 * atomic commit operations as implemented in the atomic helpers, see
> diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> index 3a911a64c257..c4c949ea20da 100644
> --- a/include/drm/drm_crtc.h
> +++ b/include/drm/drm_crtc.h
> @@ -807,10 +807,10 @@ struct drm_crtc {
>  	 * This is protected by @mutex. Note that nonblocking atomic commits
>  	 * access the current CRTC state without taking locks. Either by going
>  	 * through the &struct drm_atomic_state pointers, see
> -	 * for_each_crtc_in_state(), for_each_oldnew_crtc_in_state(),
> -	 * for_each_old_crtc_in_state() and for_each_new_crtc_in_state(). Or
> -	 * through careful ordering of atomic commit operations as implemented
> -	 * in the atomic helpers, see &struct drm_crtc_commit.
> +	 * for_each_oldnew_crtc_in_state(), for_each_old_crtc_in_state() and
> +	 * for_each_new_crtc_in_state(). Or through careful ordering of atomic
> +	 * commit operations as implemented in the atomic helpers, see
> +	 * &struct drm_crtc_commit.
>  	 */
>  	struct drm_crtc_state *state;
>  
> diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h
> index 9ab3e7044812..a1b3aa5d1223 100644
> --- a/include/drm/drm_plane.h
> +++ b/include/drm/drm_plane.h
> @@ -514,10 +514,10 @@ struct drm_plane {
>  	 * This is protected by @mutex. Note that nonblocking atomic commits
>  	 * access the current plane state without taking locks. Either by going
>  	 * through the &struct drm_atomic_state pointers, see
> -	 * for_each_plane_in_state(), for_each_oldnew_plane_in_state(),
> -	 * for_each_old_plane_in_state() and for_each_new_plane_in_state(). Or
> -	 * through careful ordering of atomic commit operations as implemented
> -	 * in the atomic helpers, see &struct drm_crtc_commit.
> +	 * for_each_oldnew_plane_in_state(), for_each_old_plane_in_state() and
> +	 * for_each_new_plane_in_state(). Or through careful ordering of atomic
> +	 * commit operations as implemented in the atomic helpers, see
> +	 * &struct drm_crtc_commit.
>  	 */
>  	struct drm_plane_state *state;
>  
> -- 
> 2.11.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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


More information about the dri-devel mailing list