* Re: [Linux-usb-users] Genesys Logic and Kernel 2.4
[not found] <20040709054435.GA31159@torres.ka0.zugschlus.de>
@ 2004-07-10 20:27 ` Hisaaki Shibata
2004-07-11 14:07 ` Alan Stern
2004-09-22 20:15 ` Genesys and IEEE 1394 (was: Re: Genesys Logic and Kernel 2.4) Florian Weimer
0 siblings, 2 replies; 4+ messages in thread
From: Hisaaki Shibata @ 2004-07-10 20:27 UTC (permalink / raw)
To: stern; +Cc: linux-usb-users, linux-kernel
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Linux-usb-users] Genesys Logic and Kernel 2.4
2004-07-10 20:27 ` [Linux-usb-users] Genesys Logic and Kernel 2.4 Hisaaki Shibata
@ 2004-07-11 14:07 ` Alan Stern
2004-09-22 20:15 ` Genesys and IEEE 1394 (was: Re: Genesys Logic and Kernel 2.4) Florian Weimer
1 sibling, 0 replies; 4+ messages in thread
From: Alan Stern @ 2004-07-11 14:07 UTC (permalink / raw)
To: Hisaaki Shibata; +Cc: linux-usb-users, linux-kernel
On Sun, 11 Jul 2004, Hisaaki Shibata wrote:
> 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.
...
> 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
Thanks for testing, and thanks for the correction. I'll submit the
corrected patch for inclusion in 2.4.
Alan Stern
^ permalink raw reply [flat|nested] 4+ messages in thread
* Genesys and IEEE 1394 (was: Re: Genesys Logic and Kernel 2.4)
2004-07-10 20:27 ` [Linux-usb-users] Genesys Logic and Kernel 2.4 Hisaaki Shibata
2004-07-11 14:07 ` Alan Stern
@ 2004-09-22 20:15 ` Florian Weimer
2004-09-22 20:51 ` Alan Stern
1 sibling, 1 reply; 4+ messages in thread
From: Florian Weimer @ 2004-09-22 20:15 UTC (permalink / raw)
To: Hisaaki Shibata; +Cc: stern, linux-usb-users, linux-kernel
* Hisaaki Shibata:
>> + /* 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;
>
>> +
Christoph Biedl discovered that it's likely that a a similar
workaround is needed in the IEEE 1394 code:
http://sourceforge.net/mailarchive/forum.php?thread_id=5128811&forum_id=5389
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Genesys and IEEE 1394 (was: Re: Genesys Logic and Kernel 2.4)
2004-09-22 20:15 ` Genesys and IEEE 1394 (was: Re: Genesys Logic and Kernel 2.4) Florian Weimer
@ 2004-09-22 20:51 ` Alan Stern
0 siblings, 0 replies; 4+ messages in thread
From: Alan Stern @ 2004-09-22 20:51 UTC (permalink / raw)
To: Florian Weimer; +Cc: Hisaaki Shibata, USB users list, Kernel development list
On Wed, 22 Sep 2004, Florian Weimer wrote:
> * Hisaaki Shibata:
>
> >> + /* 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;
> >
> >> +
>
> Christoph Biedl discovered that it's likely that a a similar
> workaround is needed in the IEEE 1394 code:
>
> http://sourceforge.net/mailarchive/forum.php?thread_id=5128811&forum_id=5389
That change was not the important one. The important part of the patch
was this:
+ /* 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);
This is what affects the timing problem, by adding a 100-microsecond
delay.
Alan Stern
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-09-22 20:51 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20040709054435.GA31159@torres.ka0.zugschlus.de>
2004-07-10 20:27 ` [Linux-usb-users] Genesys Logic and Kernel 2.4 Hisaaki Shibata
2004-07-11 14:07 ` Alan Stern
2004-09-22 20:15 ` Genesys and IEEE 1394 (was: Re: Genesys Logic and Kernel 2.4) Florian Weimer
2004-09-22 20:51 ` Alan Stern
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox