From bcc43282405c2329eb2e4e9e72ca9b0f5ea651ef Mon Sep 17 00:00:00 2001 From: Erik Gilling Date: Mon, 11 Apr 2011 15:15:15 -0700 Subject: [PATCH] video: tegra: add debouncing to hdmi hotplug Change-Id: Ic998e183e79faabc36d96720dcbae2640e8cf419 Signed-off-by: Erik Gilling --- drivers/video/tegra/dc/hdmi.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/video/tegra/dc/hdmi.c b/drivers/video/tegra/dc/hdmi.c index 8ae17f97ab6f..ba2dc19072f9 100644 --- a/drivers/video/tegra/dc/hdmi.c +++ b/drivers/video/tegra/dc/hdmi.c @@ -494,10 +494,13 @@ static irqreturn_t tegra_dc_hdmi_irq(int irq, void *ptr) if (hdmi->suspended) { hdmi->hpd_pending = true; } else { + cancel_delayed_work(&hdmi->work); if (tegra_dc_hdmi_hpd(dc)) - schedule_delayed_work(&hdmi->work, msecs_to_jiffies(100)); + queue_delayed_work(system_nrt_wq, &hdmi->work, + msecs_to_jiffies(100)); else - schedule_delayed_work(&hdmi->work, msecs_to_jiffies(0)); + queue_delayed_work(system_nrt_wq, &hdmi->work, + msecs_to_jiffies(30)); } spin_unlock_irqrestore(&hdmi->suspend_lock, flags); @@ -524,9 +527,11 @@ static void tegra_dc_hdmi_resume(struct tegra_dc *dc) hdmi->suspended = false; if (hdmi->hpd_pending) { if (tegra_dc_hdmi_hpd(dc)) - schedule_delayed_work(&hdmi->work, msecs_to_jiffies(100)); + queue_delayed_work(system_nrt_wq, &hdmi->work, + msecs_to_jiffies(100)); else - schedule_delayed_work(&hdmi->work, msecs_to_jiffies(0)); + queue_delayed_work(system_nrt_wq, &hdmi->work, + msecs_to_jiffies(30)); hdmi->hpd_pending = false; } spin_unlock_irqrestore(&hdmi->suspend_lock, flags); -- 2.34.1