mdm6600: Request irq after wakelocks have been initialized
authorBenoit Goby <benoit@android.com>
Thu, 21 Oct 2010 20:57:57 +0000 (13:57 -0700)
committerBenoit Goby <benoit@android.com>
Thu, 21 Oct 2010 21:23:34 +0000 (14:23 -0700)
Change-Id: Iaf316e96818a0c728be57d57a992e072e4c7e4a5
Signed-off-by: Benoit Goby <benoit@android.com>
drivers/usb/serial/mdm6600.c

index 9420131b88e5e6d5aa078b0d35de3c3180ca0337..3c37fd36869cba80c86ae363bc8bd8151f486944 100644 (file)
@@ -210,17 +210,6 @@ static int mdm6600_attach(struct usb_serial *serial)
                modem->read.urb[i] = u;
        }
 
-       if (modem->number == MODEM_INTERFACE_NUM) {
-               status = request_irq(mdm6600_wake_irq, mdm6600_irq_handler,
-                               IRQ_TYPE_EDGE_FALLING, "usb_wake_host", modem);
-               if (status) {
-                       pr_err("request_irq failed; err=%d", status);
-                       return -ENXIO;
-               }
-               enable_irq_wake(mdm6600_wake_irq);
-               disable_irq(mdm6600_wake_irq);
-       }
-
        spin_lock_init(&modem->susp_lock);
        spin_lock_init(&modem->write.pending_lock);
 
@@ -241,6 +230,17 @@ static int mdm6600_attach(struct usb_serial *serial)
        serial->dev->autosuspend_delay = MODEM_AUTOSUSPEND_DELAY;
        serial->dev->parent->autosuspend_delay = 0;
 
+       if (modem->number == MODEM_INTERFACE_NUM) {
+               status = request_irq(mdm6600_wake_irq, mdm6600_irq_handler,
+                               IRQ_TYPE_EDGE_FALLING, "usb_wake_host", modem);
+               if (status) {
+                       pr_err("request_irq failed; err=%d", status);
+                       return -ENXIO;
+               }
+               enable_irq_wake(mdm6600_wake_irq);
+               disable_irq(mdm6600_wake_irq);
+       }
+
        return 0;
 }