diff options
author | Seongho Joo <sjoo@nvidia.com> | 2011-06-08 02:38:46 +0900 |
---|---|---|
committer | Yuhao Ding <yding@nvidia.com> | 2011-06-15 18:04:57 -0700 |
commit | e856cedd18d60c3636b694f1fba612259abf7229 (patch) | |
tree | 0e96b474e63fc280ddfc3ae99ef4c6187f158f1d | |
parent | f4cd754c1af2bbc2101dd208fd4d3d0bf6368d26 (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/#change,35449
Change-Id: I9f1eb721cbbe91b4e9c10cc8aa64f335be111651
Reviewed-on: http://git-master/r/36215
Reviewed-by: Donghan Ryu <dryu@nvidia.com>
Reviewed-by: Jonathan Mayo <jmayo@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Tested-by: Seongho Joo <sjoo@nvidia.com>
-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 69b8161119de..49c5c9bea46e 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); } @@ -1038,6 +1041,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; } |