diff options
| author | Dave Airlie <airlied@redhat.com> | 2018-08-07 16:09:08 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2018-08-07 16:22:23 -0400 |
| commit | 940fbcb73fd25b517fa10c5a9cc96ca0ce1a2fc4 (patch) | |
| tree | c967fae5501fefe9258f9891371977833bd2a72c /drivers/gpu/drm/amd/amdgpu/amdgpu_queue_mgr.c | |
| parent | 569f0a8694d0ff13c5d296a594c7d8cec8d6f35f (diff) | |
| parent | df36b2fb8390d98453fff1aae3927095fe9ff36c (diff) | |
Merge branch 'drm-next-4.19' of git://people.freedesktop.org/~agd5f/linux into drm-next
Fixes for 4.19:
- Fix UVD 7.2 instance handling
- Fix UVD 7.2 harvesting
- GPU scheduler fix for when a process is killed
- TTM cleanups
- amdgpu CS bo_list fixes
- Powerplay fixes for polaris12 and CZ/ST
- DC fixes for link training certain HMDs
- DC fix for vega10 blank screen in certain cases
From: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180801222906.1016-1-alexander.deucher@amd.com
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_queue_mgr.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_queue_mgr.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_queue_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_queue_mgr.c index d8357290ad09..a172bba32b45 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_queue_mgr.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_queue_mgr.c | |||
| @@ -214,7 +214,7 @@ int amdgpu_queue_mgr_map(struct amdgpu_device *adev, | |||
| 214 | u32 hw_ip, u32 instance, u32 ring, | 214 | u32 hw_ip, u32 instance, u32 ring, |
| 215 | struct amdgpu_ring **out_ring) | 215 | struct amdgpu_ring **out_ring) |
| 216 | { | 216 | { |
| 217 | int r, ip_num_rings; | 217 | int i, r, ip_num_rings = 0; |
| 218 | struct amdgpu_queue_mapper *mapper = &mgr->mapper[hw_ip]; | 218 | struct amdgpu_queue_mapper *mapper = &mgr->mapper[hw_ip]; |
| 219 | 219 | ||
| 220 | if (!adev || !mgr || !out_ring) | 220 | if (!adev || !mgr || !out_ring) |
| @@ -243,14 +243,21 @@ int amdgpu_queue_mgr_map(struct amdgpu_device *adev, | |||
| 243 | ip_num_rings = adev->sdma.num_instances; | 243 | ip_num_rings = adev->sdma.num_instances; |
| 244 | break; | 244 | break; |
| 245 | case AMDGPU_HW_IP_UVD: | 245 | case AMDGPU_HW_IP_UVD: |
| 246 | ip_num_rings = adev->uvd.num_uvd_inst; | 246 | for (i = 0; i < adev->uvd.num_uvd_inst; i++) { |
| 247 | if (!(adev->uvd.harvest_config & (1 << i))) | ||
| 248 | ip_num_rings++; | ||
| 249 | } | ||
| 247 | break; | 250 | break; |
| 248 | case AMDGPU_HW_IP_VCE: | 251 | case AMDGPU_HW_IP_VCE: |
| 249 | ip_num_rings = adev->vce.num_rings; | 252 | ip_num_rings = adev->vce.num_rings; |
| 250 | break; | 253 | break; |
| 251 | case AMDGPU_HW_IP_UVD_ENC: | 254 | case AMDGPU_HW_IP_UVD_ENC: |
| 255 | for (i = 0; i < adev->uvd.num_uvd_inst; i++) { | ||
| 256 | if (!(adev->uvd.harvest_config & (1 << i))) | ||
| 257 | ip_num_rings++; | ||
| 258 | } | ||
| 252 | ip_num_rings = | 259 | ip_num_rings = |
| 253 | adev->uvd.num_enc_rings * adev->uvd.num_uvd_inst; | 260 | adev->uvd.num_enc_rings * ip_num_rings; |
| 254 | break; | 261 | break; |
| 255 | case AMDGPU_HW_IP_VCN_DEC: | 262 | case AMDGPU_HW_IP_VCN_DEC: |
| 256 | ip_num_rings = 1; | 263 | ip_num_rings = 1; |
