aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/xhci-hub.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-07-16 19:58:30 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-07-16 19:58:30 -0400
commit6470cbc486652942dcf6c4b6420e3a521e766bbf (patch)
tree3244e6e1998031ac17e12283b2f797e60743d93b /drivers/usb/host/xhci-hub.c
parent43fe3a99d9caf10b25f9c596e9854cdae30db418 (diff)
parent024f117c2f3c4bb5df6e6696b709e0f3ed7e5dbb (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.c6
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: