aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'topic/drm-misc-2016-10-27' of ↵Dave Airlie2016-10-281-11/+11
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://anongit.freedesktop.org/git/drm-intel into drm-next Pull request already again to get the s/fence/dma_fence/ stuff in and allow everyone to resync. Otherwise really just misc stuff all over, and a new bridge driver. * tag 'topic/drm-misc-2016-10-27' of git://anongit.freedesktop.org/git/drm-intel: drm/bridge: fix platform_no_drv_owner.cocci warnings drm/bridge: fix semicolon.cocci warnings drm: Print some debug/error info during DP dual mode detect drm: mark drm_of_component_match_add dummy inline drm/bridge: add Silicon Image SiI8620 driver dt-bindings: add Silicon Image SiI8620 bridge bindings video: add header file for Mobile High-Definition Link (MHL) interface drm: convert DT component matching to component_match_add_release() dma-buf: Rename struct fence to dma_fence dma-buf/fence: add an lockdep_assert_held() drm/dp: Factor out helper to distinguish between branch and sink devices drm/edid: Only print the bad edid when aborting drm/msm: add missing header dependencies drm/msm/adreno: move function declarations to header file drm/i2c/tda998x: mark symbol static where possible doc: add missing docbook parameter for fence-array drm: RIP mode_config->rotation_property drm/msm/mdp5: Advertize 180 degree rotation drm/msm/mdp5: Use per-plane rotation property
| * dma-buf: Rename struct fence to dma_fenceChris Wilson2016-10-251-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I plan to usurp the short name of struct fence for a core kernel struct, and so I need to rename the specialised fence/timeline for DMA operations to make room. A consensus was reached in https://lists.freedesktop.org/archives/dri-devel/2016-July/113083.html that making clear this fence applies to DMA operations was a good thing. Since then the patch has grown a bit as usage increases, so hopefully it remains a good thing! (v2...: rebase, rerun spatch) v3: Compile on msm, spotted a manual fixup that I broke. v4: Try again for msm, sorry Daniel coccinelle script: @@ @@ - struct fence + struct dma_fence @@ @@ - struct fence_ops + struct dma_fence_ops @@ @@ - struct fence_cb + struct dma_fence_cb @@ @@ - struct fence_array + struct dma_fence_array @@ @@ - enum fence_flag_bits + enum dma_fence_flag_bits @@ @@ ( - fence_init + dma_fence_init | - fence_release + dma_fence_release | - fence_free + dma_fence_free | - fence_get + dma_fence_get | - fence_get_rcu + dma_fence_get_rcu | - fence_put + dma_fence_put | - fence_signal + dma_fence_signal | - fence_signal_locked + dma_fence_signal_locked | - fence_default_wait + dma_fence_default_wait | - fence_add_callback + dma_fence_add_callback | - fence_remove_callback + dma_fence_remove_callback | - fence_enable_sw_signaling + dma_fence_enable_sw_signaling | - fence_is_signaled_locked + dma_fence_is_signaled_locked | - fence_is_signaled + dma_fence_is_signaled | - fence_is_later + dma_fence_is_later | - fence_later + dma_fence_later | - fence_wait_timeout + dma_fence_wait_timeout | - fence_wait_any_timeout + dma_fence_wait_any_timeout | - fence_wait + dma_fence_wait | - fence_context_alloc + dma_fence_context_alloc | - fence_array_create + dma_fence_array_create | - to_fence_array + to_dma_fence_array | - fence_is_array + dma_fence_is_array | - trace_fence_emit + trace_dma_fence_emit | - FENCE_TRACE + DMA_FENCE_TRACE | - FENCE_WARN + DMA_FENCE_WARN | - FENCE_ERR + DMA_FENCE_ERR ) ( ... ) Signed-off-by: Chris Wilson <[email protected]> Reviewed-by: Gustavo Padovan <[email protected]> Acked-by: Sumit Semwal <[email protected]> Acked-by: Christian König <[email protected]> Signed-off-by: Daniel Vetter <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
* | drm/amdgpu: use failed label to handle context init failureHuang Rui2016-10-271-9/+9
|/ | | | | | Signed-off-by: Huang Rui <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: initialize the context reset_counter in amdgpu_ctx_initNicolai Hähnle2016-10-121-0/+3
| | | | | | | | | | | Ensure that we really only report a GPU reset if one has happened since the creation of the context. Signed-off-by: Nicolai Hähnle <[email protected]> Reviewed-by: Christian König <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Cc: [email protected] Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: don't leave dangling pointers aroundGrazvydas Ignotas2016-09-271-0/+2
| | | | | | | | | | | | Right now it's possible to trigger fence_drv.fences[] dereference after the array has been freed. While the real problem is elsewhere, this still results in confusing errors that depend on how the freed memory was reused (I've seen "kernel tried to execute NX-protected page"), it's better to clear them and get NULL dereference so that it's obvious what's going wrong. Signed-off-by: Grazvydas Ignotas <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: fix coding style in amdgpu_ctx.cChristian König2016-02-121-16/+15
| | | | | | | Don't use pointer arithmetic and fix the indentation. Signed-off-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* drm/amdgpu: nuke the kernel contextChristian König2016-02-121-11/+7
| | | | | | | Not used any more. Signed-off-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* drm/amdgpu: clean up non-scheduler code path (v2)Chunming Zhou2016-02-101-26/+22
| | | | | | | | | | | Non-scheduler code is longer supported. v2: agd: rebased on upstream Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Ken Wang <[email protected]> Reviewed-by: Monk Liu <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: restrict the sched jobs number to power of twoChunming Zhou2015-12-181-2/+2
| | | | | | Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian König <[email protected]> CC: [email protected]
* drm/amdgpu: unify AMDGPU_CTX_MAX_CS_PENDING and amdgpu_sched_jobsChunming Zhou2015-12-151-7/+18
| | | | | | Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian König <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amdgpu: handle error case for ctxChunming Zhou2015-12-151-2/+5
| | | | | | | | Properly handle ctx init failure. Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian König <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
* drm/amd: abstract kernel rq and normal rq to priority of run queueChunming Zhou2015-12-021-6/+5
| | | | | | | | Allows us to set priorities in the scheduler. Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian König <[email protected]> Reviewed-by: Junwei Zhang <[email protected]>
* drm/amdgpu: don't oops on failure to load (v2)Dave Airlie2015-11-031-0/+3
| | | | | | | | | | | | | | | | | In two places amdgpu tries to tear down something it hasn't initalised when failing. This is what happens when you enable experimental support on topaz which then fails in ring init. This patch allows it to fail cleanly. v2 (agd): split out scheduler change into a separate patch Reviewed-by: Chunming Zhou <[email protected]> Reviewed-by: Christian König <[email protected]> Signed-off-by: Dave Airlie <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Cc: [email protected]
* drm/amdgpu: more scheduler cleanups v2Christian König2015-09-231-5/+5
| | | | | | | | | | | Embed the scheduler into the ring structure instead of allocating it. Use the ring name directly instead of the id. v2: rebased, whitespace cleanup Signed-off-by: Christian König <[email protected]> Reviewed-by: Junwei Zhang <[email protected]> Reviewed-by: Chunming Zhou<[email protected]>
* drm/amdgpu: rename fence->scheduler to sched v2Christian König2015-09-231-5/+5
| | | | | | | | | | Just to be consistent with the other members. v2: rename the ring member as well. Signed-off-by: Christian König <[email protected]> Reviewed-by: Junwei Zhang <[email protected]> (v1) Reviewed-by: Chunming Zhou<[email protected]>
* drm/amdgpu: remove the context from amdgpu_jobChristian König2015-08-251-7/+0
| | | | | Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]>
* drm/amdgpu: remove v_seq handling from the scheduler v2Christian König2015-08-251-15/+5
| | | | | | | | | | | Simply not used any more. Only keep 32bit atomic for fence sequence numbering. v2: trivial rebase Signed-off-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]> (v1) Reviewed-by: Jammy Zhou <[email protected]> (v1) Reviewed-by: Chunming Zhou <[email protected]> (v1)
* drm/amdgpu: abstract amdgpu_job for schedulerChunming Zhou2015-08-201-0/+7
| | | | | Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]>
* drm/amdgpu: cleanup sheduler rq handling v2Christian König2015-08-171-1/+1
| | | | | | | | | Rework run queue implementation, especially remove the odd list handling. v2: cleanup the code only, no algorithem change. Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]>
* drm/amd: add scheduler fence implementation (v2)Chunming Zhou2015-08-171-10/+0
| | | | | | | | | scheduler fence is based on kernel fence framework. v2: squash in Christian's build fix Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]>
* drm/amdgpu: merge amd_sched_entity and amd_context_entity v2Christian König2015-08-171-9/+9
| | | | | | | | | Avoiding a couple of casts. v2: rename c_entity to entity as well Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]>
* drm/amdgpu: remove unused parent entityChristian König2015-08-171-1/+1
| | | | | | Signed-off-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Chunming Zhou <[email protected]>
* drm/amdgpu: cleanup amdgpu_ctx inti/fini v2Christian König2015-08-171-77/+68
| | | | | | | | | Cleanup the kernel context handling. v2: rebased Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]> (v1)
* drm/amdgpu: stop leaking the ctx id into the scheduler v2Christian König2015-08-171-7/+4
| | | | | | | | | Id's are for the IOCTL ABI only. v2: remove tgid as well Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]>
* drm/amdgpu: cleanup ctx_mgr init/finiChristian König2015-08-171-17/+23
| | | | | Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]>
* drm/amdgpu: add amd_sched_next_queued_seq functionJammy Zhou2015-08-171-1/+1
| | | | | | | | This function is used to get the next queued sequence number Signed-off-by: Jammy Zhou <[email protected]> Reviewed-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]>
* drm/amdgpu: fix seq in ctx_add_fenceChunming Zhou2015-08-171-2/+2
| | | | | | | | if enabling scheduler, then the queued seq is assigned when pushing job before emitting job. Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]>
* drm/amdgpu: wait forever for wait emitChunming Zhou2015-08-171-2/+2
| | | | | | | the job must be emitted by scheduler, otherwise scheduler is abnormal. Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]>
* drm/amdgpu: add amdgpu.sched_jobs optionJammy Zhou2015-08-171-1/+2
| | | | | | | | This option can be used to specify the max job number in the job queue, and it is 16 by default. Signed-off-by: Jammy Zhou <[email protected]> Reviewed-by: Chunming Zhou <[email protected]>
* drm/amdgpu: add kernel ctx support (v2)Chunming Zhou2015-08-171-24/+59
| | | | | | | | v2: rebase against kfd changes Signed-off-by: Chunming Zhou <[email protected]> Acked-by: Christian K?nig <[email protected]> Reviewed-by: Jammy Zhou <[email protected]>
* drm/amdgpu: make sure the fence is emitted before ring to get it.Chunming Zhou2015-08-171-0/+10
| | | | | | Signed-off-by: Chunming Zhou <[email protected]> Acked-by: Christian K?nig <[email protected]> Reviewed-by: Jammy Zhou <[email protected]>
* drm/amdgpu: use scheduler user seq instead of previous user seqChunming Zhou2015-08-171-6/+20
| | | | | | Signed-off-by: Chunming Zhou <[email protected]> Acked-by: Christian K?nig <[email protected]> Reviewed-by: Jammy Zhou <[email protected]>
* drm/amdgpu: add context entity initChunming Zhou2015-08-171-1/+35
| | | | | | Signed-off-by: Chunming Zhou <[email protected]> Acked-by: Christian K?nig <[email protected]> Reviewed-by: Jammy Zhou <[email protected]>
* drm/amdgpu: fix signed overrun in amdgpu_ctx_get_fenceChristian König2015-08-171-1/+1
| | | | | | | Otherwise the first 16 fences of a context will always signal immediately. Signed-off-by: Christian König <[email protected]> Reviewed-by: Jammy Zhou <[email protected]>
* drm/amdgpu: fix context memory leakChristian König2015-08-171-0/+1
| | | | | Signed-off-by: Christian König <[email protected]> Reviewed-by: Jammy Zhou <[email protected]>
* drm/amdgpu: add user fence context map v2Christian König2015-08-171-1/+59
| | | | | | | | | | | This is a prerequisite for the GPU scheduler to make the order of submission independent from the order of execution. v2: properly implement the locking Signed-off-by: Christian König <[email protected]> Reviewed-by: Jammy Zhou <[email protected]> Reviewed-by: Chunming Zhou <[email protected]>
* drm/amdgpu: cleanup context structure v2Alex Deucher2015-08-171-21/+7
| | | | | | | | | | | | | | | | | The comment is misleading and incorrect, remove it. Printing the id is completely meaningless and this practice can cause a race conditions on command submission. The flags and hangs fields are completely unused. Give all fields a common indentation. v2: remove fpriv reference and unused flags as well, fix debug message. Signed-off-by: Christian König <[email protected]> Reviewed-by: Jammy Zhou <[email protected]> Reviewed-by: Chunming Zhou <[email protected]>
* drm/amdgpu: add and implement the GPU reset status queryMarek Olšák2015-06-041-13/+23
| | | | | | Signed-off-by: Marek Olšák <[email protected]> Reviewed-by: Christian König <[email protected]> Reviewed-by: Jammy Zhou <[email protected]>
* drm/amdgpu: add ctx_id to the WAIT_CS IOCTL (v4)Jammy Zhou2015-06-041-0/+30
| | | | | | | | | | | It is required to support fence per context. v2: add amdgpu_ctx_get/put v3: improve get/put v4: squash hlock fix Signed-off-by: Jammy Zhou <[email protected]> Reviewed-by: Christian König <[email protected]>
* drm/amdgpu: make the CTX ioctl thread-safeMarek Olšák2015-06-041-10/+10
| | | | | | | | | | The existing locks were protecting the list, but not the elements. v2: rename hlock to lock Signed-off-by: Marek Olšák <[email protected]> Reviewed-by: Christian König <[email protected]> Reviewed-by: Jammy Zhou <[email protected]>
* drm/amdgpu: remove unsafe context releasingMarek Olšák2015-06-041-10/+2
| | | | | | | | If ctx was released between put and get, then "get" would crash. Signed-off-by: Marek Olšák <[email protected]> Reviewed-by: Christian König <[email protected]> Reviewed-by: Jammy Zhou <[email protected]>
* drm/amdgpu: add core driver (v4)Alex Deucher2015-06-041-0/+161
This adds the non-asic specific core driver code. v2: remove extra kconfig option v3: implement minor fixes from Fengguang Wu v4: fix cast in amdgpu_ucode.c Acked-by: Christian König <[email protected]> Acked-by: Jammy Zhou <[email protected]> Signed-off-by: Alex Deucher <[email protected]>