msm: kgsl: use del_timer_sync() to cancel the idle timer
Otherwise there's a chance the idle timer can fire after
we're suspended/stopped on SMP systems.
Signed-off-by: Jeremy Gebben <jgebben@codeaurora.org>
diff --git a/drivers/gpu/msm/adreno.c b/drivers/gpu/msm/adreno.c
index 70e196e..b2c8ae3 100644
--- a/drivers/gpu/msm/adreno.c
+++ b/drivers/gpu/msm/adreno.c
@@ -564,7 +564,7 @@
struct adreno_device *adreno_dev = ADRENO_DEVICE(device);
kgsl_pwrctrl_irq(device, KGSL_PWRFLAGS_OFF);
- del_timer(&device->idle_timer);
+ del_timer_sync(&device->idle_timer);
adreno_dev->drawctxt_active = NULL;
diff --git a/drivers/gpu/msm/adreno_postmortem.c b/drivers/gpu/msm/adreno_postmortem.c
index 76db7fa..bd1a4aa 100644
--- a/drivers/gpu/msm/adreno_postmortem.c
+++ b/drivers/gpu/msm/adreno_postmortem.c
@@ -794,7 +794,7 @@
}
/* Disable the idle timer so we don't get interrupted */
- del_timer(&device->idle_timer);
+ del_timer_sync(&device->idle_timer);
/* Turn off napping to make sure we have the clocks full
attention through the following process */
diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c
index 856972c..e4add0d 100644
--- a/drivers/gpu/msm/kgsl.c
+++ b/drivers/gpu/msm/kgsl.c
@@ -315,7 +315,7 @@
mutex_lock(&device->mutex);
}
/* Don't let the timer wake us during suspended sleep. */
- del_timer(&device->idle_timer);
+ del_timer_sync(&device->idle_timer);
switch (device->state) {
case KGSL_STATE_INIT:
break;
diff --git a/drivers/gpu/msm/z180.c b/drivers/gpu/msm/z180.c
index 2d3f5bd..d56785d 100644
--- a/drivers/gpu/msm/z180.c
+++ b/drivers/gpu/msm/z180.c
@@ -576,7 +576,7 @@
{
z180_idle(device, KGSL_TIMEOUT_DEFAULT);
- del_timer(&device->idle_timer);
+ del_timer_sync(&device->idle_timer);
kgsl_mmu_stop(device);