diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-07-16 19:58:30 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-07-16 19:58:30 -0400 |
commit | 6470cbc486652942dcf6c4b6420e3a521e766bbf (patch) | |
tree | 3244e6e1998031ac17e12283b2f797e60743d93b /drivers/usb/host/xhci-hub.c | |
parent | 43fe3a99d9caf10b25f9c596e9854cdae30db418 (diff) | |
parent | 024f117c2f3c4bb5df6e6696b709e0f3ed7e5dbb (diff) |
Merge tag 'for-usb-next-2012-07-11' of git://git.kernel.org/pub/scm/linux/kernel/git/sarah/xhci into usb-next
USB: Link PM fixes and Latency Tolerance Messaging
Hi Greg,
Here's four bug fix patches for Link PM (LPM), which are marked for
3.5-stable. There's also three patches that turn on Latency Tolerance
Messaging (LTM) for xHCI host controllers and USB 3.0 devices that support
this low power feature.
Please queue for 3.6.
Sarah Sharp
Diffstat (limited to 'drivers/usb/host/xhci-hub.c')
-rw-r--r-- | drivers/usb/host/xhci-hub.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c index 7b01094d7993..74bfc868b7ad 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c | |||
@@ -544,12 +544,18 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, | |||
544 | if (hcd->speed != HCD_USB3) | 544 | if (hcd->speed != HCD_USB3) |
545 | goto error; | 545 | goto error; |
546 | 546 | ||
547 | /* Set the U1 and U2 exit latencies. */ | ||
547 | memcpy(buf, &usb_bos_descriptor, | 548 | memcpy(buf, &usb_bos_descriptor, |
548 | USB_DT_BOS_SIZE + USB_DT_USB_SS_CAP_SIZE); | 549 | USB_DT_BOS_SIZE + USB_DT_USB_SS_CAP_SIZE); |
549 | temp = xhci_readl(xhci, &xhci->cap_regs->hcs_params3); | 550 | temp = xhci_readl(xhci, &xhci->cap_regs->hcs_params3); |
550 | buf[12] = HCS_U1_LATENCY(temp); | 551 | buf[12] = HCS_U1_LATENCY(temp); |
551 | put_unaligned_le16(HCS_U2_LATENCY(temp), &buf[13]); | 552 | put_unaligned_le16(HCS_U2_LATENCY(temp), &buf[13]); |
552 | 553 | ||
554 | /* Indicate whether the host has LTM support. */ | ||
555 | temp = xhci_readl(xhci, &xhci->cap_regs->hcc_params); | ||
556 | if (HCC_LTC(temp)) | ||
557 | buf[8] |= USB_LTM_SUPPORT; | ||
558 | |||
553 | spin_unlock_irqrestore(&xhci->lock, flags); | 559 | spin_unlock_irqrestore(&xhci->lock, flags); |
554 | return USB_DT_BOS_SIZE + USB_DT_USB_SS_CAP_SIZE; | 560 | return USB_DT_BOS_SIZE + USB_DT_USB_SS_CAP_SIZE; |
555 | case GetPortStatus: | 561 | case GetPortStatus: |