diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0958-drm-amdgpu-add-dal-support-for-polaris.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0958-drm-amdgpu-add-dal-support-for-polaris.patch | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0958-drm-amdgpu-add-dal-support-for-polaris.patch b/common/recipes-kernel/linux/files/0958-drm-amdgpu-add-dal-support-for-polaris.patch new file mode 100644 index 00000000..aa26bac7 --- /dev/null +++ b/common/recipes-kernel/linux/files/0958-drm-amdgpu-add-dal-support-for-polaris.patch @@ -0,0 +1,130 @@ +From b301cf00dd28222426a3f14f20cf833a521c5dd1 Mon Sep 17 00:00:00 2001 +From: Alex Deucher <alexander.deucher@amd.com> +Date: Tue, 15 Mar 2016 12:30:09 -0400 +Subject: [PATCH 0958/1110] drm/amdgpu: add dal support for polaris + +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 +- + drivers/gpu/drm/amd/amdgpu/vi.c | 79 ++++++++++++++++++++++++++++++ + 2 files changed, 82 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +index b73533d..8885e9e 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +@@ -1407,9 +1407,11 @@ bool amdgpu_device_has_dal_support(struct amdgpu_device *adev) + case CHIP_HAWAII: + return amdgpu_dal != 0; + #endif +-#if defined(CONFIG_DRM_AMD_DAL) && defined(CONFIG_DRM_AMD_DAL_DCE11_0) ++#if defined(CONFIG_DRM_AMD_DAL) && (defined(CONFIG_DRM_AMD_DAL_DCE11_0) || defined(CONFIG_DRM_AMD_DAL_DCE11_2)) + case CHIP_CARRIZO: + case CHIP_STONEY: ++ case CHIP_POLARIS11: ++ case CHIP_POLARIS10: + return amdgpu_dal != 0; + #endif + #if defined(CONFIG_DRM_AMD_DAL) && defined(CONFIG_DRM_AMD_DAL_DCE10_0) +diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c +index ef80cfb..8d876a7 100644 +--- a/drivers/gpu/drm/amd/amdgpu/vi.c ++++ b/drivers/gpu/drm/amd/amdgpu/vi.c +@@ -1144,6 +1144,75 @@ static const struct amdgpu_ip_block_version cz_ip_blocks_dal[] = + #endif + }; + ++static const struct amdgpu_ip_block_version polaris11_ip_blocks_dal[] = ++{ ++ /* ORDER MATTERS! */ ++ { ++ .type = AMD_IP_BLOCK_TYPE_COMMON, ++ .major = 2, ++ .minor = 0, ++ .rev = 0, ++ .funcs = &vi_common_ip_funcs, ++ }, ++ { ++ .type = AMD_IP_BLOCK_TYPE_GMC, ++ .major = 8, ++ .minor = 1, ++ .rev = 0, ++ .funcs = &gmc_v8_0_ip_funcs, ++ }, ++ { ++ .type = AMD_IP_BLOCK_TYPE_IH, ++ .major = 3, ++ .minor = 1, ++ .rev = 0, ++ .funcs = &tonga_ih_ip_funcs, ++ }, ++ { ++ .type = AMD_IP_BLOCK_TYPE_SMC, ++ .major = 7, ++ .minor = 2, ++ .rev = 0, ++ /* To Do */ ++ .funcs = &amdgpu_pp_ip_funcs, ++ }, ++ { ++ .type = AMD_IP_BLOCK_TYPE_DCE, ++ .major = 11, ++ .minor = 2, ++ .rev = 0, ++ .funcs = &amdgpu_dm_funcs, ++ }, ++ { ++ .type = AMD_IP_BLOCK_TYPE_GFX, ++ .major = 8, ++ .minor = 0, ++ .rev = 0, ++ .funcs = &gfx_v8_0_ip_funcs, ++ }, ++ { ++ .type = AMD_IP_BLOCK_TYPE_SDMA, ++ .major = 3, ++ .minor = 1, ++ .rev = 0, ++ .funcs = &sdma_v3_0_ip_funcs, ++ }, ++ { ++ .type = AMD_IP_BLOCK_TYPE_UVD, ++ .major = 6, ++ .minor = 3, ++ .rev = 0, ++ .funcs = &uvd_v6_0_ip_funcs, ++ }, ++ { ++ .type = AMD_IP_BLOCK_TYPE_VCE, ++ .major = 3, ++ .minor = 4, ++ .rev = 0, ++ .funcs = &vce_v3_0_ip_funcs, ++ }, ++}; ++ + static const struct amdgpu_ip_block_version tonga_ip_blocks_dal[] = + { + /* ORDER MATTERS! */ +@@ -1318,8 +1387,18 @@ int vi_set_ip_blocks(struct amdgpu_device *adev) + break; + case CHIP_POLARIS11: + case CHIP_POLARIS10: ++#if defined(CONFIG_DRM_AMD_DAL) ++ if (amdgpu_dal && amdgpu_device_has_dal_support(adev)) { ++ adev->ip_blocks = polaris11_ip_blocks_dal; ++ adev->num_ip_blocks = ARRAY_SIZE(polaris11_ip_blocks_dal); ++ } else { ++ adev->ip_blocks = polaris11_ip_blocks; ++ adev->num_ip_blocks = ARRAY_SIZE(polaris11_ip_blocks); ++ } ++#else + adev->ip_blocks = polaris11_ip_blocks; + adev->num_ip_blocks = ARRAY_SIZE(polaris11_ip_blocks); ++#endif + break; + case CHIP_CARRIZO: + case CHIP_STONEY: +-- +2.7.4 + |