• Sarah Sharp's avatar
    xhci: Fix register save/restore order. · c7713e73
    Sarah Sharp authored
    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 5535b1d5 "USB: xHCI: PCI power
    management implementation"
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    Tested-by: default avatarElric Fu <elricfu1@gmail.com>
    Cc: Andiry Xu <andiry.xu@amd.com>
    Cc: stable@vger.kernel.org
    c7713e73
xhci.c 123 KB