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