msm: kgsl: Allow non-default timeout values in adreno_idle

In adreno_idle the default timeout value was always used,
even if the caller specified something different. The caller
can now specify a non default timeout value to be used
in adreno_idle.

Change-Id: Ibb6bcc094521d4a660d8385b32bf8c6ac68acbd9
Signed-off-by: Tarun Karra <tkarra@codeaurora.org>
diff --git a/drivers/gpu/msm/adreno.c b/drivers/gpu/msm/adreno.c
index b72c847..14070a7 100644
--- a/drivers/gpu/msm/adreno.c
+++ b/drivers/gpu/msm/adreno.c
@@ -1286,6 +1286,12 @@
 
 	memset(prev_reg_val, 0, sizeof(prev_reg_val));
 
+	/* Restrict timeout value between adreno_dev->wait_timeout and 0 */
+	if ((timeout == 0) || (timeout > adreno_dev->wait_timeout))
+		msecs = adreno_dev->wait_timeout;
+	else
+		msecs = timeout;
+
 	kgsl_cffdump_regpoll(device->id,
 		adreno_dev->gpudev->reg_rbbm_status << 2,
 		0x00000000, 0x80000000);
@@ -1294,7 +1300,6 @@
 	 */
 retry:
 	if (rb->flags & KGSL_FLAGS_STARTED) {
-		msecs = adreno_dev->wait_timeout;
 		msecs_first = (msecs <= 100) ? ((msecs + 4) / 5) : 100;
 		wait_time = jiffies + wait_timeout;
 		wait_time_part = jiffies + msecs_to_jiffies(msecs_first);