mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-23 01:31:30 +03:00
gpu: host1x: Implement job tracking using DMA fences
In anticipation of removal of the intr API, implement job tracking using DMA fences instead. The main two things about this are making cdma_update schedule the work since fence completion can now be called from interrupt context, and some complication in ensuring the callback is not running when we free the fence. Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Change-Id: I25f7f5a6cad24a00563eed79e0e17b1df1eadcdc Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2786636 Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com> GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
Laxman Dewangan
parent
242251a0e1
commit
303267d828
@@ -8,6 +8,7 @@
|
||||
|
||||
#include <linux/device.h>
|
||||
#include <linux/dma-direction.h>
|
||||
#include <linux/dma-fence.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
@@ -296,8 +297,10 @@ struct host1x_job {
|
||||
/* Non-job tracking related syncpoint */
|
||||
struct host1x_syncpt *secondary_syncpt;
|
||||
|
||||
/* Completion waiter ref */
|
||||
void *waiter;
|
||||
/* Completion fence for job tracking */
|
||||
struct dma_fence *fence;
|
||||
struct dma_fence_cb fence_cb;
|
||||
struct completion fence_cb_done;
|
||||
|
||||
/* Maximum time to wait for this job */
|
||||
unsigned int timeout;
|
||||
|
||||
Reference in New Issue
Block a user