summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2019-05-08 14:54:34 +1000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-06-15 11:54:03 +0200
commit2a3f2b43a9e3b7fe802400ba80ae56533a8c66f9 (patch)
treebd9353756e3fe16721e328f3a3cd927541e2c2a6
parentf9706dd945e9e6fbd7a13fe9813811a5c16442cb (diff)
downloadlinux-stable-2a3f2b43a9e3b7fe802400ba80ae56533a8c66f9.tar.gz
linux-stable-2a3f2b43a9e3b7fe802400ba80ae56533a8c66f9.tar.bz2
linux-stable-2a3f2b43a9e3b7fe802400ba80ae56533a8c66f9.zip
drm/nouveau/kms/gf119-gp10x: push HeadSetControlOutputResource() mthd when encoders change
[ Upstream commit a0b694d0af21c9993d1a39a75fd814bd48bf7eb4 ] HW has error checks in place which check that pixel depth is explicitly provided on DP, while HDMI has a "default" setting that we use. In multi-display configurations with identical modelines, but different protocols (HDMI + DP, in this case), it was possible for the DP head to get swapped to the head which previously drove the HDMI output, without updating HeadSetControlOutputResource(), triggering the error check and hanging the core update. Reported-by: Lyude Paul <lyude@redhat.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/gpu/drm/nouveau/dispnv50/head.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/dispnv50/head.c b/drivers/gpu/drm/nouveau/dispnv50/head.c
index 4f57e5379796..d81a99bb2ac3 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/head.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/head.c
@@ -306,7 +306,7 @@ nv50_head_atomic_check(struct drm_crtc *crtc, struct drm_crtc_state *state)
asyh->set.or = head->func->or != NULL;
}
- if (asyh->state.mode_changed)
+ if (asyh->state.mode_changed || asyh->state.connectors_changed)
nv50_head_atomic_check_mode(head, asyh);
if (asyh->state.color_mgmt_changed ||