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)
                        continue;
-- 
1.9.3

Reply via email to