summaryrefslogtreecommitdiffstats
path: root/0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch
diff options
context:
space:
mode:
authorJustin M. Forbes <jforbes@fedoraproject.org>2020-05-28 10:35:15 -0500
committerJustin M. Forbes <jforbes@fedoraproject.org>2020-05-28 10:35:15 -0500
commitc1d5388741c67796c728a41e28949b05ed72e52c (patch)
tree9271475cb907db2eb4a9fa111df997c1a461620e /0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch
parenta79d8affb70a95069c35a0ccf7085e230c22a98d (diff)
downloadkernel-c1d5388741c67796c728a41e28949b05ed72e52c.tar.gz
kernel-c1d5388741c67796c728a41e28949b05ed72e52c.tar.xz
kernel-c1d5388741c67796c728a41e28949b05ed72e52c.zip
kernel-5.7.0-0.rc7.20200528gitb0c3ba31be3e.1
* Thu May 28 2020 CKI@GitLab <cki-project@redhat.com> [5.7.0-0.rc7.20200528gitb0c3ba31be3e.1] - b0c3ba31be3e rebase - Updated changelog for the release based on 444fc5cde643 ("CKI@GitLab") Resolves: rhbz# Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
Diffstat (limited to '0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch')
-rw-r--r--0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch b/0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch
new file mode 100644
index 000000000..b590bb06c
--- /dev/null
+++ b/0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch
@@ -0,0 +1,47 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Lyude Paul <lyude@redhat.com>
+Date: Mon, 11 May 2020 18:41:23 -0400
+Subject: [PATCH] kms/nv50-: Initialize core channel in
+ nouveau_display_create()
+
+We'll need the core channel initialized and ready by the time that we
+start creating modesetting objects, so that we can call the
+NV507D_GET_CAPABILITIES method to make the hardware expose it's
+modesetting capabilities for later probing.
+
+So, when loading the driver prepare the core channel from within
+nouveau_display_create(). Everywhere else, we initialize the core
+channel during resume.
+
+Signed-off-by: Lyude Paul <lyude@redhat.com>
+Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+---
+ drivers/gpu/drm/nouveau/dispnv50/disp.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
+index 2625ed84fc44..2afd56b9887d 100644
+--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
++++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
+@@ -2373,7 +2373,8 @@ nv50_display_init(struct drm_device *dev, bool resume, bool runtime)
+ struct drm_encoder *encoder;
+ struct drm_plane *plane;
+
+- core->func->init(core);
++ if (resume || runtime)
++ core->func->init(core);
+
+ list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
+ if (encoder->encoder_type != DRM_MODE_ENCODER_DPMST) {
+@@ -2460,6 +2461,8 @@ nv50_display_create(struct drm_device *dev)
+ if (ret)
+ goto out;
+
++ disp->core->func->init(disp->core);
++
+ /* create crtc objects to represent the hw heads */
+ if (disp->disp->object.oclass >= GV100_DISP)
+ crtcs = nvif_rd32(&device->object, 0x610060) & 0xff;
+--
+2.26.2
+