diff options
author | Rob Clark <robdclark@gmail.com> | 2013-12-22 15:29:43 (GMT) |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2014-03-31 14:27:45 (GMT) |
commit | 5b6ef08e4b4e1bcb6b3ac4172c054e4462e2c767 (patch) | |
tree | d62e3bc1dfa8d95e241a136e0702ad2c3f28f55b /drivers/gpu/drm/msm/adreno/adreno_gpu.c | |
parent | c0c0d9eeeb8df43964601a2c4666f0c49bedacb4 (diff) | |
download | linux-5b6ef08e4b4e1bcb6b3ac4172c054e4462e2c767.tar.xz |
drm/msm: add hang_debug module param
msm.hang_debug=y will dump out current register values if the gpu locks
up, for easier debugging.
Signed-off-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/msm/adreno/adreno_gpu.c')
-rw-r--r-- | drivers/gpu/drm/msm/adreno/adreno_gpu.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c index d321099..cf6eb97 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c @@ -260,6 +260,24 @@ void adreno_show(struct msm_gpu *gpu, struct seq_file *m) } #endif +/* would be nice to not have to duplicate the _show() stuff with printk(): */ +void adreno_dump(struct msm_gpu *gpu) +{ + struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu); + + printk("revision: %d (%d.%d.%d.%d)\n", + adreno_gpu->info->revn, adreno_gpu->rev.core, + adreno_gpu->rev.major, adreno_gpu->rev.minor, + adreno_gpu->rev.patchid); + + printk("fence: %d/%d\n", adreno_gpu->memptrs->fence, + gpu->submitted_fence); + printk("rptr: %d\n", adreno_gpu->memptrs->rptr); + printk("wptr: %d\n", adreno_gpu->memptrs->wptr); + printk("rb wptr: %d\n", get_wptr(gpu->rb)); + +} + void adreno_wait_ring(struct msm_gpu *gpu, uint32_t ndwords) { struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu); |