brcm2708: update to latest patches from RPi foundation
[openwrt/staging/chunkeey.git] / target / linux / brcm2708 / patches-4.19 / 950-0510-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0510-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch b/target/linux/brcm2708/patches-4.19/950-0510-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch
new file mode 100644 (file)
index 0000000..55408a0
--- /dev/null
@@ -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);