diff options
author | Donghan Ryu <dryu@nvidia.com> | 2011-07-27 06:34:18 +0900 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-07-27 16:03:03 -0700 |
commit | 40a95f668b311b66212cf81638bb65f241835e98 (patch) | |
tree | be36b7818fcd5af49564ab312321bae6d9306268 | |
parent | 8155a9c8bfcc387fe139072b7cbb83c3f367c2ae (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.c | 9 |
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); } |