aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/core/quirks.c
diff options
context:
space:
mode:
authorJames P Michels III <james.p.michels@gmail.com>2014-07-27 13:28:04 -0400
committerBen Hutchings <ben@decadent.org.uk>2015-02-20 00:49:39 +0000
commitcca4d731e2e9ccebb069b84c8aea70f15834a203 (patch)
tree54f9c613561cb317ff378bfca951604cf5ab9ebd /drivers/usb/core/quirks.c
parent4fe697c2b34b5740118a477db535f2fb1ab24467 (diff)
downloadkernel_samsung_smdk4412-cca4d731e2e9ccebb069b84c8aea70f15834a203.zip
kernel_samsung_smdk4412-cca4d731e2e9ccebb069b84c8aea70f15834a203.tar.gz
kernel_samsung_smdk4412-cca4d731e2e9ccebb069b84c8aea70f15834a203.tar.bz2
usb-core bInterval quirk
commit cd83ce9e6195aa3ea15ab4db92892802c20df5d0 upstream. This patch adds a usb quirk to support devices with interupt endpoints and bInterval values expressed as microframes. The quirk causes the parse endpoint function to modify the reported bInterval to a standards conforming value. There is currently code in the endpoint parser that checks for bIntervals that are outside of the valid range (1-16 for USB 2+ high speed and super speed interupt endpoints). In this case, the code assumes the bInterval is being reported in 1ms frames. As well, the correction is only applied if the original bInterval value is out of the 1-16 range. With this quirk applied to the device, the bInterval will be accurately adjusted from microframes to an exponent. Signed-off-by: James P Michels III <james.p.michels@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'drivers/usb/core/quirks.c')
-rw-r--r--drivers/usb/core/quirks.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 3dbb18c..28ee079 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -150,6 +150,10 @@ static const struct usb_device_id usb_quirk_list[] = {
/* SKYMEDI USB_DRIVE */
{ USB_DEVICE(0x1516, 0x8628), .driver_info = USB_QUIRK_RESET_RESUME },
+ /* Razer - Razer Blade Keyboard */
+ { USB_DEVICE(0x1532, 0x0116), .driver_info =
+ USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },
+
/* BUILDWIN Photo Frame */
{ USB_DEVICE(0x1908, 0x1315), .driver_info =
USB_QUIRK_HONOR_BNUMINTERFACES },