]> git.karo-electronics.de Git - karo-tx-linux.git/commit
USB: xhci - fix math in xhci_get_endpoint_interval()
authorDmitry Torokhov <dtor@vmware.com>
Thu, 24 Mar 2011 05:41:23 +0000 (22:41 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 22 Apr 2011 15:50:04 +0000 (08:50 -0700)
commit0c199d55f03759e32b8a6877bfbe9c9307995f6c
treee577030a747ae967c09714635c4ea58d8c334b46
parentfa0956d9f2572a3af022813afe34d22814bcbf82
USB: xhci - fix math in xhci_get_endpoint_interval()

commit dfa49c4ad120a784ef1ff0717168aa79f55a483a upstream.

When parsing exponent-expressed intervals we subtract 1 from the
value and then expect it to match with original + 1, which is
highly unlikely, and we end with frequent spew:

usb 3-4: ep 0x83 - rounding interval to 512 microframes

Also, parsing interval for fullspeed isochronous endpoints was
incorrect - according to USB spec they use exponent-based
intervals (but xHCI spec claims frame-based intervals). I trust
USB spec more, especially since USB core agrees with it.

This should be queued for stable kernels back to 2.6.31.

Reviewed-by: Micah Elizabeth Scott <micah@vmware.com>
Signed-off-by: Dmitry Torokhov <dtor@vmware.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/xhci-mem.c