Subject: Re: problems with 1.6ZE
To: David Laight <david@l8s.co.uk>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: current-users
Date: 11/03/2003 23:02:54
On Sun, Nov 02, 2003 at 11:04:00PM +0000, David Laight wrote:
> On Sun, Nov 02, 2003 at 11:21:48PM +0100, Manuel Bouyer wrote:
> > On Sun, Nov 02, 2003 at 06:39:26PM +0000, David Laight wrote:
> > > > > Could you try to force it to 1-sector PIO transfer ?
> > > > > Just force wd->sc_multi to 1 in wd.c:wdattach() line 326
> > > > 
> > > > This fixes the problem.  So I guess the Samsung cards are lying when they
> > > > claim to support 4-sector transfers?  Or is there a bug in the NetBSD driver
> > > > or something?
> > > 
> > > (not having looked at the code)
> > > 
> > > What does 'wd->sc_multi' control?
> > 
> > use of WDCC_READ/WRITE or WDCC_READMULTI/WRITEMULTI
> 
> Mmmm...  code in ata_wdc.c looks borked?
> 
> I can't see the path where WDCC_READ is given a sector count > 1.
> That is a read of many sectors with a 512byte data burst for each sector.

Yes, for WDCC_READ/WRITE, we issue a command per sector (it's also used for
error recovery).
It's been this way since NetBSD 1.1 at last.

It would probably be easy to fix this, while keeping the current behavior of
one command/sector for recovery.

-- 
Manuel Bouyer <bouyer@antioche.eu.org>
     NetBSD: 24 ans d'experience feront toujours la difference
--