diff options
| -rw-r--r-- | drivers/usb/gadget/udc/dummy_hcd.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c index b17618a55f1b..f04e91ef9e7c 100644 --- a/drivers/usb/gadget/udc/dummy_hcd.c +++ b/drivers/usb/gadget/udc/dummy_hcd.c | |||
| @@ -419,6 +419,7 @@ static void set_link_state_by_speed(struct dummy_hcd *dum_hcd) | |||
| 419 | static void set_link_state(struct dummy_hcd *dum_hcd) | 419 | static void set_link_state(struct dummy_hcd *dum_hcd) |
| 420 | { | 420 | { |
| 421 | struct dummy *dum = dum_hcd->dum; | 421 | struct dummy *dum = dum_hcd->dum; |
| 422 | unsigned int power_bit; | ||
| 422 | 423 | ||
| 423 | dum_hcd->active = 0; | 424 | dum_hcd->active = 0; |
| 424 | if (dum->pullup) | 425 | if (dum->pullup) |
| @@ -429,17 +430,19 @@ static void set_link_state(struct dummy_hcd *dum_hcd) | |||
| 429 | return; | 430 | return; |
| 430 | 431 | ||
| 431 | set_link_state_by_speed(dum_hcd); | 432 | set_link_state_by_speed(dum_hcd); |
| 433 | power_bit = (dummy_hcd_to_hcd(dum_hcd)->speed == HCD_USB3 ? | ||
| 434 | USB_SS_PORT_STAT_POWER : USB_PORT_STAT_POWER); | ||
| 432 | 435 | ||
| 433 | if ((dum_hcd->port_status & USB_PORT_STAT_ENABLE) == 0 || | 436 | if ((dum_hcd->port_status & USB_PORT_STAT_ENABLE) == 0 || |
| 434 | dum_hcd->active) | 437 | dum_hcd->active) |
| 435 | dum_hcd->resuming = 0; | 438 | dum_hcd->resuming = 0; |
| 436 | 439 | ||
| 437 | /* Currently !connected or in reset */ | 440 | /* Currently !connected or in reset */ |
| 438 | if ((dum_hcd->port_status & USB_PORT_STAT_CONNECTION) == 0 || | 441 | if ((dum_hcd->port_status & power_bit) == 0 || |
| 439 | (dum_hcd->port_status & USB_PORT_STAT_RESET) != 0) { | 442 | (dum_hcd->port_status & USB_PORT_STAT_RESET) != 0) { |
| 440 | unsigned disconnect = USB_PORT_STAT_CONNECTION & | 443 | unsigned int disconnect = power_bit & |
| 441 | dum_hcd->old_status & (~dum_hcd->port_status); | 444 | dum_hcd->old_status & (~dum_hcd->port_status); |
| 442 | unsigned reset = USB_PORT_STAT_RESET & | 445 | unsigned int reset = USB_PORT_STAT_RESET & |
| 443 | (~dum_hcd->old_status) & dum_hcd->port_status; | 446 | (~dum_hcd->old_status) & dum_hcd->port_status; |
| 444 | 447 | ||
| 445 | /* Report reset and disconnect events to the driver */ | 448 | /* Report reset and disconnect events to the driver */ |
