summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/dc
diff options
context:
space:
mode:
authorSeongho Joo <sjoo@nvidia.com>2011-06-08 02:38:46 +0900
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:47:07 -0800
commit1194f470e09b1d274856c1fe5bfb4cec77176709 (patch)
tree7db82837c34cd69a8ef4a5e34ed42ea2ba2ac224 /drivers/video/tegra/dc
parent860cc394d1bf03ca87f4d81f39524201f5286bea (diff)
video: tegra: dc: make hdcp respond quickly on HDMI modeset.
hdcp worker could be in sleep during modeset. The front part of the video could be lost because of it. This change makes hdcp respond quickly to shorten the delay. bug 826468 Reviewed-on: http://git-master/r/36215 (cherry picked from commit e856cedd18d60c3636b694f1fba612259abf7229) Original-Change-Id: I1e907753e1d2eec8514bf5bc2f4166502c5477dc Reviewed-on: http://git-master/r/37422 Tested-by: Seongho Joo <sjoo@nvidia.com> Reviewed-by: Jonathan Mayo <jmayo@nvidia.com> Rebase-Id: R94af8a09f68427762618cac0a9f21f9b5fedbe6b
Diffstat (limited to 'drivers/video/tegra/dc')
-rw-r--r--drivers/video/tegra/dc/nvhdcp.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/video/tegra/dc/nvhdcp.c b/drivers/video/tegra/dc/nvhdcp.c
index 33a52f88ae7a..cb33f832f242 100644
--- a/drivers/video/tegra/dc/nvhdcp.c
+++ b/drivers/video/tegra/dc/nvhdcp.c
@@ -36,6 +36,8 @@
#include "hdmi_reg.h"
#include "hdmi.h"
+DECLARE_WAIT_QUEUE_HEAD(wq_worker);
+
/* for 0x40 Bcaps */
#define BCAPS_REPEATER (1 << 6)
#define BCAPS_READY (1 << 5)
@@ -996,7 +998,8 @@ static void nvhdcp_downstream_worker(struct work_struct *work)
goto failure;
}
mutex_unlock(&nvhdcp->lock);
- msleep(1500);
+ wait_event_interruptible_timeout(wq_worker, 0,
+ msecs_to_jiffies(1500));
mutex_lock(&nvhdcp->lock);
}
@@ -1043,6 +1046,7 @@ static int tegra_nvhdcp_off(struct tegra_nvhdcp *nvhdcp)
nvhdcp->state = STATE_OFF;
nvhdcp_set_plugged(nvhdcp, false);
mutex_unlock(&nvhdcp->lock);
+ wake_up_interruptible(&wq_worker);
flush_workqueue(nvhdcp->downstream_wq);
return 0;
}