summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorNitin Kumbhar <nkumbhar@nvidia.com>2011-04-18 10:30:55 +0530
committerNitin Kumbhar <nkumbhar@nvidia.com>2011-04-18 10:30:55 +0530
commit5066f8435ae950d46b8f0877bd47d3db2caa4186 (patch)
treed0185f7189e82ef63bb5fdc67f71a15b5e394215 /drivers
parentd0dc7e20ea28fe5b4a8255f20c1c83ab209e5cbb (diff)
parentd99cea140dba998d7ee1a24a7d32ec1b78c02f3f (diff)
merging android-tegra-2.6.36 into git-master/linux-2.6/android-tegra-2.6.36
Change-Id: Ibf21f94d93ef237de6ab379dc1aa2498df08cdbd
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/tegra/dc/nvhdcp.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/video/tegra/dc/nvhdcp.c b/drivers/video/tegra/dc/nvhdcp.c
index 215f44538dcc..657f621f0c23 100644
--- a/drivers/video/tegra/dc/nvhdcp.c
+++ b/drivers/video/tegra/dc/nvhdcp.c
@@ -980,12 +980,12 @@ static void nvhdcp_downstream_worker(struct work_struct *work)
nvhdcp_info("link verified!\n");
while (1) {
- if (nvhdcp->state != STATE_LINK_VERIFY)
- goto failure;
-
if (!nvhdcp_is_plugged(nvhdcp))
goto lost_hdmi;
+ if (nvhdcp->state != STATE_LINK_VERIFY)
+ goto failure;
+
e = verify_link(nvhdcp, true);
if (e) {
nvhdcp_err("link verification failed err %d\n", e);
@@ -1003,7 +1003,9 @@ failure:
nvhdcp_err("nvhdcp failure - too many failures, giving up!\n");
} else {
nvhdcp_err("nvhdcp failure - renegotiating in 1.75 seconds\n");
+ mutex_unlock(&nvhdcp->lock);
msleep(1750);
+ mutex_lock(&nvhdcp->lock);
queue_work(nvhdcp->downstream_wq, &nvhdcp->work);
}