xHCI: fix cycle bit set in giveback_first_trb()
authorAndiry Xu <andiry.xu@amd.com>
Mon, 20 Dec 2010 07:09:34 +0000 (15:09 +0800)
committerSarah Sharp <sarah.a.sharp@linux.intel.com>
Fri, 14 Jan 2011 23:51:55 +0000 (15:51 -0800)
commit50f7b52a83a893929edf87a89ebc081ff26a7b91
tree8cf753001566c0b925bee66c9458a30d96b94b49
parente1eab2e00015bfe48388920ff287efdbefb6af24
xHCI: fix cycle bit set in giveback_first_trb()

giveback_first_trb() controls the cycle bit set of the start_trb, to ensure
that the start_trb is written last and the host controller will receive a
whole td at a time.

However, if the ring is wrapped and cycle bit is toggled to zero, then
giveback_first_trb() will be of no effect. In this case, set the cycle bit of
start_trb to 1 at the beginning and clear it in giveback_first_trb().

Signed-off-by: Andiry Xu <andiry.xu@amd.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
drivers/usb/host/xhci-ring.c