]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 18 Oct 2022 06:50:02 +0000 (08:50 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 18 Oct 2022 06:50:02 +0000 (08:50 +0200)
added patches:
revert-drm-amdgpu-move-nbio-sdma_doorbell_range-into-sdma-code-for-vega.patch
revert-drm-amdgpu-use-dirty-framebuffer-helper.patch

queue-5.10/revert-drm-amdgpu-move-nbio-sdma_doorbell_range-into-sdma-code-for-vega.patch [new file with mode: 0644]
queue-5.10/revert-drm-amdgpu-use-dirty-framebuffer-helper.patch [new file with mode: 0644]
queue-5.10/series

diff --git a/queue-5.10/revert-drm-amdgpu-move-nbio-sdma_doorbell_range-into-sdma-code-for-vega.patch b/queue-5.10/revert-drm-amdgpu-move-nbio-sdma_doorbell_range-into-sdma-code-for-vega.patch
new file mode 100644 (file)
index 0000000..a00dfdb
--- /dev/null
@@ -0,0 +1,84 @@
+From skhan@linuxfoundation.org  Tue Oct 18 08:48:30 2022
+From: Shuah Khan <skhan@linuxfoundation.org>
+Date: Mon, 17 Oct 2022 19:07:45 -0600
+Subject: Revert "drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega"
+To: sashal@kernel.org, gregkh@linuxfoundation.org
+Cc: Shuah Khan <skhan@linuxfoundation.org>, alexander.deucher@amd.com, linux-kernel@vger.kernel.org, stable@vger.kernel.org
+Message-ID: <20221018010746.603662-1-skhan@linuxfoundation.org>
+
+From: Shuah Khan <skhan@linuxfoundation.org>
+
+This reverts commit 9f55f36f749a7608eeef57d7d72991a9bd557341 which is
+commit e3163bc8ffdfdb405e10530b140135b2ee487f89 upstream.
+
+This commit causes repeated WARN_ONs from
+
+drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amd
+gpu_dm.c:7391 amdgpu_dm_atomic_commit_tail+0x23b9/0x2430 [amdgpu]
+
+dmesg fills up with the following messages and drm initialization takes
+a very long time.
+
+Cc: <stable@vger.kernel.org>    # 5.10
+Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c |    5 -----
+ drivers/gpu/drm/amd/amdgpu/soc15.c     |   25 +++++++++++++++++++++++++
+ 2 files changed, 25 insertions(+), 5 deletions(-)
+
+--- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
+@@ -1475,11 +1475,6 @@ static int sdma_v4_0_start(struct amdgpu
+               WREG32_SDMA(i, mmSDMA0_CNTL, temp);
+               if (!amdgpu_sriov_vf(adev)) {
+-                      ring = &adev->sdma.instance[i].ring;
+-                      adev->nbio.funcs->sdma_doorbell_range(adev, i,
+-                              ring->use_doorbell, ring->doorbell_index,
+-                              adev->doorbell_index.sdma_doorbell_range);
+-
+                       /* unhalt engine */
+                       temp = RREG32_SDMA(i, mmSDMA0_F32_CNTL);
+                       temp = REG_SET_FIELD(temp, SDMA0_F32_CNTL, HALT, 0);
+--- a/drivers/gpu/drm/amd/amdgpu/soc15.c
++++ b/drivers/gpu/drm/amd/amdgpu/soc15.c
+@@ -1332,6 +1332,25 @@ static int soc15_common_sw_fini(void *ha
+       return 0;
+ }
++static void soc15_doorbell_range_init(struct amdgpu_device *adev)
++{
++      int i;
++      struct amdgpu_ring *ring;
++
++      /* sdma/ih doorbell range are programed by hypervisor */
++      if (!amdgpu_sriov_vf(adev)) {
++              for (i = 0; i < adev->sdma.num_instances; i++) {
++                      ring = &adev->sdma.instance[i].ring;
++                      adev->nbio.funcs->sdma_doorbell_range(adev, i,
++                              ring->use_doorbell, ring->doorbell_index,
++                              adev->doorbell_index.sdma_doorbell_range);
++              }
++
++              adev->nbio.funcs->ih_doorbell_range(adev, adev->irq.ih.use_doorbell,
++                                              adev->irq.ih.doorbell_index);
++      }
++}
++
+ static int soc15_common_hw_init(void *handle)
+ {
+       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+@@ -1351,6 +1370,12 @@ static int soc15_common_hw_init(void *ha
+       /* enable the doorbell aperture */
+       soc15_enable_doorbell_aperture(adev, true);
++      /* HW doorbell routing policy: doorbell writing not
++       * in SDMA/IH/MM/ACV range will be routed to CP. So
++       * we need to init SDMA/IH/MM/ACV doorbell range prior
++       * to CP ip block init and ring test.
++       */
++      soc15_doorbell_range_init(adev);
+       return 0;
+ }
diff --git a/queue-5.10/revert-drm-amdgpu-use-dirty-framebuffer-helper.patch b/queue-5.10/revert-drm-amdgpu-use-dirty-framebuffer-helper.patch
new file mode 100644 (file)
index 0000000..485ecf0
--- /dev/null
@@ -0,0 +1,51 @@
+From skhan@linuxfoundation.org  Tue Oct 18 08:49:21 2022
+From: Shuah Khan <skhan@linuxfoundation.org>
+Date: Mon, 17 Oct 2022 19:07:46 -0600
+Subject: Revert "drm/amdgpu: use dirty framebuffer helper"
+To: gregkh@linuxfoundation.org, sashal@kernel.org
+Cc: Shuah Khan <skhan@linuxfoundation.org>, alexander.deucher@amd.com, hamza.mahfooz@amd.com, linux-kernel@vger.kernel.org, stable@vger.kernel.org
+Message-ID: <20221018010746.603662-2-skhan@linuxfoundation.org>
+
+From: Shuah Khan <skhan@linuxfoundation.org>
+
+This reverts commit 867b2b2b6802fb3995a0065fc39e0e7e20d8004d which is
+commit 66f99628eb24409cb8feb5061f78283c8b65f820 upstream.
+
+With this commit, dmesg fills up with the following messages and drm
+initialization takes a very long time. This commit has bee reverted
+from 5.4
+
+[drm] Fence fallback timer expired on ring sdma0
+[drm] Fence fallback timer expired on ring gfx
+[drm] Fence fallback timer expired on ring sdma0
+[drm] Fence fallback timer expired on ring gfx
+[drm] Fence fallback timer expired on ring sdma0
+[drm] Fence fallback timer expired on ring sdma0
+[drm] Fence fallback timer expired on ring sdma0
+[drm] Fence fallback timer expired on ring gfx
+
+Cc: <stable@vger.kernel.org>    # 5.10
+Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_display.c |    2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
+@@ -35,7 +35,6 @@
+ #include <linux/pci.h>
+ #include <linux/pm_runtime.h>
+ #include <drm/drm_crtc_helper.h>
+-#include <drm/drm_damage_helper.h>
+ #include <drm/drm_edid.h>
+ #include <drm/drm_gem_framebuffer_helper.h>
+ #include <drm/drm_fb_helper.h>
+@@ -499,7 +498,6 @@ bool amdgpu_display_ddc_probe(struct amd
+ static const struct drm_framebuffer_funcs amdgpu_fb_funcs = {
+       .destroy = drm_gem_fb_destroy,
+       .create_handle = drm_gem_fb_create_handle,
+-      .dirty = drm_atomic_helper_dirtyfb,
+ };
+ uint32_t amdgpu_display_supported_domains(struct amdgpu_device *adev,
index 9bab94cba31e27f353a8b973fea1d5067a708bba..4a8e5998c037b8fb8c1f2576e30d306110bffd8b 100644 (file)
@@ -456,3 +456,5 @@ net-ieee802154-don-t-warn-zero-sized-raw_sendmsg.patch
 phy-qcom-qmp-fix-msm8996-pcie-phy-support.patch
 clk-fix-pointer-casting-to-prevent-oops-in-devm_clk_release.patch
 net-wwan-t7xx-use-gfp_atomic-under-spin-lock-in-t7xx_cldma_gpd_set_next_ptr.patch
+revert-drm-amdgpu-move-nbio-sdma_doorbell_range-into-sdma-code-for-vega.patch
+revert-drm-amdgpu-use-dirty-framebuffer-helper.patch