summaryrefslogtreecommitdiff
path: root/recipes/linux/unslung-kernel/gl811e.patch
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/linux/unslung-kernel/gl811e.patch
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/linux/unslung-kernel/gl811e.patch')
-rw-r--r--recipes/linux/unslung-kernel/gl811e.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/recipes/linux/unslung-kernel/gl811e.patch b/recipes/linux/unslung-kernel/gl811e.patch
new file mode 100644
index 0000000000..106c329b4c
--- /dev/null
+++ b/recipes/linux/unslung-kernel/gl811e.patch
@@ -0,0 +1,43 @@
+--- linux-2.4.22/drivers/usb/storage/transport.c Fri Jul 9 10:56:27 2004
++++ linux-2.4.22/drivers/usb/storage/transport.c Fri Jul 9 11:51:14 2004
+@@ -1170,6 +1170,12 @@
+
+ /* if the command transfered well, then we go to the data stage */
+ if (result == 0) {
++
++ /* Genesys Logic interface chips need a 100us delay between
++ * the command phase and the data phase */
++ if (us->pusb_dev->descriptor.idVendor == USB_VENDOR_ID_GENESYS)
++ udelay(100);
++
+ /* send/receive data payload, if there is any */
+ if (bcb->DataTransferLength) {
+ usb_stor_transfer(srb, us);
+--- linux-2.4.22/drivers/usb/storage/usb.c Fri Jul 9 11:44:53 2004
++++ linux-2.4.22/drivers/usb/storage/usb.c Fri Jul 9 11:49:44 2004
+@@ -996,6 +996,15 @@
+ */
+ (struct us_data *)ss->htmplt.proc_dir = ss;
+
++ /* According to the technical support people at Genesys Logic,
++ * devices using their chips have problems transferring more
++ * than 32 KB at a time. In practice people have found that
++ * 64 KB works okay and that's what Windows does. But we'll
++ * be conservative.
++ */
++ if (ss->pusb_dev->descriptor.idVendor == USB_VENDOR_ID_GENESYS)
++ ss->htmplt.max_sectors = 64;
++
+ /* Just before we start our control thread, initialize
+ * the device if it needs initialization */
+ if (unusual_dev && unusual_dev->initFunction)
+--- linux-2.4.22/drivers/usb/storage/usb.h Fri Jul 9 10:56:03 2004
++++ linux-2.4.22/drivers/usb/storage/usb.h Fri Jul 9 11:45:49 2004
+@@ -193,4 +193,7 @@
+ /* Function to fill an inquiry response. See usb.c for details */
+ extern void fill_inquiry_response(struct us_data *us,
+ unsigned char *data, unsigned int data_len);
++
++/* Vendor ID list for devices that require special handling */
++#define USB_VENDOR_ID_GENESYS 0x05e3 /* Genesys Logic */
+ #endif