diff options
author | Koen Kooi <koen@openembedded.org> | 2005-06-30 08:19:37 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2005-06-30 08:19:37 +0000 |
commit | c8e5702127e507e82e6f68a4b8c546803accea9d (patch) | |
tree | 00583491f40ecc640f2b28452af995e3a63a09d7 /packages/linux/unslung-kernel/gl811e.patch | |
parent | 87ec8ca4d2e2eb4d1c1e1e1a6b46a395d56805b9 (diff) |
import clean BK tree at cset 1.3670
Diffstat (limited to 'packages/linux/unslung-kernel/gl811e.patch')
-rw-r--r-- | packages/linux/unslung-kernel/gl811e.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/packages/linux/unslung-kernel/gl811e.patch b/packages/linux/unslung-kernel/gl811e.patch index e69de29bb2..106c329b4c 100644 --- a/packages/linux/unslung-kernel/gl811e.patch +++ b/packages/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 |