From e856cedd18d60c3636b694f1fba612259abf7229 Mon Sep 17 00:00:00 2001 From: Seongho Joo Date: Wed, 8 Jun 2011 02:38:46 +0900 Subject: 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 Reviewed-by: Jonathan Mayo Reviewed-by: Bharat Nihalani Tested-by: Seongho Joo --- drivers/video/tegra/dc/nvhdcp.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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; } -- cgit v1.2.3