aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorSarah Sharp <sarah.a.sharp@linux.intel.com>2009-04-29 19:04:59 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2009-06-15 21:44:50 -0700
commit06e7a1487b61e1ae909c4a4c264b4428c55beb7e (patch)
tree33371e5c383b6ae9e1a0f28d218b39b2b4a97a3e /drivers/usb
parentUSB: xhci: Fix register write order. (diff)
downloadlinux-dev-06e7a1487b61e1ae909c4a4c264b4428c55beb7e.tar.xz
linux-dev-06e7a1487b61e1ae909c4a4c264b4428c55beb7e.zip
USB: xhci: Fix Link TRB handoff bit twiddling.
Make sure to preserve all bits *except* the TRB_CHAIN bit when giving a Link TRB to the hardware. We need to save things like TRB type and the toggle bit in the control dword. Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/host/xhci-ring.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 9d6874710669..8fb5d52c08c9 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -188,7 +188,7 @@ static void inc_enq(struct xhci_hcd *xhci, struct xhci_ring *ring, bool consumer
next->link.control &= (u32) ~TRB_CYCLE;
else
next->link.control |= (u32) TRB_CYCLE;
- next->link.control &= TRB_CHAIN;
+ next->link.control &= ~TRB_CHAIN;
next->link.control |= chain;
}
/* Toggle the cycle bit after the last ring segment. */