]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/4.19.51/drm-nouveau-kms-gf119-gp10x-push-headsetcontroloutpu.patch
Linux 5.1.10
[thirdparty/kernel/stable-queue.git] / releases / 4.19.51 / drm-nouveau-kms-gf119-gp10x-push-headsetcontroloutpu.patch
1 From b85e7940ce76fc47888bc63c5582c2cd05cb05f3 Mon Sep 17 00:00:00 2001
2 From: Ben Skeggs <bskeggs@redhat.com>
3 Date: Wed, 8 May 2019 14:54:34 +1000
4 Subject: drm/nouveau/kms/gf119-gp10x: push HeadSetControlOutputResource() mthd
5 when encoders change
6
7 [ Upstream commit a0b694d0af21c9993d1a39a75fd814bd48bf7eb4 ]
8
9 HW has error checks in place which check that pixel depth is explicitly
10 provided on DP, while HDMI has a "default" setting that we use.
11
12 In multi-display configurations with identical modelines, but different
13 protocols (HDMI + DP, in this case), it was possible for the DP head to
14 get swapped to the head which previously drove the HDMI output, without
15 updating HeadSetControlOutputResource(), triggering the error check and
16 hanging the core update.
17
18 Reported-by: Lyude Paul <lyude@redhat.com>
19 Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
20 Signed-off-by: Sasha Levin <sashal@kernel.org>
21 ---
22 drivers/gpu/drm/nouveau/dispnv50/head.c | 2 +-
23 1 file changed, 1 insertion(+), 1 deletion(-)
24
25 diff --git a/drivers/gpu/drm/nouveau/dispnv50/head.c b/drivers/gpu/drm/nouveau/dispnv50/head.c
26 index 4f57e5379796..d81a99bb2ac3 100644
27 --- a/drivers/gpu/drm/nouveau/dispnv50/head.c
28 +++ b/drivers/gpu/drm/nouveau/dispnv50/head.c
29 @@ -306,7 +306,7 @@ nv50_head_atomic_check(struct drm_crtc *crtc, struct drm_crtc_state *state)
30 asyh->set.or = head->func->or != NULL;
31 }
32
33 - if (asyh->state.mode_changed)
34 + if (asyh->state.mode_changed || asyh->state.connectors_changed)
35 nv50_head_atomic_check_mode(head, asyh);
36
37 if (asyh->state.color_mgmt_changed ||
38 --
39 2.20.1
40