diff options
author | Dave Airlie <airlied@redhat.com> | 2017-10-08 21:00:16 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2017-10-08 21:00:16 -0400 |
commit | bb7a9c8d712f37385a706a594d6edf6e6d2669d0 (patch) | |
tree | 701a317ca8ecc2bedc40577b657dcdda3e7428c5 /drivers/gpu/drm/amd/amdgpu/cik_ih.c | |
parent | 15438ab06515b093d61e2f35bb27d21e5e7f966e (diff) | |
parent | d3f04c98ead2b89887e1e3c09b26e4917bacdd9e (diff) |
Merge branch 'drm-next-4.15' of git://people.freedesktop.org/~agd5f/linux into drm-next
More new stuff for 4.15. Highlights:
- Add clock query interface for raven
- Add new FENCE_TO_HANDLE ioctl
- UVD video encode ring support on polaris
- transparent huge page DMA support
- deadlock fixes
- compute pipe lru tweaks
- powerplay cleanups and regression fixes
- fix duplicate symbol issue with radeon and amdgpu
- misc bug fixes
* 'drm-next-4.15' of git://people.freedesktop.org/~agd5f/linux: (72 commits)
drm/radeon/dp: make radeon_dp_get_dp_link_config static
drm/radeon: move ci_send_msg_to_smc to where it's used
drm/amd/sched: fix deadlock caused by unsignaled fences of deleted jobs
drm/amd/sched: NULL out the s_fence field after run_job
drm/amd/sched: move adding finish callback to amd_sched_job_begin
drm/amd/sched: fix an outdated comment
drm/amd/sched: rename amd_sched_entity_pop_job
drm/amdgpu: minor coding style fix
drm/ttm: add transparent huge page support for DMA allocations v2
drm/ttm: add support for different pool sizes
drm/ttm: remove unsued options from ttm_mem_global_alloc_page
drm/amdgpu: add uvd enc irq
drm/amdgpu: add uvd enc ib test
drm/amdgpu: add uvd enc ring test
drm/amdgpu: add uvd enc vm functions (v2)
drm/amdgpu: add uvd enc into run queue
drm/amdgpu: add uvd enc rings
drm/amdgpu: add new uvd enc ring methods
drm/amdgpu: add uvd enc command in header
drm/amdgpu: add uvd enc registers in header
...
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/cik_ih.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/cik_ih.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/cik_ih.c b/drivers/gpu/drm/amd/amdgpu/cik_ih.c index 07d3d895da10..a870b354e3f7 100644 --- a/drivers/gpu/drm/amd/amdgpu/cik_ih.c +++ b/drivers/gpu/drm/amd/amdgpu/cik_ih.c | |||
@@ -237,8 +237,23 @@ static u32 cik_ih_get_wptr(struct amdgpu_device *adev) | |||
237 | */ | 237 | */ |
238 | static bool cik_ih_prescreen_iv(struct amdgpu_device *adev) | 238 | static bool cik_ih_prescreen_iv(struct amdgpu_device *adev) |
239 | { | 239 | { |
240 | /* Process all interrupts */ | 240 | u32 ring_index = adev->irq.ih.rptr >> 2; |
241 | return true; | 241 | u16 pasid; |
242 | |||
243 | switch (le32_to_cpu(adev->irq.ih.ring[ring_index]) & 0xff) { | ||
244 | case 146: | ||
245 | case 147: | ||
246 | pasid = le32_to_cpu(adev->irq.ih.ring[ring_index + 2]) >> 16; | ||
247 | if (!pasid || amdgpu_vm_pasid_fault_credit(adev, pasid)) | ||
248 | return true; | ||
249 | break; | ||
250 | default: | ||
251 | /* Not a VM fault */ | ||
252 | return true; | ||
253 | } | ||
254 | |||
255 | adev->irq.ih.rptr += 16; | ||
256 | return false; | ||
242 | } | 257 | } |
243 | 258 | ||
244 | /** | 259 | /** |