Subject: Re: CVS commit: src/sys/dev/ic
To: Charles M. Hannum <abuse@spamalicious.com>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: source-changes
Date: 10/08/2003 21:04:40
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.

If it was usable I would have used it in wdcintr() to check if the
interrupt was for us, in case of shared interrupts.

> 
> 2) A controller+drive older than that will read all-1s.  Therefore it will 
> fail the 0 test and continue polling.  This is completely harmless.  Because 
> the drive also is too old to support the slave register shadowing, this test 
> would not work for it anyway even if it read the main status register.
> 
> It's been 17 years since IDE was introduced.  There is no excuse for polling 
> any more.

Well, there are still operations (reset) that require polling.

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