Subject: Re: CVS commit: src/sys/dev/ic
To: Ben Harris <bjh21@netbsd.org>
From: Charles M. Hannum <abuse@spamalicious.com>
List: tech-kern
Date: 10/09/2003 17:41:55
On Thursday 09 October 2003 03:20 pm, Ben Harris wrote:
> In article <20031008190440.GA1102@antioche.eu.org> you write:
> >On Wed, Oct 08, 2003 at 06:41:37PM +0000, Charles M. Hannum wrote:
> >> Yes, we can.  There are really two cases:
> >>
> >> 1) Any IDE, EIDE or ATA controller+drive supports the alternate status
> >> register.  This is the case where we expect to read a "0" if there is no
> >> slave.  No problem.
> >
> >There is a controller (I don't remember if it's the amiga or atari's
> > mainboard controller) that don't provide access to the alternate status
> > controller. Someone familiar with the affected platform can probably
> > confirm it.
>
> One of the IDE podules I've got (hcide(4), for acorn26 and acorn32) seemed
> to decode all the alternate status registers for its three channels at the
> same address, or something useless like that.  It's possible I
> mis-reverse-engineered it, though.
>
> >> It's been 17 years since IDE was introduced.  There is no excuse for
> >> polling any more.
>
> For added fun, the card I'm talking about also doesn't generate interrupts.

This case is/was already completely handled by the polling case in 
__wdccommand_intr().  I made it check for "not BSY but no DRQ" a few weeks 
ago.  I believe that in the polling case the check in __wdccommand_start() is 
strictly redundant.  So, your controller would be handled fine without any 
additional hackery.