aboutsummaryrefslogtreecommitdiffstats
path: root/packages/linux/linux-2.6.27/boc01/001-090114-sqn11x0-usb-hack.patch
blob: 4bd44e25db999f2be047b6c1e1757b585502c1a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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;