On Thu, Nov 20, 2014 at 03:55:07PM -0500, Rob Clark wrote: > In disable_outputs() we need to shut down the outgoing encoder, not the > incoming one (we have already swapped-state at this point). Without > this, we end up telling the driver to crtc->dpms(OFF) without first > encoder->dpms(OFF), and that makes some hw quite unhappy. > > Reviewed-by: Daniel Vetter <daniel.vetter at intel.com> > Signed-off-by: Rob Clark <robdclark at gmail.com> > --- > drivers/gpu/drm/drm_atomic_helper.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_atomic_helper.c > b/drivers/gpu/drm/drm_atomic_helper.c > index 5ae5b25..8e4f3fc 100644 > --- a/drivers/gpu/drm/drm_atomic_helper.c > +++ b/drivers/gpu/drm/drm_atomic_helper.c > @@ -502,7 +502,7 @@ disable_outputs(struct drm_device *dev, struct > drm_atomic_state *old_state) > if (!old_conn_state || !old_conn_state->crtc) > continue; > > - encoder = connector->state->best_encoder; > + encoder = old_conn_state->best_encoder; > > if (!encoder)
I wanted a if (WARN_ON(!encoder)) here for my r-b, since this really shouldn't ever happen. And these kinds of cross-checks tend to be useful ime. -Daniel > continue; > -- > 1.9.3 > -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch