summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonghan Ryu <dryu@nvidia.com>2011-07-27 06:34:18 +0900
committerVarun Colbert <vcolbert@nvidia.com>2011-07-27 16:03:03 -0700
commit40a95f668b311b66212cf81638bb65f241835e98 (patch)
treebe36b7818fcd5af49564ab312321bae6d9306268
parent8155a9c8bfcc387fe139072b7cbb83c3f367c2ae (diff)
video: tegra: dc: fix delay on hdmi modeset
wait_event_interruptible_timeout checks the condition before it enters a sleep. Adding a real condition to the function avoids an un-wanted aditional sleep. Bug 833476 Change-Id: I03072d1c3b6efb48e20ed42b55ee2d844a29fbbc Reviewed-on: http://git-master/r/43225 Reviewed-on: http://git-master/r/43426 Reviewed-by: Donghan Ryu <dryu@nvidia.com> Tested-by: Donghan Ryu <dryu@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
-rw-r--r--drivers/video/tegra/dc/nvhdcp.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/video/tegra/dc/nvhdcp.c b/drivers/video/tegra/dc/nvhdcp.c
index cb33f832f242..acf7694b881e 100644
--- a/drivers/video/tegra/dc/nvhdcp.c
+++ b/drivers/video/tegra/dc/nvhdcp.c
@@ -998,8 +998,8 @@ static void nvhdcp_downstream_worker(struct work_struct *work)
goto failure;
}
mutex_unlock(&nvhdcp->lock);
- wait_event_interruptible_timeout(wq_worker, 0,
- msecs_to_jiffies(1500));
+ wait_event_interruptible_timeout(wq_worker,
+ !nvhdcp_is_plugged(nvhdcp), msecs_to_jiffies(1500));
mutex_lock(&nvhdcp->lock);
}
@@ -1011,8 +1011,11 @@ failure:
} else {
nvhdcp_err("nvhdcp failure - renegotiating in 1.75 seconds\n");
mutex_unlock(&nvhdcp->lock);
- msleep(1750);
+ wait_event_interruptible_timeout(wq_worker,
+ !nvhdcp_is_plugged(nvhdcp), msecs_to_jiffies(1750));
mutex_lock(&nvhdcp->lock);
+ if (!nvhdcp_is_plugged(nvhdcp))
+ goto lost_hdmi;
queue_work(nvhdcp->downstream_wq, &nvhdcp->work);
}