On Mon, Aug 03, 2015 at 05:24:08PM +0200, Daniel Vetter wrote: > With legacy helpers all the routing was already set up when calling > best_encoder and so could be inspected. But with atomic it's staged, > hence we need a new atomic compliant callback for drivers which need > to inspect the requested state and can't just decided the best encoder > statically. > > This is needed to fix up i915 dp mst where we need to pick the right > encoder depending upon the requested CRTC for the connector. > > v2: Don't forget to amend the kerneldoc > > Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> > Cc: Theodore Ts'o <tytso@xxxxxxx> > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> > --- > drivers/gpu/drm/drm_atomic_helper.c | 7 ++++++- > include/drm/drm_crtc_helper.h | 3 +++ > 2 files changed, 9 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c > index aac212297b49..8694ca9beee3 100644 > --- a/drivers/gpu/drm/drm_atomic_helper.c > +++ b/drivers/gpu/drm/drm_atomic_helper.c > @@ -196,7 +196,12 @@ update_connector_routing(struct drm_atomic_state *state, int conn_idx) > } > > funcs = connector->helper_private; > - new_encoder = funcs->best_encoder(connector); > + > + if (funcs->atomic_best_encoder) > + new_encoder = funcs->atomic_best_encoder(connector, > + connector_state); > + else > + new_encoder = funcs->best_encoder(connector); > > if (!new_encoder) { > DRM_DEBUG_ATOMIC("No suitable encoder found for [CONNECTOR:%d:%s]\n", > diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h > index c8fc187061de..918aa68b5199 100644 > --- a/include/drm/drm_crtc_helper.h > +++ b/include/drm/drm_crtc_helper.h > @@ -168,6 +168,7 @@ struct drm_encoder_helper_funcs { > * @get_modes: get mode list for this connector > * @mode_valid: is this mode valid on the given connector? (optional) > * @best_encoder: return the preferred encoder for this connector > + * @atomic_best_encoder: atomic version of @best_encoder This could arguably be more verbose, but the limits of kerneldoc don't make that easy. Perhaps a more verbose description could be provided in done in the DRM DocBook, along with other documentation about atomic mode-setting. Irrespective of that, this makes sense, so: Acked-by: Thierry Reding <treding@xxxxxxxxxx>
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx