Subject: Re: CVS commit: src/sys/dev
To: Takeshi Nakayama <tn@catvmics.ne.jp>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: source-changes
Date: 08/07/2005 12:12:48
On Sun, Aug 07, 2005 at 09:20:50AM +0900, Takeshi Nakayama wrote:
> > Log Message:
> > Add an optionnal controller callback for channel reset. If the callback
> > is set to NULL, use the generic reset code.
> > Use this to work around a bug in some Acer IDE controllers (like the
> > one found in some sparc systems) where a controller disable/enable
> > is required after a reset to avoid data corruption when Ultra-DMA is
> > used. Workaround from opensolaris, thanks to Hiroki Sato for testing.
> 
> OpenSolaris says bit 2 or 3 of register ACER_PCIB_CTRL set to 0,
> then restore it.
> 
> So I guess ACER_PCIB_CTRL_ENCHAN(chp->ch_channel) in line 223 of
> aceride.c should be ~ACER_PCIB_CTRL_ENCHAN(chp->ch_channel).

Ops, you're right.
The thing is, the workaround is still working for the first channel (the
first channel is disabled/enabled when the second channel is reset), so
tests showed it was working.
Thanks !

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