msm: kgsl: schedule the event queue after the dispatcher work queue

A race condition exists where the last retired timestamp may change
while processing the dispatcher work queue. If the next command is
a sync event that has not yet signaled a deadlock may occur.

Change-Id: I1113f2e60b8adeade65d6d979777a0aa276a172b
Signed-off-by: Jeff Boody <jboody@codeaurora.org>
(cherry picked from commit 5acd3c7888679b639134e56fc3b7f65d5ee199e7)
diff --git a/drivers/gpu/msm/adreno_dispatch.c b/drivers/gpu/msm/adreno_dispatch.c
index bb6a00a..63bb784 100644
--- a/drivers/gpu/msm/adreno_dispatch.c
+++ b/drivers/gpu/msm/adreno_dispatch.c
@@ -1378,6 +1378,9 @@
 	mutex_unlock(&device->mutex);
 
 	mutex_unlock(&dispatcher->mutex);
+
+	/* Schedule the event queue */
+	queue_work(device->work_queue, &device->ts_expired_ws);
 }
 
 void adreno_dispatcher_schedule(struct kgsl_device *device)