On Tue, Jul 06, 2004 at 07:42:16PM +0200, Michael Stilmant wrote:
> On Sun, 2004-07-04 at 17:59, Alan Stern wrote:
> > > Anyway I've just send an email to genesys support. 
> > 
> > Let us know if you get any reply from them.
> 
> Hello all,
> 
> Bellow the answer directly from genesys.

It's nice of them to finally give some sort of answer to this issue.

> I'm not an hard core USB device hacker, so can you tell me if this seem
> to be a good reasonable solution, or if this is a 'turn around' patch ? 
> I've not tested yet, 

This definately seems to be related to some Genesys chip bugs.

> -----Forwarded Message----- 
> From: Jason Yu
> To: mstilmant
> Cc: Peter Wei, Aimee Hsu
> Subject: RE: GL811E and Linux
> Date: Tue, 06 Jul 2004 10:42:06 +0800
> 
> Dear Sir:
>       Please modify some file of linux and recompiler.
>       It's relation linux kernel. 
> Linux Kernel 2.4.20
>    drivers/scsi/sd.c
>       change sd_max_sectors <= 64, ( sd_max_sectors[i] = 64 ).
>       to solve 811 DMA can't over 64K issues. 

We've got something similar in place already.  We determined this
experimentally, but now that we have an 'official' value from Genesys, we
should use that value.

It's nice of Genesys to _finally_ acknowledge a chip bug that we've known
about for months (years?) now.  Why are some vendors so difficult?  *sigh*

>    drivers/usb/storage/transport.c
>       In function "usb_stor_Bulk_transport()"
>       Add 100us delay time between scsi command and data stage
>       to solve 811 two stages timing issues. 

This puts the delay in a slightloy different place than the experimental
patch which is currently circulating.

Alan, I'm travelling this week (I'm actually in a Starbucks in Kansas City
right now), but can you circulate a patch with these two changes?  I
presume you agree that we can just change the max sectors in the same place
we do now (instead of the recommended sd.c edit)?

> Linux Kernel 2.6.4
>    inlcude/linux/blkdev.h
>       change MAX_PHYS_SEGMENTS from 128 to 64
>       change MAX_HW_SEGMENTS from 128 to 64
>       change MAX_SEGMENT_SIZE from 65526 to 32768
>       to solve 811 DMA can't over 64K issues

This is interesting... obviously, changing these values globally for all
devices isn't an option for us.  For testing, it's probably fine, but we'll
need to find a way to runtime-adjust these parameters only for the device
in question.

Matt

-- 
Matthew Dharm                              Home: [EMAIL PROTECTED] 
Maintainer, Linux USB Mass Storage Driver

What, are you one of those Microsoft-bashing Linux freaks?
                                        -- Customer to Greg
User Friendly, 2/10/1999

Attachment: pgpDk3p2L8I0S.pgp
Description: PGP signature

Reply via email to