aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.19/950-0537-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0537-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch')
-rw-r--r--target/linux/brcm2708/patches-4.19/950-0537-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch117
1 files changed, 117 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0537-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch b/target/linux/brcm2708/patches-4.19/950-0537-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch
new file mode 100644
index 0000000000..55408a0042
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.19/950-0537-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch
@@ -0,0 +1,117 @@
+From 0d00e0340c1aa9ce36bdff46f927916fe4903cee Mon Sep 17 00:00:00 2001
+From: Eric Anholt <eric@anholt.net>
+Date: Thu, 27 Dec 2018 14:04:44 -0800
+Subject: [PATCH] drm/v3d: Rename the fence signaled from IRQs to
+ "irq_fence".
+
+We have another thing called the "done fence" that tracks when the
+scheduler considers the job done, and having the shared name was
+confusing.
+
+Signed-off-by: Eric Anholt <eric@anholt.net>
+---
+ drivers/gpu/drm/v3d/v3d_drv.h | 4 ++--
+ drivers/gpu/drm/v3d/v3d_gem.c | 6 +++---
+ drivers/gpu/drm/v3d/v3d_irq.c | 6 +++---
+ drivers/gpu/drm/v3d/v3d_sched.c | 12 ++++++------
+ 4 files changed, 14 insertions(+), 14 deletions(-)
+
+--- a/drivers/gpu/drm/v3d/v3d_drv.h
++++ b/drivers/gpu/drm/v3d/v3d_drv.h
+@@ -182,7 +182,7 @@ struct v3d_job {
+ struct dma_fence *in_fence;
+
+ /* v3d fence to be signaled by IRQ handler when the job is complete. */
+- struct dma_fence *done_fence;
++ struct dma_fence *irq_fence;
+
+ /* GPU virtual addresses of the start/end of the CL job. */
+ u32 start, end;
+@@ -229,7 +229,7 @@ struct v3d_tfu_job {
+ struct dma_fence *in_fence;
+
+ /* v3d fence to be signaled by IRQ handler when the job is complete. */
+- struct dma_fence *done_fence;
++ struct dma_fence *irq_fence;
+
+ struct v3d_dev *v3d;
+
+--- a/drivers/gpu/drm/v3d/v3d_gem.c
++++ b/drivers/gpu/drm/v3d/v3d_gem.c
+@@ -381,8 +381,8 @@ v3d_exec_cleanup(struct kref *ref)
+ dma_fence_put(exec->bin.in_fence);
+ dma_fence_put(exec->render.in_fence);
+
+- dma_fence_put(exec->bin.done_fence);
+- dma_fence_put(exec->render.done_fence);
++ dma_fence_put(exec->bin.irq_fence);
++ dma_fence_put(exec->render.irq_fence);
+
+ dma_fence_put(exec->bin_done_fence);
+ dma_fence_put(exec->render_done_fence);
+@@ -411,7 +411,7 @@ v3d_tfu_job_cleanup(struct kref *ref)
+ unsigned int i;
+
+ dma_fence_put(job->in_fence);
+- dma_fence_put(job->done_fence);
++ dma_fence_put(job->irq_fence);
+
+ for (i = 0; i < ARRAY_SIZE(job->bo); i++) {
+ if (job->bo[i])
+--- a/drivers/gpu/drm/v3d/v3d_irq.c
++++ b/drivers/gpu/drm/v3d/v3d_irq.c
+@@ -93,7 +93,7 @@ v3d_irq(int irq, void *arg)
+
+ if (intsts & V3D_INT_FLDONE) {
+ struct v3d_fence *fence =
+- to_v3d_fence(v3d->bin_job->bin.done_fence);
++ to_v3d_fence(v3d->bin_job->bin.irq_fence);
+
+ trace_v3d_bcl_irq(&v3d->drm, fence->seqno);
+ dma_fence_signal(&fence->base);
+@@ -102,7 +102,7 @@ v3d_irq(int irq, void *arg)
+
+ if (intsts & V3D_INT_FRDONE) {
+ struct v3d_fence *fence =
+- to_v3d_fence(v3d->render_job->render.done_fence);
++ to_v3d_fence(v3d->render_job->render.irq_fence);
+
+ trace_v3d_rcl_irq(&v3d->drm, fence->seqno);
+ dma_fence_signal(&fence->base);
+@@ -138,7 +138,7 @@ v3d_hub_irq(int irq, void *arg)
+
+ if (intsts & V3D_HUB_INT_TFUC) {
+ struct v3d_fence *fence =
+- to_v3d_fence(v3d->tfu_job->done_fence);
++ to_v3d_fence(v3d->tfu_job->irq_fence);
+
+ trace_v3d_tfu_irq(&v3d->drm, fence->seqno);
+ dma_fence_signal(&fence->base);
+--- a/drivers/gpu/drm/v3d/v3d_sched.c
++++ b/drivers/gpu/drm/v3d/v3d_sched.c
+@@ -152,9 +152,9 @@ static struct dma_fence *v3d_job_run(str
+ if (IS_ERR(fence))
+ return NULL;
+
+- if (job->done_fence)
+- dma_fence_put(job->done_fence);
+- job->done_fence = dma_fence_get(fence);
++ if (job->irq_fence)
++ dma_fence_put(job->irq_fence);
++ job->irq_fence = dma_fence_get(fence);
+
+ trace_v3d_submit_cl(dev, q == V3D_RENDER, to_v3d_fence(fence)->seqno,
+ job->start, job->end);
+@@ -195,9 +195,9 @@ v3d_tfu_job_run(struct drm_sched_job *sc
+ return NULL;
+
+ v3d->tfu_job = job;
+- if (job->done_fence)
+- dma_fence_put(job->done_fence);
+- job->done_fence = dma_fence_get(fence);
++ if (job->irq_fence)
++ dma_fence_put(job->irq_fence);
++ job->irq_fence = dma_fence_get(fence);
+
+ trace_v3d_submit_tfu(dev, to_v3d_fence(fence)->seqno);
+