diff options
Diffstat (limited to 'drivers/usb/host/xhci-ring.c')
| -rw-r--r-- | drivers/usb/host/xhci-ring.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c index 94416ff70810..32f4d564494a 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c | |||
| @@ -82,7 +82,7 @@ dma_addr_t xhci_trb_virt_to_dma(struct xhci_segment *seg, | |||
| 82 | return 0; | 82 | return 0; |
| 83 | /* offset in TRBs */ | 83 | /* offset in TRBs */ |
| 84 | segment_offset = trb - seg->trbs; | 84 | segment_offset = trb - seg->trbs; |
| 85 | if (segment_offset > TRBS_PER_SEGMENT) | 85 | if (segment_offset >= TRBS_PER_SEGMENT) |
| 86 | return 0; | 86 | return 0; |
| 87 | return seg->dma + (segment_offset * sizeof(*trb)); | 87 | return seg->dma + (segment_offset * sizeof(*trb)); |
| 88 | } | 88 | } |
| @@ -1546,6 +1546,9 @@ static void handle_port_status(struct xhci_hcd *xhci, | |||
| 1546 | usb_hcd_resume_root_hub(hcd); | 1546 | usb_hcd_resume_root_hub(hcd); |
| 1547 | } | 1547 | } |
| 1548 | 1548 | ||
| 1549 | if (hcd->speed == HCD_USB3 && (temp & PORT_PLS_MASK) == XDEV_INACTIVE) | ||
| 1550 | bus_state->port_remote_wakeup &= ~(1 << faked_port_index); | ||
| 1551 | |||
| 1549 | if ((temp & PORT_PLC) && (temp & PORT_PLS_MASK) == XDEV_RESUME) { | 1552 | if ((temp & PORT_PLC) && (temp & PORT_PLS_MASK) == XDEV_RESUME) { |
| 1550 | xhci_dbg(xhci, "port resume event for port %d\n", port_id); | 1553 | xhci_dbg(xhci, "port resume event for port %d\n", port_id); |
| 1551 | 1554 | ||
