summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/vc4/vc4_irq.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2016-09-02 15:55:15 +1000
committerDave Airlie <airlied@redhat.com>2016-09-02 15:55:15 +1000
commit603f2c9f45c6620afd65b60ec084c1ea7c36b2ec (patch)
tree5c22eed9f236ce5bd2f7f8ab32812198ec198f19 /drivers/gpu/drm/vc4/vc4_irq.c
parent5322942527156178874eec3d3108a4fae148d87d (diff)
parent552416c146fadc67cd9b53ef7adf88d3381c43a6 (diff)
downloadlinux-603f2c9f45c6620afd65b60ec084c1ea7c36b2ec.tar.gz
linux-603f2c9f45c6620afd65b60ec084c1ea7c36b2ec.tar.bz2
linux-603f2c9f45c6620afd65b60ec084c1ea7c36b2ec.zip
Merge tag 'drm-vc4-fixes-2016-08-29' of https://github.com/anholt/linux into drm-fixes
This pull request brings in fixes for VC4 3D in 4.8, most of which are covered by testcases. * tag 'drm-vc4-fixes-2016-08-29' of https://github.com/anholt/linux: drm/vc4: Fix oops when userspace hands in a bad BO. drm/vc4: Fix overflow mem unreferencing when the binner runs dry. drm/vc4: Free hang state before destroying BO cache. drm/vc4: Fix handling of a pm_runtime_get_sync() success case. drm/vc4: Use drm_malloc_ab to fix large rendering jobs. drm/vc4: Use drm_free_large() on handles to match its allocation.
Diffstat (limited to 'drivers/gpu/drm/vc4/vc4_irq.c')
-rw-r--r--drivers/gpu/drm/vc4/vc4_irq.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/vc4/vc4_irq.c b/drivers/gpu/drm/vc4/vc4_irq.c
index b0104a346a74..094bc6a475c1 100644
--- a/drivers/gpu/drm/vc4/vc4_irq.c
+++ b/drivers/gpu/drm/vc4/vc4_irq.c
@@ -83,8 +83,10 @@ vc4_overflow_mem_work(struct work_struct *work)
spin_lock_irqsave(&vc4->job_lock, irqflags);
current_exec = vc4_first_bin_job(vc4);
+ if (!current_exec)
+ current_exec = vc4_last_render_job(vc4);
if (current_exec) {
- vc4->overflow_mem->seqno = vc4->finished_seqno + 1;
+ vc4->overflow_mem->seqno = current_exec->seqno;
list_add_tail(&vc4->overflow_mem->unref_head,
&current_exec->unref_list);
vc4->overflow_mem = NULL;