aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/5531-drm-amdgpu-Change-SI-CI-gfx-sdma-smu-init-sequence.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/5531-drm-amdgpu-Change-SI-CI-gfx-sdma-smu-init-sequence.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/5531-drm-amdgpu-Change-SI-CI-gfx-sdma-smu-init-sequence.patch145
1 files changed, 145 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/5531-drm-amdgpu-Change-SI-CI-gfx-sdma-smu-init-sequence.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/5531-drm-amdgpu-Change-SI-CI-gfx-sdma-smu-init-sequence.patch
new file mode 100644
index 00000000..cae65538
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/5531-drm-amdgpu-Change-SI-CI-gfx-sdma-smu-init-sequence.patch
@@ -0,0 +1,145 @@
+From c5a7b2d2d5f980619f2747e5aadd0eae667d88ee 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 5531/5725] 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 78ab939..f41f5f5 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 feb86ee..1980e43 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.7.4
+