From 3400011225a2fe795841ba6c4b8288c89e30cdfa Mon Sep 17 00:00:00 2001
From: =?utf8?q?=E9=BB=84=E6=B6=9B?= <huangtao@rock-chips.com>
Date: Tue, 25 Dec 2012 17:59:41 +0800
Subject: [PATCH] rk: usb_detect: add irq debounce for gpio detect

---
 arch/arm/plat-rk/usb_detect.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/plat-rk/usb_detect.c b/arch/arm/plat-rk/usb_detect.c
index 3d5dbcdfd35b..85bdded7bc74 100755
--- a/arch/arm/plat-rk/usb_detect.c
+++ b/arch/arm/plat-rk/usb_detect.c
@@ -22,6 +22,7 @@ static void usb_detect_do_wakeup(struct work_struct *work)
 	if (ret < 0) {
 		pr_err("%s: irq_set_irq_type(%d, %d) failed\n", __func__, irq, type);
 	}
+	enable_irq(irq);
 }
 
 static DECLARE_DELAYED_WORK(wakeup_work, usb_detect_do_wakeup);
@@ -30,6 +31,7 @@ static struct wake_lock usb_wakelock;
 
 static irqreturn_t usb_detect_irq_handler(int irq, void *dev_id)
 {
+	disable_irq_nosync(irq); // for irq debounce
 	wake_lock_timeout(&usb_wakelock, WAKE_LOCK_TIMEOUT);
 	schedule_delayed_work(&wakeup_work, HZ / 10);
 	return IRQ_HANDLED;
-- 
2.34.1