diff options
Diffstat (limited to 'drivers/usb/host/isp116x-hcd.c')
-rw-r--r-- | drivers/usb/host/isp116x-hcd.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/drivers/usb/host/isp116x-hcd.c b/drivers/usb/host/isp116x-hcd.c index 203a3359a64..20b9a0d0742 100644 --- a/drivers/usb/host/isp116x-hcd.c +++ b/drivers/usb/host/isp116x-hcd.c | |||
@@ -1400,7 +1400,7 @@ static int isp116x_bus_suspend(struct usb_hcd *hcd) | |||
1400 | spin_unlock_irqrestore(&isp116x->lock, flags); | 1400 | spin_unlock_irqrestore(&isp116x->lock, flags); |
1401 | val &= (~HCCONTROL_HCFS & ~HCCONTROL_RWE); | 1401 | val &= (~HCCONTROL_HCFS & ~HCCONTROL_RWE); |
1402 | val |= HCCONTROL_USB_SUSPEND; | 1402 | val |= HCCONTROL_USB_SUSPEND; |
1403 | if (device_may_wakeup(&hcd->self.root_hub->dev)) | 1403 | if (hcd->self.root_hub->do_remote_wakeup) |
1404 | val |= HCCONTROL_RWE; | 1404 | val |= HCCONTROL_RWE; |
1405 | /* Wait for usb transfers to finish */ | 1405 | /* Wait for usb transfers to finish */ |
1406 | msleep(2); | 1406 | msleep(2); |
@@ -1442,11 +1442,6 @@ static int isp116x_bus_resume(struct usb_hcd *hcd) | |||
1442 | break; | 1442 | break; |
1443 | case HCCONTROL_USB_OPER: | 1443 | case HCCONTROL_USB_OPER: |
1444 | spin_unlock_irq(&isp116x->lock); | 1444 | spin_unlock_irq(&isp116x->lock); |
1445 | /* Without setting power_state here the | ||
1446 | SUSPENDED state won't be removed from | ||
1447 | sysfs/usbN/power.state as a response to remote | ||
1448 | wakeup. Maybe in the future. */ | ||
1449 | hcd->self.root_hub->dev.power.power_state = PMSG_ON; | ||
1450 | return 0; | 1445 | return 0; |
1451 | default: | 1446 | default: |
1452 | /* HCCONTROL_USB_RESET: this may happen, when during | 1447 | /* HCCONTROL_USB_RESET: this may happen, when during |
@@ -1460,7 +1455,6 @@ static int isp116x_bus_resume(struct usb_hcd *hcd) | |||
1460 | if ((isp116x->rhdesca & RH_A_NDP) == 2) | 1455 | if ((isp116x->rhdesca & RH_A_NDP) == 2) |
1461 | isp116x_hub_control(hcd, SetPortFeature, | 1456 | isp116x_hub_control(hcd, SetPortFeature, |
1462 | USB_PORT_FEAT_POWER, 2, NULL, 0); | 1457 | USB_PORT_FEAT_POWER, 2, NULL, 0); |
1463 | hcd->self.root_hub->dev.power.power_state = PMSG_ON; | ||
1464 | return 0; | 1458 | return 0; |
1465 | } | 1459 | } |
1466 | 1460 | ||
@@ -1486,8 +1480,6 @@ static int isp116x_bus_resume(struct usb_hcd *hcd) | |||
1486 | isp116x_write_reg32(isp116x, HCCONTROL, | 1480 | isp116x_write_reg32(isp116x, HCCONTROL, |
1487 | (val & ~HCCONTROL_HCFS) | HCCONTROL_USB_OPER); | 1481 | (val & ~HCCONTROL_HCFS) | HCCONTROL_USB_OPER); |
1488 | spin_unlock_irq(&isp116x->lock); | 1482 | spin_unlock_irq(&isp116x->lock); |
1489 | /* see analogous comment above */ | ||
1490 | hcd->self.root_hub->dev.power.power_state = PMSG_ON; | ||
1491 | hcd->state = HC_STATE_RUNNING; | 1483 | hcd->state = HC_STATE_RUNNING; |
1492 | 1484 | ||
1493 | return 0; | 1485 | return 0; |
@@ -1663,7 +1655,6 @@ static int __devinit isp116x_probe(struct platform_device *pdev) | |||
1663 | static int isp116x_suspend(struct platform_device *dev, pm_message_t state) | 1655 | static int isp116x_suspend(struct platform_device *dev, pm_message_t state) |
1664 | { | 1656 | { |
1665 | VDBG("%s: state %x\n", __func__, state.event); | 1657 | VDBG("%s: state %x\n", __func__, state.event); |
1666 | dev->dev.power.power_state = state; | ||
1667 | return 0; | 1658 | return 0; |
1668 | } | 1659 | } |
1669 | 1660 | ||
@@ -1672,8 +1663,7 @@ static int isp116x_suspend(struct platform_device *dev, pm_message_t state) | |||
1672 | */ | 1663 | */ |
1673 | static int isp116x_resume(struct platform_device *dev) | 1664 | static int isp116x_resume(struct platform_device *dev) |
1674 | { | 1665 | { |
1675 | VDBG("%s: state %x\n", __func__, dev->power.power_state.event); | 1666 | VDBG("%s\n", __func__); |
1676 | dev->dev.power.power_state = PMSG_ON; | ||
1677 | return 0; | 1667 | return 0; |
1678 | } | 1668 | } |
1679 | 1669 | ||