diff options
author | Thorsten Leemhuis <fedora@leemhuis.info> | 2020-05-29 19:50:14 +0200 |
---|---|---|
committer | Thorsten Leemhuis <fedora@leemhuis.info> | 2020-05-29 19:50:14 +0200 |
commit | 59adb3dc6384af48c3b97589c8d887c87689e0e4 (patch) | |
tree | c0fb7c5ecc5260b57173619973336989e0b8a256 /0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch | |
parent | d48a756e71e269ecef24682ba38b6b49ed2a6abe (diff) | |
parent | 42bbfcc428758569177d4e644fddfb5ed46c57a5 (diff) | |
download | kernel-59adb3dc6384af48c3b97589c8d887c87689e0e4.tar.gz kernel-59adb3dc6384af48c3b97589c8d887c87689e0e4.tar.xz kernel-59adb3dc6384af48c3b97589c8d887c87689e0e4.zip |
Merge remote-tracking branch 'origin/master' into rawhide-user-thl-vanilla-fedorakernel-5.7.0-0.rc7.20200529gitb0c3ba31be3e.1.vanilla.1.fc32
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_.patch | 47 |
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 + |