From b2e434a2c916808995c0c57b17c0dbcce9ca0c6b Mon Sep 17 00:00:00 2001 From: wlf Date: Tue, 18 Mar 2014 21:16:41 +0800 Subject: [PATCH] USB: fix RK3288 usb_det_wakeup_work bug. --- drivers/usb/dwc_otg_310/usbdev_rk32.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/usb/dwc_otg_310/usbdev_rk32.c b/drivers/usb/dwc_otg_310/usbdev_rk32.c index 8f8ac6bd3b8a..3fd4284bc03a 100755 --- a/drivers/usb/dwc_otg_310/usbdev_rk32.c +++ b/drivers/usb/dwc_otg_310/usbdev_rk32.c @@ -489,8 +489,10 @@ static irqreturn_t id_irq_handler(int irq, void *dev_id) #endif control_usb->grf_uoc0_base->CON4 = ((1<<7)|(1<<23));//clear id fall irq pandding } - - schedule_delayed_work(&control_usb->usb_wakelock, HZ/10); +#ifdef CONFIG_RK_USB_DETECT_BY_OTG_BVALID + wake_lock_timeout(&control_usb->usb_wakelock, WAKE_LOCK_TIMEOUT); + schedule_delayed_work(&control_usb->usb_det_wakeup_work, HZ/10); +#endif return IRQ_HANDLED; } @@ -512,8 +514,10 @@ static irqreturn_t line_irq_handler(int irq, void *dev_id) if(control_usb->grf_uoc2_base->CON0 & 1<<15){ control_usb->grf_uoc2_base->CON0 = (1<<15 | 1<<31); } - /* wake up system*/ - //schedule_delayed_work(&usb_det_wakeup_work, HZ/10); +#ifdef CONFIG_RK_USB_DETECT_BY_OTG_BVALID + wake_lock_timeout(&control_usb->usb_wakelock, WAKE_LOCK_TIMEOUT); + schedule_delayed_work(&control_usb->usb_det_wakeup_work, HZ/10); +#endif return IRQ_HANDLED; } @@ -760,10 +764,11 @@ static int dwc_otg_control_usb_probe(struct platform_device *pdev) goto err2; } */ +/* disable for debug ret = otg_irq_detect_init(pdev); if (ret < 0) goto err2; - +*/ return 0; err2: -- 2.34.1