]> pilppa.org Git - familiar-h63xx-build.git/blob - org.handhelds.familiar/packages/linux/unslung-kernel/gl811e.patch
OE tree imported from monotone branch org.openembedded.oz354fam083 at revision 8b12e3...
[familiar-h63xx-build.git] / org.handhelds.familiar / packages / linux / unslung-kernel / gl811e.patch
1 --- linux-2.4.22/drivers/usb/storage/transport.c        Fri Jul  9 10:56:27 2004
2 +++ linux-2.4.22/drivers/usb/storage/transport.c        Fri Jul  9 11:51:14 2004
3 @@ -1170,6 +1170,12 @@
4  
5         /* if the command transfered well, then we go to the data stage */
6         if (result == 0) {
7 +
8 +               /* Genesys Logic interface chips need a 100us delay between
9 +                * the command phase and the data phase */
10 +               if (us->pusb_dev->descriptor.idVendor == USB_VENDOR_ID_GENESYS)
11 +                       udelay(100);
12 +
13                 /* send/receive data payload, if there is any */
14                 if (bcb->DataTransferLength) {
15                         usb_stor_transfer(srb, us);
16 --- linux-2.4.22/drivers/usb/storage/usb.c      Fri Jul  9 11:44:53 2004
17 +++ linux-2.4.22/drivers/usb/storage/usb.c      Fri Jul  9 11:49:44 2004
18 @@ -996,6 +996,15 @@
19                  */
20                 (struct us_data *)ss->htmplt.proc_dir = ss; 
21  
22 +               /* According to the technical support people at Genesys Logic,
23 +                * devices using their chips have problems transferring more
24 +                * than 32 KB at a time.  In practice people have found that
25 +                * 64 KB works okay and that's what Windows does.  But we'll
26 +                * be conservative.
27 +                */
28 +               if (ss->pusb_dev->descriptor.idVendor == USB_VENDOR_ID_GENESYS)
29 +                       ss->htmplt.max_sectors = 64;
30 +
31                 /* Just before we start our control thread, initialize
32                  * the device if it needs initialization */
33                 if (unusual_dev && unusual_dev->initFunction)
34 --- linux-2.4.22/drivers/usb/storage/usb.h      Fri Jul  9 10:56:03 2004
35 +++ linux-2.4.22/drivers/usb/storage/usb.h      Fri Jul  9 11:45:49 2004
36 @@ -193,4 +193,7 @@
37  /* Function to fill an inquiry response. See usb.c for details */
38  extern void fill_inquiry_response(struct us_data *us,
39         unsigned char *data, unsigned int data_len);
40 +
41 +/* Vendor ID list for devices that require special handling */
42 +#define USB_VENDOR_ID_GENESYS          0x05e3  /* Genesys Logic */
43  #endif