]> git.baikalelectronics.ru Git - kernel.git/commit
xhci: Fix register save/restore order.
authorSarah Sharp <sarah.a.sharp@linux.intel.com>
Fri, 16 Mar 2012 20:19:35 +0000 (13:19 -0700)
committerSarah Sharp <sarah.a.sharp@linux.intel.com>
Wed, 11 Apr 2012 15:28:57 +0000 (08:28 -0700)
commit149adaa30f72f34cf96bc3544386b00837b991f7
treecb5e246bc2f1d68a7cef8f0aa40aa43c65f34f7c
parent8b0f2cd3a11f69c9243aa683a820703386c0f7ad
xhci: Fix register save/restore order.

The xHCI 1.0 spec errata released on June 13, 2011, changes the ordering
that the xHCI registers are saved and restored in.  It moves the
interrupt pending (IMAN) and interrupt control (IMOD) registers to be
saved and restored last.  I believe that's because the host controller
may attempt to fetch the event ring table when interrupts are
re-enabled.  Therefore we need to restore the event ring registers
before we re-enable interrupts.

This should be backported to kernels as old as 2.6.37, that contain the
commit 4c26c065e8970d0209da92240190d581a22547ca "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>
Cc: stable@vger.kernel.org
drivers/usb/host/xhci.c