]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/usb/otg/twl4030-usb.c
USB: otg: twl4030: fix wrong assumption of starting state
[net-next-2.6.git] / drivers / usb / otg / twl4030-usb.c
index 0e8888588d4e01db602762276d0561d15739ed27..05aaac1c3861e5be2f8d30c4311e7faa5a2c40a8 100644 (file)
@@ -550,6 +550,7 @@ static int __devinit twl4030_usb_probe(struct platform_device *pdev)
        struct twl4030_usb_data *pdata = pdev->dev.platform_data;
        struct twl4030_usb      *twl;
        int                     status, err;
+       u8                      pwr;
 
        if (!pdata) {
                dev_dbg(&pdev->dev, "platform_data not available\n");
@@ -568,7 +569,10 @@ static int __devinit twl4030_usb_probe(struct platform_device *pdev)
        twl->otg.set_peripheral = twl4030_set_peripheral;
        twl->otg.set_suspend    = twl4030_set_suspend;
        twl->usb_mode           = pdata->usb_mode;
-       twl->asleep             = 1;
+
+       pwr = twl4030_usb_read(twl, PHY_PWR_CTRL);
+
+       twl->asleep             = (pwr & PHY_PWR_PHYPWD);
 
        /* init spinlock for workqueue */
        spin_lock_init(&twl->lock);