USB: xhci - fix bit definitions for IMAN register

According to XHCI specification (5.5.2.1) the IP is bit 0 and IE is bit 1
of IMAN register. Previously their definitions were reversed.

Even though there are no ill effects being observed from the swapped
definitions (because IMAN_IP is RW1C and in legacy PCI case we come in
with it already set to 1 so it was clearing itself even though we were
setting IMAN_IE instead of IMAN_IP), we should still correct the values.

This patch should be backported to kernels as old as 2.6.36, that
contain the commit 4e833c0b87 "xhci: don't
re-enable IE constantly".

Signed-off-by: Dmitry Torokhov <dtor@vmware.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: stable@vger.kernel.org
This commit is contained in:
Dmitry Torokhov 2013-02-25 10:56:01 -08:00 committed by Sarah Sharp
parent 2a40f32454
commit f8264340e6

View file

@ -206,8 +206,8 @@ struct xhci_op_regs {
/* bits 12:31 are reserved (and should be preserved on writes). */ /* bits 12:31 are reserved (and should be preserved on writes). */
/* IMAN - Interrupt Management Register */ /* IMAN - Interrupt Management Register */
#define IMAN_IP (1 << 1) #define IMAN_IE (1 << 1)
#define IMAN_IE (1 << 0) #define IMAN_IP (1 << 0)
/* USBSTS - USB status - status bitmasks */ /* USBSTS - USB status - status bitmasks */
/* HC not running - set to 1 when run/stop bit is cleared. */ /* HC not running - set to 1 when run/stop bit is cleared. */