aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSarah Sharp <sarah.a.sharp@linux.intel.com>2012-03-16 16:27:39 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-04-22 19:21:41 -0400
commit12faabb18deebe28d463ee150c0cefafbac482ae (patch)
treeef531ff8b8a7305f2e552061560000a33459c8b1
parentc5f20d41fbdc2dac663d941648ca21ec72886d5c (diff)
xhci: Restore event ring dequeue pointer on resume.
commit fb3d85bc7193f23c9a564502df95564c49a32c91 upstream. The xhci_save_registers() function saved the event ring dequeue pointer in the s3 register structure, but xhci_restore_registers() never restored it. No other code in the xHCI successful resume path would ever restore it either. Fix that. This should be backported to kernels as old as 2.6.37, that contain the commit 5535b1d5f8885695c6ded783c692e3c0d0eda8ca "USB: xHCI: PCI power management implementation". Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Tested-by: Elric Fu <elricfu1@gmail.com> Cc: Andiry Xu <andiry.xu@amd.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/host/xhci.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index b4416d8dd48..00ad6110ecf 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -627,6 +627,7 @@ static void xhci_restore_registers(struct xhci_hcd *xhci)
627 xhci_writel(xhci, xhci->s3.irq_control, &xhci->ir_set->irq_control); 627 xhci_writel(xhci, xhci->s3.irq_control, &xhci->ir_set->irq_control);
628 xhci_writel(xhci, xhci->s3.erst_size, &xhci->ir_set->erst_size); 628 xhci_writel(xhci, xhci->s3.erst_size, &xhci->ir_set->erst_size);
629 xhci_write_64(xhci, xhci->s3.erst_base, &xhci->ir_set->erst_base); 629 xhci_write_64(xhci, xhci->s3.erst_base, &xhci->ir_set->erst_base);
630 xhci_write_64(xhci, xhci->s3.erst_dequeue, &xhci->ir_set->erst_dequeue);
630} 631}
631 632
632static void xhci_set_cmd_ring_deq(struct xhci_hcd *xhci) 633static void xhci_set_cmd_ring_deq(struct xhci_hcd *xhci)