]> 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)
committerAndi Kleen <ak@linux.intel.com>
Thu, 28 Apr 2011 15:21:09 +0000 (08:21 -0700)
commiteaf0c653ec6898c65aceff17469a35ce97bab8aa
tree4fc68631b6896f3f9a0a9ad97cb8b33ccca72f4a
parent7582e0dedb0f71907b0cd6cc298b246628ced943
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>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
drivers/usb/host/xhci-mem.c