summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/vc4/vc4_drv.h
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2016-02-08 11:19:14 -0800
committerEric Anholt <eric@anholt.net>2016-02-16 12:21:00 -0800
commitc4ce60dc30912df09b2438f1e5594eae1ef64d1e (patch)
tree6d248da2d9bd32a4d8f5cc9e0405a512e863932e /drivers/gpu/drm/vc4/vc4_drv.h
parent2ee94657e2bbd13b358060edc91b2b2fdef9038f (diff)
downloadop-kernel-dev-c4ce60dc30912df09b2438f1e5594eae1ef64d1e.zip
op-kernel-dev-c4ce60dc30912df09b2438f1e5594eae1ef64d1e.tar.gz
drm/vc4: Fix spurious GPU resets due to BO reuse.
We were tracking the "where are the head pointers pointing" globally, so if another job reused the same BOs and execution was at the same point as last time we checked, we'd stop and trigger a reset even though the GPU had made progress. Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm/vc4/vc4_drv.h')
-rw-r--r--drivers/gpu/drm/vc4/vc4_drv.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
index 080865e..b6ccf81 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.h
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
@@ -92,7 +92,6 @@ struct vc4_dev {
struct work_struct overflow_mem_work;
struct {
- uint32_t last_ct0ca, last_ct1ca;
struct timer_list timer;
struct work_struct reset_work;
} hangcheck;
@@ -192,6 +191,11 @@ struct vc4_exec_info {
/* Sequence number for this bin/render job. */
uint64_t seqno;
+ /* Last current addresses the hardware was processing when the
+ * hangcheck timer checked on us.
+ */
+ uint32_t last_ct0ca, last_ct1ca;
+
/* Kernel-space copy of the ioctl arguments */
struct drm_vc4_submit_cl *args;
OpenPOWER on IntegriCloud