lkml.org 
[lkml]   [2004]   [Jul]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [Linux-usb-users] Genesys Logic and Kernel 2.4
    From
    Hi Alan,

    I have just subscribed Linux-usb-users tonight.

    I found your message
    > Re: [Linux-usb-users] Genesys Logic and Kernel 2.4
    on the web.

    > > I have a USB-IDE-Enclosure using the buggy Genesys chipset. My system
    > > has a 2.4 kernel and I cannot update soon for various reasons.

    I maybe have almost the same enclosure using Genesys chip.

    > I backported the 2.6 patch to 2.4.27, but I haven't tried compiling it so
    > there might be an error or two lurking. Please try it out and tell us
    > if it works.

    I tried following patch with a little change.

    > --- 2.4.27/drivers/usb/storage/transport.c Fri Jul 9 10:56:27 2004
    > +++ 2.4.27-gl/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);
    > --- 2.4.27/drivers/usb/storage/usb.c Fri Jul 9 11:44:53 2004
    > +++ 2.4.27-gl/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;

    + 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)
    > --- 2.4.27/drivers/usb/storage/usb.h Fri Jul 9 10:56:03 2004
    > +++ 2.4.27-gl/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

    Before I patched the kernel, I met many errors and hangups
    with big files writing into the enclosure.

    After with your patch, It works fine for me.

    My kernel is linux-2.4.27-rc3 with video4linux2 patch.
    HDD in the enclosure is HGST Deskstar 7K250.

    Just a report.

    Best Regards,
    Hisaaki Shibata

    --
    WWWWW shibata@luky.org
    |O-O| SHIBATA,Hisaaki @ Fukuoka-shi, JAPAN
    0( ^ )0 http://his.luky.org/
    ~ http://hoop.euqset.org/ IRC: #luky
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:04    [W:0.024 / U:0.256 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site