diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0489-drm-amdgpu-Change-SI-CI-gfx-sdma-smu-init-sequence.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0489-drm-amdgpu-Change-SI-CI-gfx-sdma-smu-init-sequence.patch | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0489-drm-amdgpu-Change-SI-CI-gfx-sdma-smu-init-sequence.patch b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0489-drm-amdgpu-Change-SI-CI-gfx-sdma-smu-init-sequence.patch new file mode 100644 index 00000000..bc45323a --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0489-drm-amdgpu-Change-SI-CI-gfx-sdma-smu-init-sequence.patch @@ -0,0 +1,145 @@ +From 4ac5d8b1e758135a8cdc9fac8f2d0499e8d33249 Mon Sep 17 00:00:00 2001 +From: Rex Zhu <Rex.Zhu@amd.com> +Date: Sun, 30 Sep 2018 17:32:36 +0800 +Subject: [PATCH 0489/2940] drm/amdgpu: Change SI/CI gfx/sdma/smu init sequence + +initialize gfx/sdma before dpm features enabled. + +Acked-by: Alex Deucher <alexander.deucher@amd.com> +Signed-off-by: Rex Zhu <Rex.Zhu@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/cik.c | 17 +++++++++-------- + drivers/gpu/drm/amd/amdgpu/si.c | 13 +++++++------ + 2 files changed, 16 insertions(+), 14 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c +index 78ab939ae5d8..f41f5f57e9f3 100644 +--- a/drivers/gpu/drm/amd/amdgpu/cik.c ++++ b/drivers/gpu/drm/amd/amdgpu/cik.c +@@ -2002,6 +2002,8 @@ int cik_set_ip_blocks(struct amdgpu_device *adev) + amdgpu_device_ip_block_add(adev, &cik_common_ip_block); + amdgpu_device_ip_block_add(adev, &gmc_v7_0_ip_block); + amdgpu_device_ip_block_add(adev, &cik_ih_ip_block); ++ amdgpu_device_ip_block_add(adev, &gfx_v7_2_ip_block); ++ amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block); + if (amdgpu_dpm == -1) + amdgpu_device_ip_block_add(adev, &pp_smu_ip_block); + else +@@ -2014,8 +2016,6 @@ int cik_set_ip_blocks(struct amdgpu_device *adev) + #endif + else + amdgpu_device_ip_block_add(adev, &dce_v8_2_ip_block); +- amdgpu_device_ip_block_add(adev, &gfx_v7_2_ip_block); +- amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block); + amdgpu_device_ip_block_add(adev, &uvd_v4_2_ip_block); + amdgpu_device_ip_block_add(adev, &vce_v2_0_ip_block); + break; +@@ -2023,6 +2023,8 @@ int cik_set_ip_blocks(struct amdgpu_device *adev) + amdgpu_device_ip_block_add(adev, &cik_common_ip_block); + amdgpu_device_ip_block_add(adev, &gmc_v7_0_ip_block); + amdgpu_device_ip_block_add(adev, &cik_ih_ip_block); ++ amdgpu_device_ip_block_add(adev, &gfx_v7_3_ip_block); ++ amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block); + if (amdgpu_dpm == -1) + amdgpu_device_ip_block_add(adev, &pp_smu_ip_block); + else +@@ -2035,8 +2037,6 @@ int cik_set_ip_blocks(struct amdgpu_device *adev) + #endif + else + amdgpu_device_ip_block_add(adev, &dce_v8_5_ip_block); +- amdgpu_device_ip_block_add(adev, &gfx_v7_3_ip_block); +- amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block); + amdgpu_device_ip_block_add(adev, &uvd_v4_2_ip_block); + amdgpu_device_ip_block_add(adev, &vce_v2_0_ip_block); + break; +@@ -2044,6 +2044,8 @@ int cik_set_ip_blocks(struct amdgpu_device *adev) + amdgpu_device_ip_block_add(adev, &cik_common_ip_block); + amdgpu_device_ip_block_add(adev, &gmc_v7_0_ip_block); + amdgpu_device_ip_block_add(adev, &cik_ih_ip_block); ++ amdgpu_device_ip_block_add(adev, &gfx_v7_1_ip_block); ++ amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block); + amdgpu_device_ip_block_add(adev, &kv_smu_ip_block); + if (adev->enable_virtual_display) + amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block); +@@ -2053,8 +2055,7 @@ int cik_set_ip_blocks(struct amdgpu_device *adev) + #endif + else + amdgpu_device_ip_block_add(adev, &dce_v8_1_ip_block); +- amdgpu_device_ip_block_add(adev, &gfx_v7_1_ip_block); +- amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block); ++ + amdgpu_device_ip_block_add(adev, &uvd_v4_2_ip_block); + amdgpu_device_ip_block_add(adev, &vce_v2_0_ip_block); + break; +@@ -2063,6 +2064,8 @@ int cik_set_ip_blocks(struct amdgpu_device *adev) + amdgpu_device_ip_block_add(adev, &cik_common_ip_block); + amdgpu_device_ip_block_add(adev, &gmc_v7_0_ip_block); + amdgpu_device_ip_block_add(adev, &cik_ih_ip_block); ++ amdgpu_device_ip_block_add(adev, &gfx_v7_2_ip_block); ++ amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block); + amdgpu_device_ip_block_add(adev, &kv_smu_ip_block); + if (adev->enable_virtual_display) + amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block); +@@ -2072,8 +2075,6 @@ int cik_set_ip_blocks(struct amdgpu_device *adev) + #endif + else + amdgpu_device_ip_block_add(adev, &dce_v8_3_ip_block); +- amdgpu_device_ip_block_add(adev, &gfx_v7_2_ip_block); +- amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block); + amdgpu_device_ip_block_add(adev, &uvd_v4_2_ip_block); + amdgpu_device_ip_block_add(adev, &vce_v2_0_ip_block); + break; +diff --git a/drivers/gpu/drm/amd/amdgpu/si.c b/drivers/gpu/drm/amd/amdgpu/si.c +index c364ef94cc36..f8408f88cd37 100644 +--- a/drivers/gpu/drm/amd/amdgpu/si.c ++++ b/drivers/gpu/drm/amd/amdgpu/si.c +@@ -2057,13 +2057,13 @@ int si_set_ip_blocks(struct amdgpu_device *adev) + amdgpu_device_ip_block_add(adev, &si_common_ip_block); + amdgpu_device_ip_block_add(adev, &gmc_v6_0_ip_block); + amdgpu_device_ip_block_add(adev, &si_ih_ip_block); ++ amdgpu_device_ip_block_add(adev, &gfx_v6_0_ip_block); ++ amdgpu_device_ip_block_add(adev, &si_dma_ip_block); + amdgpu_device_ip_block_add(adev, &si_smu_ip_block); + if (adev->enable_virtual_display) + amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block); + else + amdgpu_device_ip_block_add(adev, &dce_v6_0_ip_block); +- amdgpu_device_ip_block_add(adev, &gfx_v6_0_ip_block); +- amdgpu_device_ip_block_add(adev, &si_dma_ip_block); + /* amdgpu_device_ip_block_add(adev, &uvd_v3_1_ip_block); */ + /* amdgpu_device_ip_block_add(adev, &vce_v1_0_ip_block); */ + break; +@@ -2071,13 +2071,14 @@ int si_set_ip_blocks(struct amdgpu_device *adev) + amdgpu_device_ip_block_add(adev, &si_common_ip_block); + amdgpu_device_ip_block_add(adev, &gmc_v6_0_ip_block); + amdgpu_device_ip_block_add(adev, &si_ih_ip_block); ++ amdgpu_device_ip_block_add(adev, &gfx_v6_0_ip_block); ++ amdgpu_device_ip_block_add(adev, &si_dma_ip_block); + amdgpu_device_ip_block_add(adev, &si_smu_ip_block); + if (adev->enable_virtual_display) + amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block); + else + amdgpu_device_ip_block_add(adev, &dce_v6_4_ip_block); +- amdgpu_device_ip_block_add(adev, &gfx_v6_0_ip_block); +- amdgpu_device_ip_block_add(adev, &si_dma_ip_block); ++ + /* amdgpu_device_ip_block_add(adev, &uvd_v3_1_ip_block); */ + /* amdgpu_device_ip_block_add(adev, &vce_v1_0_ip_block); */ + break; +@@ -2085,11 +2086,11 @@ int si_set_ip_blocks(struct amdgpu_device *adev) + amdgpu_device_ip_block_add(adev, &si_common_ip_block); + amdgpu_device_ip_block_add(adev, &gmc_v6_0_ip_block); + amdgpu_device_ip_block_add(adev, &si_ih_ip_block); ++ amdgpu_device_ip_block_add(adev, &gfx_v6_0_ip_block); ++ amdgpu_device_ip_block_add(adev, &si_dma_ip_block); + amdgpu_device_ip_block_add(adev, &si_smu_ip_block); + if (adev->enable_virtual_display) + amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block); +- amdgpu_device_ip_block_add(adev, &gfx_v6_0_ip_block); +- amdgpu_device_ip_block_add(adev, &si_dma_ip_block); + break; + default: + BUG(); +-- +2.17.1 + |