aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2015-07-27 14:24:14 -0400
committerAlex Deucher <alexander.deucher@amd.com>2015-08-17 16:50:29 -0400
commit188a9bcd6cbe55c6fea23309548741d8e34bb590 (patch)
treec3fe68b4bc170750eff56ba1d300ad6fcd5e1017
parent974ee3db0ff88e5413b734e634119d1e8a10a77f (diff)
drm/amdgpu: add support for VCE 3.x on Fiji
VCE on fiji is single pipe only. Reviewed-by: David Zhang <david1.zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c5
-rw-r--r--drivers/gpu/drm/amd/amdgpu/vce_v3_0.c7
-rw-r--r--drivers/gpu/drm/amd/amdgpu/vi.c7
3 files changed, 19 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
index d3ca73090e39..172571968c9e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
@@ -48,6 +48,7 @@
48#endif 48#endif
49#define FIRMWARE_TONGA "amdgpu/tonga_vce.bin" 49#define FIRMWARE_TONGA "amdgpu/tonga_vce.bin"
50#define FIRMWARE_CARRIZO "amdgpu/carrizo_vce.bin" 50#define FIRMWARE_CARRIZO "amdgpu/carrizo_vce.bin"
51#define FIRMWARE_FIJI "amdgpu/fiji_vce.bin"
51 52
52#ifdef CONFIG_DRM_AMDGPU_CIK 53#ifdef CONFIG_DRM_AMDGPU_CIK
53MODULE_FIRMWARE(FIRMWARE_BONAIRE); 54MODULE_FIRMWARE(FIRMWARE_BONAIRE);
@@ -58,6 +59,7 @@ MODULE_FIRMWARE(FIRMWARE_MULLINS);
58#endif 59#endif
59MODULE_FIRMWARE(FIRMWARE_TONGA); 60MODULE_FIRMWARE(FIRMWARE_TONGA);
60MODULE_FIRMWARE(FIRMWARE_CARRIZO); 61MODULE_FIRMWARE(FIRMWARE_CARRIZO);
62MODULE_FIRMWARE(FIRMWARE_FIJI);
61 63
62static void amdgpu_vce_idle_work_handler(struct work_struct *work); 64static void amdgpu_vce_idle_work_handler(struct work_struct *work);
63 65
@@ -101,6 +103,9 @@ int amdgpu_vce_sw_init(struct amdgpu_device *adev, unsigned long size)
101 case CHIP_CARRIZO: 103 case CHIP_CARRIZO:
102 fw_name = FIRMWARE_CARRIZO; 104 fw_name = FIRMWARE_CARRIZO;
103 break; 105 break;
106 case CHIP_FIJI:
107 fw_name = FIRMWARE_FIJI;
108 break;
104 109
105 default: 110 default:
106 return -EINVAL; 111 return -EINVAL;
diff --git a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c
index 5a5a40c331cf..4349658081ff 100644
--- a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c
@@ -205,6 +205,13 @@ static unsigned vce_v3_0_get_harvest_config(struct amdgpu_device *adev)
205 u32 tmp; 205 u32 tmp;
206 unsigned ret; 206 unsigned ret;
207 207
208 /* Fiji is single pipe */
209 if (adev->asic_type == CHIP_FIJI) {
210 ret = AMDGPU_VCE_HARVEST_VCE1;
211 return ret;
212 }
213
214 /* Tonga and CZ are dual or single pipe */
208 if (adev->flags & AMD_IS_APU) 215 if (adev->flags & AMD_IS_APU)
209 tmp = (RREG32_SMC(ixVCE_HARVEST_FUSE_MACRO__ADDRESS) & 216 tmp = (RREG32_SMC(ixVCE_HARVEST_FUSE_MACRO__ADDRESS) &
210 VCE_HARVEST_FUSE_MACRO__MASK) >> 217 VCE_HARVEST_FUSE_MACRO__MASK) >>
diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c
index 7815ac7d446f..552d9e75ad1b 100644
--- a/drivers/gpu/drm/amd/amdgpu/vi.c
+++ b/drivers/gpu/drm/amd/amdgpu/vi.c
@@ -1223,6 +1223,13 @@ static const struct amdgpu_ip_block_version fiji_ip_blocks[] =
1223 .rev = 0, 1223 .rev = 0,
1224 .funcs = &uvd_v6_0_ip_funcs, 1224 .funcs = &uvd_v6_0_ip_funcs,
1225 }, 1225 },
1226 {
1227 .type = AMD_IP_BLOCK_TYPE_VCE,
1228 .major = 3,
1229 .minor = 0,
1230 .rev = 0,
1231 .funcs = &vce_v3_0_ip_funcs,
1232 },
1226}; 1233};
1227 1234
1228static const struct amdgpu_ip_block_version cz_ip_blocks[] = 1235static const struct amdgpu_ip_block_version cz_ip_blocks[] =