Message ID | 20170712081344.25495-17-maarten.lankhorst@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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@linux.intel.com> > Cc: Daniel Vetter <daniel.vetter@intel.com> > Cc: Jani Nikula <jani.nikula@linux.intel.com> > Cc: Sean Paul <seanpaul@chromium.org> > Cc: David Airlie <airlied@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@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Op 12-07-17 om 11:50 schreef Daniel Vetter: > 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@linux.intel.com> >> Cc: Daniel Vetter <daniel.vetter@intel.com> >> Cc: Jani Nikula <jani.nikula@linux.intel.com> >> Cc: Sean Paul <seanpaul@chromium.org> >> Cc: David Airlie <airlied@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. Tested with all 3 configs, seems to compile now. :)
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;
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@linux.intel.com> Cc: Daniel Vetter <daniel.vetter@intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Sean Paul <seanpaul@chromium.org> Cc: David Airlie <airlied@linux.ie> --- 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(-)