aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
index d274ae535530..a33804bd3314 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
@@ -55,6 +55,7 @@
55#define FIRMWARE_POLARIS12 "amdgpu/polaris12_vce.bin" 55#define FIRMWARE_POLARIS12 "amdgpu/polaris12_vce.bin"
56 56
57#define FIRMWARE_VEGA10 "amdgpu/vega10_vce.bin" 57#define FIRMWARE_VEGA10 "amdgpu/vega10_vce.bin"
58#define FIRMWARE_VEGA12 "amdgpu/vega12_vce.bin"
58 59
59#ifdef CONFIG_DRM_AMDGPU_CIK 60#ifdef CONFIG_DRM_AMDGPU_CIK
60MODULE_FIRMWARE(FIRMWARE_BONAIRE); 61MODULE_FIRMWARE(FIRMWARE_BONAIRE);
@@ -72,6 +73,7 @@ MODULE_FIRMWARE(FIRMWARE_POLARIS11);
72MODULE_FIRMWARE(FIRMWARE_POLARIS12); 73MODULE_FIRMWARE(FIRMWARE_POLARIS12);
73 74
74MODULE_FIRMWARE(FIRMWARE_VEGA10); 75MODULE_FIRMWARE(FIRMWARE_VEGA10);
76MODULE_FIRMWARE(FIRMWARE_VEGA12);
75 77
76static void amdgpu_vce_idle_work_handler(struct work_struct *work); 78static void amdgpu_vce_idle_work_handler(struct work_struct *work);
77 79
@@ -127,11 +129,14 @@ int amdgpu_vce_sw_init(struct amdgpu_device *adev, unsigned long size)
127 case CHIP_POLARIS11: 129 case CHIP_POLARIS11:
128 fw_name = FIRMWARE_POLARIS11; 130 fw_name = FIRMWARE_POLARIS11;
129 break; 131 break;
132 case CHIP_POLARIS12:
133 fw_name = FIRMWARE_POLARIS12;
134 break;
130 case CHIP_VEGA10: 135 case CHIP_VEGA10:
131 fw_name = FIRMWARE_VEGA10; 136 fw_name = FIRMWARE_VEGA10;
132 break; 137 break;
133 case CHIP_POLARIS12: 138 case CHIP_VEGA12:
134 fw_name = FIRMWARE_POLARIS12; 139 fw_name = FIRMWARE_VEGA12;
135 break; 140 break;
136 141
137 default: 142 default:
@@ -300,9 +305,6 @@ static void amdgpu_vce_idle_work_handler(struct work_struct *work)
300 container_of(work, struct amdgpu_device, vce.idle_work.work); 305 container_of(work, struct amdgpu_device, vce.idle_work.work);
301 unsigned i, count = 0; 306 unsigned i, count = 0;
302 307
303 if (amdgpu_sriov_vf(adev))
304 return;
305
306 for (i = 0; i < adev->vce.num_rings; i++) 308 for (i = 0; i < adev->vce.num_rings; i++)
307 count += amdgpu_fence_count_emitted(&adev->vce.ring[i]); 309 count += amdgpu_fence_count_emitted(&adev->vce.ring[i]);
308 310
@@ -362,7 +364,8 @@ void amdgpu_vce_ring_begin_use(struct amdgpu_ring *ring)
362 */ 364 */
363void amdgpu_vce_ring_end_use(struct amdgpu_ring *ring) 365void amdgpu_vce_ring_end_use(struct amdgpu_ring *ring)
364{ 366{
365 schedule_delayed_work(&ring->adev->vce.idle_work, VCE_IDLE_TIMEOUT); 367 if (!amdgpu_sriov_vf(ring->adev))
368 schedule_delayed_work(&ring->adev->vce.idle_work, VCE_IDLE_TIMEOUT);
366} 369}
367 370
368/** 371/**