diff options
author | Seongho Joo <sjoo@nvidia.com> | 2011-06-08 02:38:46 +0900 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:47:07 -0800 |
commit | 1194f470e09b1d274856c1fe5bfb4cec77176709 (patch) | |
tree | 7db82837c34cd69a8ef4a5e34ed42ea2ba2ac224 /drivers/video/tegra/dc | |
parent | 860cc394d1bf03ca87f4d81f39524201f5286bea (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.c | 6 |
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; } |