diff options
author | Eric Anholt <eric@anholt.net> | 2016-02-08 12:59:02 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2016-02-16 12:21:01 -0800 |
commit | 36cb6253f9383fd9a59ee7b8458c6232ef48577c (patch) | |
tree | e2e1d30ebfd5125f31bbeefd813bce744b692a15 /drivers/gpu/drm/vc4/vc4_drv.h | |
parent | 001bdb55d9eb72a9e2d5b623bacfc52da74ae03e (diff) | |
download | linux-36cb6253f9383fd9a59ee7b8458c6232ef48577c.tar.gz linux-36cb6253f9383fd9a59ee7b8458c6232ef48577c.tar.bz2 linux-36cb6253f9383fd9a59ee7b8458c6232ef48577c.zip |
drm/vc4: Use runtime PM to power cycle the device when the GPU hangs.
This gets us functional GPU reset again, like we had until a refactor
at merge time. Tested with a little patch to stuff in a broken binner
job every 100 frames.
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.h | 6 |
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 8ac3788846ce..51a63330d4f8 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h @@ -91,6 +91,11 @@ struct vc4_dev { struct vc4_bo *overflow_mem; struct work_struct overflow_mem_work; + int power_refcount; + + /* Mutex controlling the power refcount. */ + struct mutex power_lock; + struct { struct timer_list timer; struct work_struct reset_work; @@ -439,7 +444,6 @@ void vc4_plane_async_set_fb(struct drm_plane *plane, extern struct platform_driver vc4_v3d_driver; int vc4_v3d_debugfs_ident(struct seq_file *m, void *unused); int vc4_v3d_debugfs_regs(struct seq_file *m, void *unused); -int vc4_v3d_set_power(struct vc4_dev *vc4, bool on); /* vc4_validate.c */ int |