aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0921-drm-amdgpu-add-SDMA-support-for-ELM-BAF.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0921-drm-amdgpu-add-SDMA-support-for-ELM-BAF.patch')
-rw-r--r--common/recipes-kernel/linux/files/0921-drm-amdgpu-add-SDMA-support-for-ELM-BAF.patch96
1 files changed, 96 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0921-drm-amdgpu-add-SDMA-support-for-ELM-BAF.patch b/common/recipes-kernel/linux/files/0921-drm-amdgpu-add-SDMA-support-for-ELM-BAF.patch
new file mode 100644
index 00000000..86744607
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0921-drm-amdgpu-add-SDMA-support-for-ELM-BAF.patch
@@ -0,0 +1,96 @@
+From 77a082f6a3c7bd4ace7422434094979f5639ad03 Mon Sep 17 00:00:00 2001
+From: Flora Cui <Flora.Cui@amd.com>
+Date: Thu, 29 Oct 2015 17:26:22 +0800
+Subject: [PATCH 0921/1110] drm/amdgpu: add SDMA support for ELM/BAF
+
+V2: seperate baffin & ellesmere settings instead of using fiji ones.
+
+Signed-off-by: Flora Cui <Flora.Cui@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 47 ++++++++++++++++++++++++++++++++++
+ 1 file changed, 47 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
+index 368a46b..6b24a9c 100644
+--- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
+@@ -56,6 +56,11 @@ MODULE_FIRMWARE("amdgpu/carrizo_sdma1.bin");
+ MODULE_FIRMWARE("amdgpu/fiji_sdma.bin");
+ MODULE_FIRMWARE("amdgpu/fiji_sdma1.bin");
+ MODULE_FIRMWARE("amdgpu/stoney_sdma.bin");
++MODULE_FIRMWARE("amdgpu/ellesmere_sdma.bin");
++MODULE_FIRMWARE("amdgpu/ellesmere_sdma1.bin");
++MODULE_FIRMWARE("amdgpu/baffin_sdma.bin");
++MODULE_FIRMWARE("amdgpu/baffin_sdma1.bin");
++
+
+ static const u32 sdma_offsets[SDMA_MAX_INSTANCE] =
+ {
+@@ -101,6 +106,32 @@ static const u32 fiji_mgcg_cgcg_init[] =
+ mmSDMA1_CLK_CTRL, 0xff000ff0, 0x00000100
+ };
+
++static const u32 golden_settings_baffin_a11[] =
++{
++ mmSDMA0_CHICKEN_BITS, 0xfc910007, 0x00810007,
++ mmSDMA0_GFX_IB_CNTL, 0x800f0111, 0x00000100,
++ mmSDMA0_RLC0_IB_CNTL, 0x800f0111, 0x00000100,
++ mmSDMA0_RLC1_IB_CNTL, 0x800f0111, 0x00000100,
++ mmSDMA1_CHICKEN_BITS, 0xfc910007, 0x00810007,
++ mmSDMA1_GFX_IB_CNTL, 0x800f0111, 0x00000100,
++ mmSDMA1_RLC0_IB_CNTL, 0x800f0111, 0x00000100,
++ mmSDMA1_RLC1_IB_CNTL, 0x800f0111, 0x00000100,
++};
++
++static const u32 golden_settings_ellesmere_a11[] =
++{
++ mmSDMA0_CHICKEN_BITS, 0xfc910007, 0x00810007,
++ mmSDMA0_CLK_CTRL, 0xff000fff, 0x00000000,
++ mmSDMA0_GFX_IB_CNTL, 0x800f0111, 0x00000100,
++ mmSDMA0_RLC0_IB_CNTL, 0x800f0111, 0x00000100,
++ mmSDMA0_RLC1_IB_CNTL, 0x800f0111, 0x00000100,
++ mmSDMA1_CHICKEN_BITS, 0xfc910007, 0x00810007,
++ mmSDMA1_CLK_CTRL, 0xff000fff, 0x00000000,
++ mmSDMA1_GFX_IB_CNTL, 0x800f0111, 0x00000100,
++ mmSDMA1_RLC0_IB_CNTL, 0x800f0111, 0x00000100,
++ mmSDMA1_RLC1_IB_CNTL, 0x800f0111, 0x00000100,
++};
++
+ static const u32 cz_golden_settings_a11[] =
+ {
+ mmSDMA0_CHICKEN_BITS, 0xfc910007, 0x00810007,
+@@ -172,6 +203,16 @@ static void sdma_v3_0_init_golden_registers(struct amdgpu_device *adev)
+ golden_settings_tonga_a11,
+ (const u32)ARRAY_SIZE(golden_settings_tonga_a11));
+ break;
++ case CHIP_BAFFIN:
++ amdgpu_program_register_sequence(adev,
++ golden_settings_baffin_a11,
++ (const u32)ARRAY_SIZE(golden_settings_baffin_a11));
++ break;
++ case CHIP_ELLESMERE:
++ amdgpu_program_register_sequence(adev,
++ golden_settings_ellesmere_a11,
++ (const u32)ARRAY_SIZE(golden_settings_ellesmere_a11));
++ break;
+ case CHIP_CARRIZO:
+ amdgpu_program_register_sequence(adev,
+ cz_mgcg_cgcg_init,
+@@ -220,6 +261,12 @@ static int sdma_v3_0_init_microcode(struct amdgpu_device *adev)
+ case CHIP_FIJI:
+ chip_name = "fiji";
+ break;
++ case CHIP_BAFFIN:
++ chip_name = "baffin";
++ break;
++ case CHIP_ELLESMERE:
++ chip_name = "ellesmere";
++ break;
+ case CHIP_CARRIZO:
+ chip_name = "carrizo";
+ break;
+--
+2.7.4
+