Junwei Zhang
a6db8a33e1
drm/amdgpu: refine the scheduler job type conversion
...
Use container_of rather than casting.
Reviewed-by: Christian König <christian.koenig@amd.com >
Reviewed-by: David Zhou <david1.zhou@amd.com >
Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com >
2015-09-23 17:23:36 -04:00
Junwei Zhang
4c7eb91cae
drm/amdgpu: refine the job naming for amdgpu_job and amdgpu_sched_job
...
Use consistent naming across functions.
Reviewed-by: Christian König <christian.koenig@amd.com >
Reviewed-by: David Zhou <david1.zhou@amd.com >
Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com >
2015-09-23 17:23:36 -04:00
Christian König
bf60efd353
drm/amdgpu: use only one reservation object for each VM v2
...
Reduces the locking and fencing overhead.
v2: add comment why we need the duplicates list in the GEM op.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
2015-09-23 17:23:35 -04:00
Christian König
a5b750583e
drm/amdgpu: validate duplicates in the CS as well
...
This allows for multiple BOs to have the same reservation object.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-23 17:23:34 -04:00
Christian König
72d7668b5b
drm/amdgpu: export reservation_object from dmabuf to ttm (v2)
...
Adds an extra argument to amdgpu_bo_create, which is only used in amdgpu_prime.c.
Port of radeon commit 831b6966a6
.
v2: fix up kfd.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-23 17:23:34 -04:00
Christian König
b7d698d7fd
drm/amdgpu: fix overflow on 32bit systems
...
mem->start is a long, so this can overflow on 32bit systems.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
Cc: stable@vger.kernel.org
2015-09-23 17:23:33 -04:00
Christian König
1886d1a9ca
drm/amdgpu: remove process_job callback from the scheduler
...
Just free the resources immediately after submitting the job.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
2015-09-23 17:23:33 -04:00
Christian König
20a85ff846
drm/amdgpu: use write confirm for vm_flush()
...
Make sure the CP waits for the write to be confirmed before
invalidating.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-23 17:23:30 -04:00
Anatoli Antonovitch
22c01cc483
drm/amdgpu: execution barrier after fence v2
...
Insert wait for reg mem after EOP to fix potential issue with vm context switch
v2: move wait to vm_flush() use equal instead of greater than.
Signed-off-by: Anatoli Antonovitch <anatoli.antonovitch@amd.com >
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-23 17:23:30 -04:00
Christian König
3daea9e3d3
drm/amdgpu: add option to disable semaphores
...
Provide module parameter to enable/disable them. Still
enabled by default.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-23 17:23:29 -04:00
Alex Deucher
35c7a9526a
drm/amdgpu: rename gmc_v8_0_init_compute_vmid
...
It should be gfx_v8_0_init_compute_vmid since it's
part of the gfx block.
Acked-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-04 16:36:28 -04:00
Alex Deucher
be4f38e28c
drm/amdgpu: fix vce3 instance handling
...
Need to properly handle the instances for the idle
checks and soft reset.
Acked-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-04 16:35:54 -04:00
Leo Liu
898e50d444
drm/amdgpu: remove ib test for the second VCE Ring
...
it seems the VCE ring 1 ib test not reliable, remove it for now.
Signed-off-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Tested-and-Reviewed-by: Sonny Jiang <sonny.jiang@amd.com >
2015-09-04 16:31:22 -04:00
Christian König
140b519f7a
drm/amdgpu: properly enable VM fault interrupts
...
This fixes not printing VM faults.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-04 16:31:16 -04:00
Christian König
270e869d84
drm/amdgpu: fix buffer placement under memory pressure
...
Some buffers (UVD/VM page tables) must be placed in VRAM,
but the byte restriction for moving buffers didn't took this
into account.
Port of radeon commit 4b09556660
.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
2015-09-03 14:30:49 -04:00
Alex Deucher
362eda04ba
drm/amdgpu/cz: fix cz_dpm_update_low_memory_pstate logic
...
The logic was reversed. This feature is not enabled
at the moment, but fix it now for the future.
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-03 12:06:47 -04:00
Alex Deucher
99a0923837
drm/amdgpu: fix typo in dce11 watermark setup
...
Using the wrong watermwark value for the secondary
watermark. Copy paste typo. Noticed by Mykola.
Reviewed-by: Harry Wentland <harry.wentland@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2015-09-03 12:06:41 -04:00
Alex Deucher
be9fd2e978
drm/amdgpu: fix typo in dce10 watermark setup
...
Using the wrong watermwark value for the secondary
watermark. Copy paste typo. Noticed by Mykola.
Reviewed-by: Harry Wentland <harry.wentland@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2015-09-03 12:06:01 -04:00
Alex Deucher
cace5dce55
drm/amdgpu: use top down allocation for non-CPU accessible vram
...
Should help avoid fragmentation of vram due to CPU access
requirements.
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-03 10:29:32 -04:00
Alex Deucher
857d913d05
drm/amdgpu: be explicit about cpu vram access for driver BOs (v2)
...
For kernel driver BOs, be explicit about whether we need
vram access up front. This avoids unecessary migrations and
avoids using visible vram for buffers were it's not needed.
v2: line wrap fixes
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-03 10:29:32 -04:00
Jammy Zhou
bddf802638
drm/amdgpu: set MEC doorbell range for Fiji
...
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-02 12:35:52 -04:00
Jammy Zhou
ac01db3dd5
drm/amdgpu: implement burst NOP for SDMA
...
Customize the insert_nop func for SDMA rings, and use burst NOP for
ring/IB submissions in other places as well
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-02 12:35:39 -04:00
Jammy Zhou
edff0e2826
drm/amdgpu: add insert_nop ring func and default implementation
...
The insert_nop function is added to amdgpu_ring_funcs structure as
well as the default implementation
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-02 12:24:43 -04:00
Jammy Zhou
4b2f7e2ca9
drm/amdgpu: add amdgpu_get_sdma_instance helper function
...
This function is added to map the ring to sdma instance
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-02 12:23:58 -04:00
Jammy Zhou
36f523a7c0
drm/amdgpu: add AMDGPU_MAX_SDMA_INSTANCES
...
Remove the hardcoded usage
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-02 12:23:12 -04:00
Jammy Zhou
18111de0df
drm/amdgpu: add burst_nop flag for sdma
...
The burst NOP is supported for SDMA when feature_version is >= 20.
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-02 12:22:28 -04:00
Jammy Zhou
4207a734c3
drm/amdgpu: add count field for the SDMA NOP packet v2
...
This is added to support the burst NOP
v2: squash the typo fix
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-02 12:21:35 -04:00
Christian König
a60c42320b
drm/amdgpu: use PT for VM sync on unmap
...
Instead of the array which is used for ID management.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-09-02 12:19:54 -04:00
Christian König
4c28fb0b27
drm/amdgpu: fix amdgpu_bo_unreserve order in GEM_OP IOCTL v2
...
No copy_(to|from)_user while BO is reserved.
v2: handle default path as well
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-09-02 12:19:53 -04:00
Christian König
8221d706f4
drm/amdgpu: partially revert "modify amdgpu_fence_wait_any() to amdgpu_fence_wait_multiple()" v2
...
That isn't used any more.
v2: rebase
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2015-09-02 12:19:52 -04:00
Chunming Zhou
423a9480ad
drm/amdgpu: re-work sync_resv
...
sync_resv is to handle both amdgpu_fence and sched_fence.
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-09-02 12:05:08 -04:00
Alex Deucher
e39daf2c63
drm/amdgpu/atom: Send out the full AUX address
...
AUX addresses are 20 bits long. Send out the entire address instead of
just the low 16 bits.
Port of:
drm/radeon/atom: Send out the full AUX address
to amdgpu
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2015-09-02 12:04:54 -04:00
Chunming Zhou
6e7a384074
drm/amdgpu: use IB for fill_buffer instead of direct command
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-28 15:04:19 -04:00
Christian König
8f8202f771
drm/amdgpu: stop trying to suspend UVD sessions v2
...
Saving the current UVD state on suspend and restoring it on resume
just doesn't work reliable. Just close cleanup all sessions on suspend.
Ported from radeon commit "12e49feadff6d7b7ebbe852b36943a71524d8d34".
v2: rebased
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com > (v1)
2015-08-28 15:04:18 -04:00
Christian König
e61235db62
drm/amdgpu: add scheduler dependency callback v2
...
This way the scheduler doesn't wait in it's work thread any more.
v2: fix race conditions
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
2015-08-28 15:04:17 -04:00
Christian König
bd755d0870
drm/amdgpu: remove extra parameters from scheduler callbacks
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-26 17:54:10 -04:00
Christian König
02537d6362
drm/amdgpu: fix postclose order
...
The context needs to finish before everything else.
Signed-off-by: Christian König <christian.koenig@amd.com >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-26 17:51:37 -04:00
Chunming Zhou
c7ae72c01b
drm/amdgpu: use IB for copy buffer of eviction
...
This aids handling buffers moves with the scheduler.
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-26 17:50:42 -04:00
Junwei Zhang
113cd9dacb
drm/amdgpu: adjust the judgement of removing fence callback
...
The fence in the array may be skipped if wait_all is false,
thus the related callback is not initialized with list head.
So removing this kind callback will cause NULL pointer reference.
Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
2015-08-26 17:50:04 -04:00
Chunming Zhou
9066b0c318
drm/amdgpu: fix no sync_wait in copy_buffer
...
when eviction is happening, if don't handle
dependency, then the fence could be dead off.
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-25 10:53:48 -04:00
Chunming Zhou
3c62338c26
drm/amdgpu: fix last_vm_update fence is not effetive for sched fence
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-25 10:53:05 -04:00
Chunming Zhou
f38fdfddfa
drm/amdgpu: add priv data to sched
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-25 10:52:18 -04:00
Chunming Zhou
84f76ea6b0
drm/amdgpu: add owner for sched fence
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-25 10:51:32 -04:00
Christian König
c14692f0a7
drm/amdgpu: remove entity reference from sched fence
...
Entity don't live as long as scheduler fences.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:50:42 -04:00
Christian König
6c859274f3
drm/amdgpu: fix and cleanup amd_sched_entity_push_job
...
Calling schedule() is probably the worse things we can do.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:49:57 -04:00
Christian König
87e0a87dab
drm/amdgpu: remove amdgpu_bo_list_clone
...
Not used any more.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:49:12 -04:00
Christian König
3a185a33a2
drm/amdgpu: remove the context from amdgpu_job
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:48:27 -04:00
Christian König
69f7dd652c
drm/amdgpu: remove unused parameters to amd_sched_create
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:47:41 -04:00
Christian König
eb98d1c54d
drm/amdgpu: fix user fences when scheduler is enabled
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:40:25 -04:00
Christian König
f91b3a6941
drm/amdgpu: fix fence wait in sync_fence, instead should be in sync_rings
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-25 10:39:39 -04:00