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@xxxxxxxxxxxxxxx> > Cc: Daniel Vetter <daniel.vetter@xxxxxxxxx> > Cc: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> > Cc: Sean Paul <seanpaul@xxxxxxxxxxxx> > Cc: David Airlie <airlied@xxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel