From c94c4109c3468b1574ad275e3a0dfc61d6ea24b9 Mon Sep 17 00:00:00 2001 From: Jordan Crouse Date: Wed, 28 Jun 2017 09:55:11 -0600 Subject: [PATCH] drm/msm: Move hangcheck fence to ringbuffer hangcheck_fence was missed when all the ring specific members were moved out of the gpu struct. Change-Id: Ic0dedbad00a86d6657bc2a3e0e5bbdc5eae21ae6 Signed-off-by: Jordan Crouse --- drivers/gpu/drm/msm/msm_gpu.c | 8 ++++---- drivers/gpu/drm/msm/msm_gpu.h | 1 - drivers/gpu/drm/msm/msm_ringbuffer.h | 1 + 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c index a26d91cf1d62..e6fc0adcf971 100644 --- a/drivers/gpu/drm/msm/msm_gpu.c +++ b/drivers/gpu/drm/msm/msm_gpu.c @@ -346,13 +346,13 @@ static void hangcheck_handler(unsigned long data) uint32_t fence = ring->memptrs->fence; uint32_t submitted = gpu->funcs->submitted_fence(gpu, ring); - if (fence != gpu->hangcheck_fence[ring->id]) { + if (fence != ring->hangcheck_fence) { /* some progress has been made.. ya! */ - gpu->hangcheck_fence[ring->id] = fence; + ring->hangcheck_fence = fence; } else if (fence < submitted) { struct msm_gem_submit *submit; - gpu->hangcheck_fence[ring->id] = fence; + ring->hangcheck_fence = fence; /* * No progress done, but see if the current submit is @@ -378,7 +378,7 @@ static void hangcheck_handler(unsigned long data) out: /* if still more pending work, reset the hangcheck timer: */ - if (submitted > gpu->hangcheck_fence[ring->id]) + if (submitted > ring->hangcheck_fence) hangcheck_timer_reset(gpu); /* workaround for missing irq: */ diff --git a/drivers/gpu/drm/msm/msm_gpu.h b/drivers/gpu/drm/msm/msm_gpu.h index ac0afe53b769..eeebfb746f7f 100644 --- a/drivers/gpu/drm/msm/msm_gpu.h +++ b/drivers/gpu/drm/msm/msm_gpu.h @@ -145,7 +145,6 @@ struct msm_gpu { #define DRM_MSM_HANGCHECK_PERIOD 500 /* in ms */ #define DRM_MSM_HANGCHECK_JIFFIES msecs_to_jiffies(DRM_MSM_HANGCHECK_PERIOD) struct timer_list hangcheck_timer; - uint32_t hangcheck_fence[MSM_GPU_MAX_RINGS]; struct work_struct recover_work; struct msm_snapshot *snapshot; }; diff --git a/drivers/gpu/drm/msm/msm_ringbuffer.h b/drivers/gpu/drm/msm/msm_ringbuffer.h index b19ce75a4cc9..3b58e94f7fd6 100644 --- a/drivers/gpu/drm/msm/msm_ringbuffer.h +++ b/drivers/gpu/drm/msm/msm_ringbuffer.h @@ -50,6 +50,7 @@ struct msm_ringbuffer { uint32_t submitted_fence; spinlock_t lock; struct list_head submits; + uint32_t hangcheck_fence; struct msm_memptrs *memptrs; uint64_t memptrs_iova;