Re: [Intel-gfx] [PATCH 9/9] drm/atomic: Add encoder_mask to crtc_state.

Daniel Vetter
2015-12-04T08:12:58Z

On Thu, Dec 03, 2015 at 12:01:02PM +0100, Maarten Lankhorst wrote:
> Op 03-12-15 om 10:53 schreef Daniel Vetter:
> > On Tue, Nov 24, 2015 at 10:34:36AM +0100, Maarten Lankhorst wrote:
> >> This allows iteration over encoders without requiring connection_mutex.
> >>
> >> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> >> ---
> >> drivers/gpu/drm/drm_atomic_helper.c | 4 ++++
> >> drivers/gpu/drm/i915/intel_display.c | 3 +++
> >> include/drm/drm_crtc.h | 2 ++
> >> 3 files changed, 9 insertions(+)
> >>
> >> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> >> index fb79c54b2aed..f3fd8f131f92 100644
> >> --- a/drivers/gpu/drm/drm_atomic_helper.c
> >> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> >> @@ -269,6 +269,8 @@ mode_fixup(struct drm_atomic_state *state)
> >> continue;
> >>
> >> drm_mode_copy(&crtc_state->adjusted_mode, &crtc_state->mode);
> >> +
> >> + crtc_state->encoder_mask = 0;
> > Hm, I think a small function to set the best_encoder (like we do to set
> > the crtc for connector or planes) would be good. Otherwise we'll frob
> > around the code and forget this, and much confusion will ensue.
> >
> > That helper should probably be in core drm_atomic.c, like the other
> > set_foo_for_bar helpers.
> As always only i915 assigns best_encoder outside drm_atomic_helper_check_modeset, and the i915 calls can't be fixed because of hw readout. :(
> At the time of mode_fixup all encoders should have been updated, so I'm not sure adding a helper for best_encoder would help much..

I've meant just for the atomic helpers. i915 is a mess, yes, but that's
not really an excuse to not make shared code pretty ;-)
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation