diff options
Diffstat (limited to 'packages/linux/linux-2.6.27/boc01/014-090114-sqn11x0-usb-hack.patch')
-rw-r--r-- | packages/linux/linux-2.6.27/boc01/014-090114-sqn11x0-usb-hack.patch | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/packages/linux/linux-2.6.27/boc01/014-090114-sqn11x0-usb-hack.patch b/packages/linux/linux-2.6.27/boc01/014-090114-sqn11x0-usb-hack.patch new file mode 100644 index 0000000000..4bd44e25db --- /dev/null +++ b/packages/linux/linux-2.6.27/boc01/014-090114-sqn11x0-usb-hack.patch @@ -0,0 +1,17 @@ +diff -ur linux-2.6.27.orig/drivers/usb/host/ehci-q.c linux-2.6.27/drivers/usb/host/ehci-q.c +--- linux-2.6.27.orig/drivers/usb/host/ehci-q.c 2008-10-10 00:13:53.000000000 +0200 ++++ linux-2.6.27/drivers/usb/host/ehci-q.c 2009-01-06 18:31:38.000000000 +0100 +@@ -799,7 +799,12 @@ + * to help them do so. So now people expect to use + * such nonconformant devices with Linux too; sigh. + */ +- info1 |= max_packet(maxp) << 16; ++ struct usb_device_descriptor *desc = &urb->dev->descriptor; ++ if (desc->idVendor == cpu_to_le16(0x148e) && desc->idProduct == cpu_to_le16(0x0900)) { ++ info1 |= 256 << 16; ++ } else { ++ info1 |= max_packet(maxp) << 16; ++ } + info2 |= (EHCI_TUNE_MULT_HS << 30); + } else { /* PIPE_INTERRUPT */ + info1 |= max_packet (maxp) << 16; |