summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonghan Ryu <dryu@nvidia.com>2011-07-27 06:34:18 +0900
committerManish Tuteja <mtuteja@nvidia.com>2011-07-27 05:30:21 -0700
commit2e4a0feb83acab12d93bc17c6ef382e7da2348df (patch)
tree98c150ded487cdc1191aeef45bea7973f46dd91b
parent6a434f3128c10e1abaa36724f70c692a4fb5640d (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.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 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);
}