--- /dev/null
+From alexander.deucher@amd.com Tue Oct 25 16:16:32 2022
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Thu, 20 Oct 2022 11:38:57 -0400
+Subject: Revert "drm/amdgpu: make sure to init common IP before gmc"
+To: <stable@vger.kernel.org>, <gregkh@linuxfoundation.org>
+Cc: Alex Deucher <alexander.deucher@amd.com>, Shuah Khan <skhan@linuxfoundation.org>, Sasha Levin <sashal@kernel.org>
+Message-ID: <20221020153857.565160-2-alexander.deucher@amd.com>
+
+From: Alex Deucher <alexander.deucher@amd.com>
+
+This reverts commit 7b0db849ea030a70b8fb9c9afec67c81f955482e which is
+commit a8671493d2074950553da3cf07d1be43185ef6c6 upstream.
+
+The patches that this patch depends on were not backported properly
+and the patch that caused the regression that this patch set fixed
+was reverted in commit 412b844143e3 ("Revert "PCI/portdrv: Don't disable AER reporting in get_port_device_capability()"").
+This isn't necessary and causes a regression so drop it.
+
+Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/2216
+Cc: Shuah Khan <skhan@linuxfoundation.org>
+Cc: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Cc: <stable@vger.kernel.org> # 5.10
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 14 +++-----------
+ 1 file changed, 3 insertions(+), 11 deletions(-)
+
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -2179,16 +2179,8 @@ static int amdgpu_device_ip_init(struct
+ }
+ adev->ip_blocks[i].status.sw = true;
+
+- if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_COMMON) {
+- /* need to do common hw init early so everything is set up for gmc */
+- r = adev->ip_blocks[i].version->funcs->hw_init((void *)adev);
+- if (r) {
+- DRM_ERROR("hw_init %d failed %d\n", i, r);
+- goto init_failed;
+- }
+- adev->ip_blocks[i].status.hw = true;
+- } else if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC) {
+- /* need to do gmc hw init early so we can allocate gpu mem */
++ /* need to do gmc hw init early so we can allocate gpu mem */
++ if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC) {
+ /* Try to reserve bad pages early */
+ if (amdgpu_sriov_vf(adev))
+ amdgpu_virt_exchange_data(adev);
+@@ -2770,8 +2762,8 @@ static int amdgpu_device_ip_reinit_early
+ int i, r;
+
+ static enum amd_ip_block_type ip_order[] = {
+- AMD_IP_BLOCK_TYPE_COMMON,
+ AMD_IP_BLOCK_TYPE_GMC,
++ AMD_IP_BLOCK_TYPE_COMMON,
+ AMD_IP_BLOCK_TYPE_PSP,
+ AMD_IP_BLOCK_TYPE_IH,
+ };