summaryrefslogtreecommitdiff
path: root/packages/linux/linux-2.6.27/boc01/014-090114-sqn11x0-usb-hack.patch
diff options
context:
space:
mode:
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.patch17
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;