UPSTREAM: xhci: Fix isoc TD encoding.
authorSarah Sharp <sarah.a.sharp@linux.intel.com>
Fri, 11 Jan 2013 19:19:07 +0000 (11:19 -0800)
committerChromeBot <chrome-bot@google.com>
Fri, 22 Mar 2013 01:02:57 +0000 (18:02 -0700)
commitfd2c1baece6a773551746d0610c77e09fa3c6fc1
tree524e53cf2b9cd9b898d13f4a4ca58fbea986b6d0
parent8656c00cc7630ef58c01d7d1a9d78af41a4fd166
UPSTREAM: xhci: Fix isoc TD encoding.

commit 760973d2a74b93eb1697981f7448f0e62767cfc4 upstream.

An isochronous TD is comprised of one isochronous TRB chained to zero or
more normal TRBs.  Only the isoc TRB has the TBC and TLBPC fields.  The
normal TRBs must set those fields to zeroes.  The code was setting the
TBC and TLBPC fields for both isoc and normal TRBs.  Fix this.

This should be backported to stable kernels as old as 3.0, that contain
the commit b61d378f2da41c748aba6ca19d77e1e1c02bcea5 " xhci 1.0: Set
transfer burst last packet count field."

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 1757e241ae2c9758bd983250b94328bddeff8760)

BUG=None
TEST=Together with other cherry-picks: run BVT trybots on all platforms,
manually confirm that USB network/storage/input devices still work
(including across suspend/resume)

Change-Id: I78f2d1bdd0eb04b1c98d9c34e265498125fe346a
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/46078
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
drivers/usb/host/xhci-ring.c