From ebfe38927fc4e87d927cbfc15df2085834ca441a Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E9=BB=84=E6=B6=9B?= Date: Tue, 21 Aug 2012 09:36:17 +0800 Subject: [PATCH] rk: usb_detect: mark board_usb_detect_init as __init, use irq_set_irq_type support both edge trigger --- arch/arm/plat-rk/include/plat/board.h | 2 +- arch/arm/plat-rk/usb_detect.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/arm/plat-rk/include/plat/board.h b/arch/arm/plat-rk/include/plat/board.h index 9b3576be7d5d..4a97fe415e9a 100755 --- a/arch/arm/plat-rk/include/plat/board.h +++ b/arch/arm/plat-rk/include/plat/board.h @@ -190,7 +190,7 @@ int board_boot_mode(void); /* for USB detection */ #ifdef CONFIG_USB_GADGET -int board_usb_detect_init(unsigned gpio); +int __init board_usb_detect_init(unsigned gpio); #else static int inline board_usb_detect_init(unsigned gpio) { return 0; } #endif diff --git a/arch/arm/plat-rk/usb_detect.c b/arch/arm/plat-rk/usb_detect.c index 40a46884d036..267ce2546168 100644 --- a/arch/arm/plat-rk/usb_detect.c +++ b/arch/arm/plat-rk/usb_detect.c @@ -1,6 +1,7 @@ #include #include #include +#include #include #include @@ -13,14 +14,13 @@ static void usb_detect_do_wakeup(struct work_struct *work) { int ret; int irq = gpio_to_irq(detect_gpio); - unsigned long flags; + unsigned int type; rk28_send_wakeup_key(); - free_irq(irq, NULL); - flags = gpio_get_value(detect_gpio) ? IRQF_TRIGGER_FALLING : IRQF_TRIGGER_RISING; - ret = request_irq(irq, usb_detect_irq_handler, flags, "usb_detect", NULL); + type = gpio_get_value(detect_gpio) ? IRQ_TYPE_EDGE_FALLING : IRQ_TYPE_EDGE_RISING; + ret = irq_set_irq_type(irq, type); if (ret < 0) { - pr_err("%s: request_irq(%d) failed\n", __func__, irq); + pr_err("%s: irq_set_irq_type(%d, %d) failed\n", __func__, irq, type); } } @@ -35,7 +35,7 @@ static irqreturn_t usb_detect_irq_handler(int irq, void *dev_id) return IRQ_HANDLED; } -int board_usb_detect_init(unsigned gpio) +int __init board_usb_detect_init(unsigned gpio) { int ret; int irq = gpio_to_irq(gpio); -- 2.34.1