diff options
Diffstat (limited to 'meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0376-drm-amdgpu-Add-Fiji-support-to-the-SDMA-3.0-IP-modul.patch')
-rw-r--r-- | meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0376-drm-amdgpu-Add-Fiji-support-to-the-SDMA-3.0-IP-modul.patch | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0376-drm-amdgpu-Add-Fiji-support-to-the-SDMA-3.0-IP-modul.patch b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0376-drm-amdgpu-Add-Fiji-support-to-the-SDMA-3.0-IP-modul.patch new file mode 100644 index 00000000..b3baeb41 --- /dev/null +++ b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0376-drm-amdgpu-Add-Fiji-support-to-the-SDMA-3.0-IP-modul.patch @@ -0,0 +1,102 @@ +From 1a5bbb669597d7c47da2d7fd03ed7c33989257b8 Mon Sep 17 00:00:00 2001 +From: David Zhang <david1.zhang@amd.com> +Date: Wed, 8 Jul 2015 17:29:27 +0800 +Subject: [PATCH 0376/1050] drm/amdgpu: Add Fiji support to the SDMA 3.0 IP + module +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: David Zhang <david1.zhang@amd.com> +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com> +Reviewed-by: Christian König <christian.koenig@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 31 +++++++++++++++++++++++++++++++ + drivers/gpu/drm/amd/amdgpu/vi.c | 7 +++++++ + 2 files changed, 38 insertions(+) + +diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c +index 2b86569..8f4aac2 100644 +--- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c +@@ -53,6 +53,8 @@ MODULE_FIRMWARE("amdgpu/tonga_sdma.bin"); + MODULE_FIRMWARE("amdgpu/tonga_sdma1.bin"); + MODULE_FIRMWARE("amdgpu/carrizo_sdma.bin"); + MODULE_FIRMWARE("amdgpu/carrizo_sdma1.bin"); ++MODULE_FIRMWARE("amdgpu/fiji_sdma.bin"); ++MODULE_FIRMWARE("amdgpu/fiji_sdma1.bin"); + + static const u32 sdma_offsets[SDMA_MAX_INSTANCE] = + { +@@ -80,6 +82,24 @@ static const u32 tonga_mgcg_cgcg_init[] = + mmSDMA1_CLK_CTRL, 0xff000ff0, 0x00000100 + }; + ++static const u32 golden_settings_fiji_a10[] = ++{ ++ 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 fiji_mgcg_cgcg_init[] = ++{ ++ mmSDMA0_CLK_CTRL, 0xff000ff0, 0x00000100, ++ mmSDMA1_CLK_CTRL, 0xff000ff0, 0x00000100 ++}; ++ + static const u32 cz_golden_settings_a11[] = + { + mmSDMA0_CHICKEN_BITS, 0xfc910007, 0x00810007, +@@ -122,6 +142,14 @@ static const u32 cz_mgcg_cgcg_init[] = + static void sdma_v3_0_init_golden_registers(struct amdgpu_device *adev) + { + switch (adev->asic_type) { ++ case CHIP_FIJI: ++ amdgpu_program_register_sequence(adev, ++ fiji_mgcg_cgcg_init, ++ (const u32)ARRAY_SIZE(fiji_mgcg_cgcg_init)); ++ amdgpu_program_register_sequence(adev, ++ golden_settings_fiji_a10, ++ (const u32)ARRAY_SIZE(golden_settings_fiji_a10)); ++ break; + case CHIP_TONGA: + amdgpu_program_register_sequence(adev, + tonga_mgcg_cgcg_init, +@@ -167,6 +195,9 @@ static int sdma_v3_0_init_microcode(struct amdgpu_device *adev) + case CHIP_TONGA: + chip_name = "tonga"; + break; ++ case CHIP_FIJI: ++ chip_name = "fiji"; ++ break; + case CHIP_CARRIZO: + chip_name = "carrizo"; + break; +diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c +index 0cd248b..8881dd8 100644 +--- a/drivers/gpu/drm/amd/amdgpu/vi.c ++++ b/drivers/gpu/drm/amd/amdgpu/vi.c +@@ -1209,6 +1209,13 @@ static const struct amdgpu_ip_block_version fiji_ip_blocks[] = + .rev = 0, + .funcs = &gfx_v8_0_ip_funcs, + }, ++ { ++ .type = AMD_IP_BLOCK_TYPE_SDMA, ++ .major = 3, ++ .minor = 0, ++ .rev = 0, ++ .funcs = &sdma_v3_0_ip_funcs, ++ }, + }; + + static const struct amdgpu_ip_block_version cz_ip_blocks[] = +-- +1.9.1 + |