--- /dev/null
+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;
+ }
--- /dev/null
+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,