diff options
author | Donghan Ryu <dryu@nvidia.com> | 2011-07-27 06:34:18 +0900 |
---|---|---|
committer | Manish Tuteja <mtuteja@nvidia.com> | 2011-07-27 05:30:21 -0700 |
commit | 2e4a0feb83acab12d93bc17c6ef382e7da2348df (patch) | |
tree | 98c150ded487cdc1191aeef45bea7973f46dd91b | |
parent | 6a434f3128c10e1abaa36724f70c692a4fb5640d (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: Ie52cfa071b980d4fa01af8984f89fa6a1710addc
Reviewed-on: http://git-master/r/43225
Reviewed-by: Donghan Ryu <dryu@nvidia.com>
Tested-by: Donghan Ryu <dryu@nvidia.com>
Reviewed-by: Michael I Gold <gold@nvidia.com>
Reviewed-by: Jonathan Mayo <jmayo@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 49bd189d9615..eb77b3729fbf 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); } |