]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commit
usb-core: Add LINEAR_FRAME_INTR_BINTERVAL USB quirk
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Mon, 13 Mar 2017 19:50:08 +0000 (20:50 +0100)
committerTim Gardner <tim.gardner@canonical.com>
Thu, 30 Mar 2017 12:35:45 +0000 (06:35 -0600)
commit5ae4cf5169e6f0102eb667f3227b1fdc4cae33b7
tree2ca3a5bc384833ec8b13c0a46710cb02db4b9cf3
parentaab1678f99bf090ef1c0b794bc330fcdbd527df9
usb-core: Add LINEAR_FRAME_INTR_BINTERVAL USB quirk

BugLink: http://bugs.launchpad.net/bugs/1677589
commit 3243367b209faed5c320a4e5f9a565ee2a2ba958 upstream.

Some USB 2.0 devices erroneously report millisecond values in
bInterval. The generic config code manages to catch most of them,
but in some cases it's not completely enough.

The case at stake here is a USB 2.0 braille device, which wants to
announce 10ms and thus sets bInterval to 10, but with the USB 2.0
computation that yields to 64ms.  It happens that one can type fast
enough to reach this interval and get the device buffers overflown,
leading to problematic latencies.  The generic config code does not
catch this case because the 64ms is considered a sane enough value.

This change thus adds a USB_QUIRK_LINEAR_FRAME_INTR_BINTERVAL quirk
to mark devices which actually report milliseconds in bInterval,
and marks Vario Ultra devices as needing it.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
drivers/usb/core/config.c
drivers/usb/core/quirks.c
include/linux/usb/quirks.h