summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2022-10-20 11:38:57 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-10-26 13:25:56 +0200
commit243c8f42ba107216ab9c903e0470cc417672ae33 (patch)
treee638f70d6d612d5a3cbf3fff46c79f7418154d0d
parent8026d58b495a2c1143b126b9161113696ec4e77e (diff)
downloadlinux-stable-243c8f42ba107216ab9c903e0470cc417672ae33.tar.gz
linux-stable-243c8f42ba107216ab9c903e0470cc417672ae33.tar.bz2
linux-stable-243c8f42ba107216ab9c903e0470cc417672ae33.zip
Revert "drm/amdgpu: make sure to init common IP before gmc"
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>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_device.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 881045e600af..bde0496d2f15 100644
--- 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 amdgpu_device *adev)
}
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_sriov(struct amdgpu_device *adev)
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,
};