diff options
Diffstat (limited to 'drivers/usb/host/sl811-hcd.c')
-rw-r--r-- | drivers/usb/host/sl811-hcd.c | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c index 99d43f758ad0..6c3f910bc307 100644 --- a/drivers/usb/host/sl811-hcd.c +++ b/drivers/usb/host/sl811-hcd.c | |||
@@ -1563,29 +1563,15 @@ static int | |||
1563 | sl811h_start(struct usb_hcd *hcd) | 1563 | sl811h_start(struct usb_hcd *hcd) |
1564 | { | 1564 | { |
1565 | struct sl811 *sl811 = hcd_to_sl811(hcd); | 1565 | struct sl811 *sl811 = hcd_to_sl811(hcd); |
1566 | struct usb_device *udev; | ||
1567 | 1566 | ||
1568 | /* chip has been reset, VBUS power is off */ | 1567 | /* chip has been reset, VBUS power is off */ |
1569 | |||
1570 | udev = usb_alloc_dev(NULL, &hcd->self, 0); | ||
1571 | if (!udev) | ||
1572 | return -ENOMEM; | ||
1573 | |||
1574 | udev->speed = USB_SPEED_FULL; | ||
1575 | hcd->state = HC_STATE_RUNNING; | 1568 | hcd->state = HC_STATE_RUNNING; |
1576 | 1569 | ||
1577 | if (sl811->board) | 1570 | if (sl811->board) { |
1578 | hcd->can_wakeup = sl811->board->can_wakeup; | 1571 | hcd->can_wakeup = sl811->board->can_wakeup; |
1579 | 1572 | hcd->power_budget = sl811->board->power * 2; | |
1580 | if (usb_hcd_register_root_hub(udev, hcd) != 0) { | ||
1581 | usb_put_dev(udev); | ||
1582 | sl811h_stop(hcd); | ||
1583 | return -ENODEV; | ||
1584 | } | 1573 | } |
1585 | 1574 | ||
1586 | if (sl811->board && sl811->board->power) | ||
1587 | hub_set_power_budget(udev, sl811->board->power * 2); | ||
1588 | |||
1589 | /* enable power and interupts */ | 1575 | /* enable power and interupts */ |
1590 | port_power(sl811, 1); | 1576 | port_power(sl811, 1); |
1591 | 1577 | ||