diff options
Diffstat (limited to 'drivers/usb/host/ehci-hub.c')
| -rw-r--r-- | drivers/usb/host/ehci-hub.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c index d613dc9e9c05..740835bb8575 100644 --- a/drivers/usb/host/ehci-hub.c +++ b/drivers/usb/host/ehci-hub.c | |||
| @@ -609,7 +609,7 @@ static int ehci_hub_control ( | |||
| 609 | } | 609 | } |
| 610 | break; | 610 | break; |
| 611 | case USB_PORT_FEAT_C_SUSPEND: | 611 | case USB_PORT_FEAT_C_SUSPEND: |
| 612 | /* we auto-clear this feature */ | 612 | clear_bit(wIndex, &ehci->port_c_suspend); |
| 613 | break; | 613 | break; |
| 614 | case USB_PORT_FEAT_POWER: | 614 | case USB_PORT_FEAT_POWER: |
| 615 | if (HCS_PPC (ehci->hcs_params)) | 615 | if (HCS_PPC (ehci->hcs_params)) |
| @@ -688,7 +688,7 @@ static int ehci_hub_control ( | |||
| 688 | /* resume completed? */ | 688 | /* resume completed? */ |
| 689 | else if (time_after_eq(jiffies, | 689 | else if (time_after_eq(jiffies, |
| 690 | ehci->reset_done[wIndex])) { | 690 | ehci->reset_done[wIndex])) { |
| 691 | status |= 1 << USB_PORT_FEAT_C_SUSPEND; | 691 | set_bit(wIndex, &ehci->port_c_suspend); |
| 692 | ehci->reset_done[wIndex] = 0; | 692 | ehci->reset_done[wIndex] = 0; |
| 693 | 693 | ||
| 694 | /* stop resume signaling */ | 694 | /* stop resume signaling */ |
| @@ -765,6 +765,8 @@ static int ehci_hub_control ( | |||
| 765 | status |= 1 << USB_PORT_FEAT_RESET; | 765 | status |= 1 << USB_PORT_FEAT_RESET; |
| 766 | if (temp & PORT_POWER) | 766 | if (temp & PORT_POWER) |
| 767 | status |= 1 << USB_PORT_FEAT_POWER; | 767 | status |= 1 << USB_PORT_FEAT_POWER; |
| 768 | if (test_bit(wIndex, &ehci->port_c_suspend)) | ||
| 769 | status |= 1 << USB_PORT_FEAT_C_SUSPEND; | ||
| 768 | 770 | ||
| 769 | #ifndef VERBOSE_DEBUG | 771 | #ifndef VERBOSE_DEBUG |
| 770 | if (status & ~0xffff) /* only if wPortChange is interesting */ | 772 | if (status & ~0xffff) /* only if wPortChange is interesting */ |
