]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.6-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 21 Jan 2025 13:14:18 +0000 (14:14 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 21 Jan 2025 13:14:18 +0000 (14:14 +0100)
added patches:
revert-drm-amdgpu-rework-resume-handling-for-display-v2.patch

queue-6.6/revert-drm-amdgpu-rework-resume-handling-for-display-v2.patch [new file with mode: 0644]
queue-6.6/series

diff --git a/queue-6.6/revert-drm-amdgpu-rework-resume-handling-for-display-v2.patch b/queue-6.6/revert-drm-amdgpu-rework-resume-handling-for-display-v2.patch
new file mode 100644 (file)
index 0000000..ccbd3fe
--- /dev/null
@@ -0,0 +1,120 @@
+From 9cb66d5c2c964ff2759862a06bc16b6ec942d64d Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Tue, 21 Jan 2025 14:11:06 +0100
+Subject: Revert "drm/amdgpu: rework resume handling for display (v2)"
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+This reverts commit 2daba7d857e48035d71cdd95964350b6d0d51545 which is
+commit 73dae652dcac776296890da215ee7dec357a1032 upstream.
+
+The original patch 73dae652dcac (drm/amdgpu: rework resume handling for
+display (v2)), was only targeted at kernels 6.11 and newer.  It did not
+apply cleanly to 6.12 so I backported it and it backport landed as
+99a02eab8251 ("drm/amdgpu: rework resume handling for display (v2)"),
+however there was a bug in the backport that was subsequently fixed in
+063d380ca28e ("drm/amdgpu: fix backport of commit 73dae652dcac").  None
+of this was intended for kernels older than 6.11, however the original
+backport eventually landed in 6.6, 6.1, and 5.15.
+
+Please revert the change from kernels 6.6, 6.1, and 5.15.
+
+Link: https://lore.kernel.org/r/BL1PR12MB5144D5363FCE6F2FD3502534F7E72@BL1PR12MB5144.namprd12.prod.outlook.com
+Link: https://lore.kernel.org/r/BL1PR12MB51449ADCFBF2314431F8BCFDF7132@BL1PR12MB5144.namprd12.prod.outlook.com
+Reported-by: Salvatore Bonaccorso <carnil@debian.org>
+Reported-by: Christian König <christian.koenig@amd.com>
+Reported-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c |   45 +----------------------------
+ 1 file changed, 2 insertions(+), 43 deletions(-)
+
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -3172,7 +3172,7 @@ static int amdgpu_device_ip_resume_phase
+  *
+  * @adev: amdgpu_device pointer
+  *
+- * Second resume function for hardware IPs.  The list of all the hardware
++ * First resume function for hardware IPs.  The list of all the hardware
+  * IPs that make up the asic is walked and the resume callbacks are run for
+  * all blocks except COMMON, GMC, and IH.  resume puts the hardware into a
+  * functional state after a suspend and updates the software state as
+@@ -3190,7 +3190,6 @@ static int amdgpu_device_ip_resume_phase
+               if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_COMMON ||
+                   adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC ||
+                   adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_IH ||
+-                  adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_DCE ||
+                   adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_PSP)
+                       continue;
+               r = adev->ip_blocks[i].version->funcs->resume(adev);
+@@ -3206,36 +3205,6 @@ static int amdgpu_device_ip_resume_phase
+ }
+ /**
+- * amdgpu_device_ip_resume_phase3 - run resume for hardware IPs
+- *
+- * @adev: amdgpu_device pointer
+- *
+- * Third resume function for hardware IPs.  The list of all the hardware
+- * IPs that make up the asic is walked and the resume callbacks are run for
+- * all DCE.  resume puts the hardware into a functional state after a suspend
+- * and updates the software state as necessary.  This function is also used
+- * for restoring the GPU after a GPU reset.
+- *
+- * Returns 0 on success, negative error code on failure.
+- */
+-static int amdgpu_device_ip_resume_phase3(struct amdgpu_device *adev)
+-{
+-      int i, r;
+-
+-      for (i = 0; i < adev->num_ip_blocks; i++) {
+-              if (!adev->ip_blocks[i].status.valid || adev->ip_blocks[i].status.hw)
+-                      continue;
+-              if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_DCE) {
+-                      r = adev->ip_blocks[i].version->funcs->resume(adev);
+-                      if (r)
+-                              return r;
+-              }
+-      }
+-
+-      return 0;
+-}
+-
+-/**
+  * amdgpu_device_ip_resume - run resume for hardware IPs
+  *
+  * @adev: amdgpu_device pointer
+@@ -3261,13 +3230,6 @@ static int amdgpu_device_ip_resume(struc
+       r = amdgpu_device_ip_resume_phase2(adev);
+-      if (r)
+-              return r;
+-
+-      amdgpu_fence_driver_hw_init(adev);
+-
+-      r = amdgpu_device_ip_resume_phase3(adev);
+-
+       return r;
+ }
+@@ -4267,6 +4229,7 @@ int amdgpu_device_resume(struct drm_devi
+               dev_err(adev->dev, "amdgpu_device_ip_resume failed (%d).\n", r);
+               goto exit;
+       }
++      amdgpu_fence_driver_hw_init(adev);
+       r = amdgpu_device_ip_late_init(adev);
+       if (r)
+@@ -5036,10 +4999,6 @@ int amdgpu_do_asic_reset(struct list_hea
+                               if (r)
+                                       goto out;
+-                              r = amdgpu_device_ip_resume_phase3(tmp_adev);
+-                              if (r)
+-                                      goto out;
+-
+                               if (vram_lost)
+                                       amdgpu_device_fill_reset_magic(tmp_adev);
index 84ee32a113f7841404dd7cbeb3b6c9738e9b381d..8efd9dd6b616f9626fc5e2faeeea9e4a83833841 100644 (file)
@@ -66,3 +66,4 @@ ocfs2-fix-deadlock-in-ocfs2_get_system_file_inode.patch
 ovl-pass-realinode-to-ovl_encode_real_fh-instead-of-realdentry.patch
 ovl-support-encoding-fid-from-inode-with-no-alias.patch
 fs-relax-assertions-on-failure-to-encode-file-handles.patch
+revert-drm-amdgpu-rework-resume-handling-for-display-v2.patch