diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0322-drm-amdgpu-implement-VCE-3.0-harvesting-support-v4.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0322-drm-amdgpu-implement-VCE-3.0-harvesting-support-v4.patch | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/common/recipes-kernel/linux/files/0322-drm-amdgpu-implement-VCE-3.0-harvesting-support-v4.patch b/common/recipes-kernel/linux/files/0322-drm-amdgpu-implement-VCE-3.0-harvesting-support-v4.patch deleted file mode 100644 index 024e9fa0..00000000 --- a/common/recipes-kernel/linux/files/0322-drm-amdgpu-implement-VCE-3.0-harvesting-support-v4.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 6a585777c832f45c05d1aa8a4872b2b292a908c2 Mon Sep 17 00:00:00 2001 -From: Alex Deucher <alexander.deucher@amd.com> -Date: Fri, 10 Jul 2015 14:16:24 -0400 -Subject: [PATCH 0322/1050] drm/amdgpu: implement VCE 3.0 harvesting support - (v4) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -For boards with bad VCE blocks, only configure the working -block. - -v2: use the harvest info for pipe setup -v3: fix mask check as noted by Leo -v4: add dGPU support - -Reviewed-by: Christian König <christian.koenig@amd.com> (v2) -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> ---- - drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 +++ - drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 48 +++++++++++++++++++++++++++++++++++ - 2 files changed, 52 insertions(+) - -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h -index 0165783..e9fde72 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h -@@ -1614,6 +1614,9 @@ struct amdgpu_uvd { - #define AMDGPU_MAX_VCE_HANDLES 16 - #define AMDGPU_VCE_FIRMWARE_OFFSET 256 - -+#define AMDGPU_VCE_HARVEST_VCE0 (1 << 0) -+#define AMDGPU_VCE_HARVEST_VCE1 (1 << 1) -+ - struct amdgpu_vce { - struct amdgpu_bo *vcpu_bo; - uint64_t gpu_addr; -@@ -1626,6 +1629,7 @@ struct amdgpu_vce { - const struct firmware *fw; /* VCE firmware */ - struct amdgpu_ring ring[AMDGPU_MAX_VCE_RINGS]; - struct amdgpu_irq_src irq; -+ unsigned harvest_config; - }; - - /* -diff --git a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c -index d62c4002..d1064ca 100644 ---- a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c -+++ b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c -@@ -35,6 +35,8 @@ - #include "oss/oss_2_0_d.h" - #include "oss/oss_2_0_sh_mask.h" - #include "gca/gfx_8_0_d.h" -+#include "smu/smu_7_1_2_d.h" -+#include "smu/smu_7_1_2_sh_mask.h" - - #define GRBM_GFX_INDEX__VCE_INSTANCE__SHIFT 0x04 - #define GRBM_GFX_INDEX__VCE_INSTANCE_MASK 0x10 -@@ -112,6 +114,10 @@ static int vce_v3_0_start(struct amdgpu_device *adev) - - mutex_lock(&adev->grbm_idx_mutex); - for (idx = 0; idx < 2; ++idx) { -+ -+ if (adev->vce.harvest_config & (1 << idx)) -+ continue; -+ - if(idx == 0) - WREG32_P(mmGRBM_GFX_INDEX, 0, - ~GRBM_GFX_INDEX__VCE_INSTANCE_MASK); -@@ -190,10 +196,52 @@ static int vce_v3_0_start(struct amdgpu_device *adev) - return 0; - } - -+#define ixVCE_HARVEST_FUSE_MACRO__ADDRESS 0xC0014074 -+#define VCE_HARVEST_FUSE_MACRO__SHIFT 27 -+#define VCE_HARVEST_FUSE_MACRO__MASK 0x18000000 -+ -+static unsigned vce_v3_0_get_harvest_config(struct amdgpu_device *adev) -+{ -+ u32 tmp; -+ unsigned ret; -+ -+ if (adev->flags & AMDGPU_IS_APU) -+ tmp = (RREG32_SMC(ixVCE_HARVEST_FUSE_MACRO__ADDRESS) & -+ VCE_HARVEST_FUSE_MACRO__MASK) >> -+ VCE_HARVEST_FUSE_MACRO__SHIFT; -+ else -+ tmp = (RREG32_SMC(ixCC_HARVEST_FUSES) & -+ CC_HARVEST_FUSES__VCE_DISABLE_MASK) >> -+ CC_HARVEST_FUSES__VCE_DISABLE__SHIFT; -+ -+ switch (tmp) { -+ case 1: -+ ret = AMDGPU_VCE_HARVEST_VCE0; -+ break; -+ case 2: -+ ret = AMDGPU_VCE_HARVEST_VCE1; -+ break; -+ case 3: -+ ret = AMDGPU_VCE_HARVEST_VCE0 | AMDGPU_VCE_HARVEST_VCE1; -+ break; -+ default: -+ ret = 0; -+ } -+ -+ return ret; -+} -+ - static int vce_v3_0_early_init(void *handle) - { - struct amdgpu_device *adev = (struct amdgpu_device *)handle; - -+ adev->vce.harvest_config = vce_v3_0_get_harvest_config(adev); -+ -+ if ((adev->vce.harvest_config & -+ (AMDGPU_VCE_HARVEST_VCE0 | AMDGPU_VCE_HARVEST_VCE1)) == -+ (AMDGPU_VCE_HARVEST_VCE0 | AMDGPU_VCE_HARVEST_VCE1)) -+ return -ENOENT; -+ - vce_v3_0_set_ring_funcs(adev); - vce_v3_0_set_irq_funcs(adev); - --- -1.9.1 - |