diff options
author | Laura Abbott <labbott@fedoraproject.org> | 2016-08-10 17:55:23 -0700 |
---|---|---|
committer | Laura Abbott <labbott@fedoraproject.org> | 2016-08-10 17:56:05 -0700 |
commit | 46396fbe5385265ff5cabdfd1c62750e1b61195b (patch) | |
tree | 29b9f2de8e65a84f93270e6b389387d3a4e64e9b /drm-amdgpu-Disable-RPM-helpers-while-reprobing.patch | |
parent | 14ee8bf7eb054ae4fcac68981a046dc5e37e91cb (diff) | |
download | kernel-46396fbe5385265ff5cabdfd1c62750e1b61195b.tar.gz kernel-46396fbe5385265ff5cabdfd1c62750e1b61195b.tar.xz kernel-46396fbe5385265ff5cabdfd1c62750e1b61195b.zip |
Cleanup patches/PatchList.txt
Now that we have a script to check the state of the tree, make it
useful again.
Diffstat (limited to 'drm-amdgpu-Disable-RPM-helpers-while-reprobing.patch')
-rw-r--r-- | drm-amdgpu-Disable-RPM-helpers-while-reprobing.patch | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/drm-amdgpu-Disable-RPM-helpers-while-reprobing.patch b/drm-amdgpu-Disable-RPM-helpers-while-reprobing.patch deleted file mode 100644 index 562d20eb5..000000000 --- a/drm-amdgpu-Disable-RPM-helpers-while-reprobing.patch +++ /dev/null @@ -1,70 +0,0 @@ -From patchwork Fri Jul 8 15:37:35 2016 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: drm/amdgpu: Disable RPM helpers while reprobing connectors on resume -From: cpaul@redhat.com -X-Patchwork-Id: 97837 -Message-Id: <1467992256-23832-1-git-send-email-cpaul@redhat.com> -To: amd-gfx@lists.freedesktop.org -Cc: Tom St Denis <tom.stdenis@amd.com>, Jammy Zhou <Jammy.Zhou@amd.com>, - open list <linux-kernel@vger.kernel.org>, stable@vger.kernel.org, - "open list:RADEON and AMDGPU DRM DRIVERS" - <dri-devel@lists.freedesktop.org>, - Alex Deucher <alexander.deucher@amd.com>, Lyude <cpaul@redhat.com>, - Flora Cui <Flora.Cui@amd.com>, - =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>, - Monk Liu <Monk.Liu@amd.com> -Date: Fri, 8 Jul 2016 11:37:35 -0400 - -Just about all of amdgpu's connector probing functions try to acquire -runtime PM refs. If we try to do this in the context of -amdgpu_resume_kms by calling drm_helper_hpd_irq_event(), we end up -deadlocking the system. - -Since we're guaranteed to be holding the spinlock for RPM in -amdgpu_resume_kms, and we already know the GPU is in working order, we -need to prevent the RPM helpers from trying to run during the initial -connector reprobe on resume. - -There's a couple of solutions I've explored for fixing this, but this -one by far seems to be the simplest and most reliable (plus I'm pretty -sure that's what disable_depth is there for anyway). - -Reproduction recipe: - - Get any laptop dual GPUs using PRIME - - Make sure runtime PM is enabled for amdgpu - - Boot the machine - - If the machine managed to boot without hanging, switch out of X to - another VT. This should definitely cause X to hang infinitely. - -Cc: stable@vger.kernel.org -Signed-off-by: Lyude <cpaul@redhat.com> ---- - drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c -index 6e92008..46c1fee 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c -@@ -1841,7 +1841,19 @@ int amdgpu_resume_kms(struct drm_device *dev, bool resume, bool fbcon) - } - - drm_kms_helper_poll_enable(dev); -+ -+ /* -+ * Most of the connector probing functions try to acquire runtime pm -+ * refs to ensure that the GPU is powered on when connector polling is -+ * performed. Since we're calling this from a runtime PM callback, -+ * trying to acquire rpm refs will cause us to deadlock. -+ * -+ * Since we're guaranteed to be holding the rpm lock, it's safe to -+ * temporarily disable the rpm helpers so this doesn't deadlock us. -+ */ -+ dev->dev->power.disable_depth++; - drm_helper_hpd_irq_event(dev); -+ dev->dev->power.disable_depth--; - - if (fbcon) { - amdgpu_fbdev_set_suspend(adev, 0); |