diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2019-07-09 20:32:28 +0200 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2019-07-14 12:44:14 +0200 |
commit | 42954857190b9df16d9d873ecc7f6cc38e013e44 (patch) | |
tree | 98c588f629ff534d458eb0884782ea99672d7634 /target/linux/brcm2708/patches-4.19/950-0591-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch | |
parent | f1875e902d0afb7d9b9e5285b4fd8da7f6c5e30a (diff) | |
download | upstream-42954857190b9df16d9d873ecc7f6cc38e013e44.tar.gz upstream-42954857190b9df16d9d873ecc7f6cc38e013e44.tar.bz2 upstream-42954857190b9df16d9d873ecc7f6cc38e013e44.zip |
brcm2708: add linux 4.19 support
Boot tested on Raspberry Pi B+ (BCM2708) and Raspberry Pi 2 (BCM2709)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0591-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.19/950-0591-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0591-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch b/target/linux/brcm2708/patches-4.19/950-0591-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch new file mode 100644 index 0000000000..c77ec0b1aa --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0591-drm-v3d-Rename-the-fence-signaled-from-IRQs-to-irq_f.patch @@ -0,0 +1,117 @@ +From ee870243ebbf7a8a7c5a8c24259a8c37be16b507 Mon Sep 17 00:00:00 2001 +From: Eric Anholt <eric@anholt.net> +Date: Thu, 27 Dec 2018 14:04:44 -0800 +Subject: [PATCH 591/703] 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); + |