Bruce Evans wrote:
> 
> There's only one, at least in my version.

There is the PC98 one you removed, and then this one in
atapi_request_immediate():

>                 /* Wait for data i/o phase. */
>                 for (cnt=20000; cnt>0; --cnt)
>                         if (((inb (ata->port + AR_IREASON) & (ARI_CMD | 
> ARI_IN)) |
>                             (inb (ata->port + AR_STATUS) & ARS_DRQ)) != 
> PHASE_CMDOUT)
>                                 break;
> 


> I sent this in for review a year or so ago, but received no reply.
> The main points are that it honours ATA timing in atapi_wait() and
> checks for ARS_BUSY in atapi_wait().  This hopefully makes bogus checks
> like the one in rev.1.22 unnecessary (status 0xff has ARS_BSY set so it
> is invalid).  I haven't tested the PC98 case.  I removed PC98 code that
> seems to only compensate for bugs in atapi_wait().

Looks reasonable to me, but I haven't read the specs in two years.
Still, from the symptoms people described, I would urge anyone with
trouble to test this patch. I realize sos is introducing a new
driver soon, but, at the very least, this would be a -stable
material.

--
Daniel C. Sobral                        (8-DCS)
d...@newsguy.com
d...@freebsd.org

        "To make it absolutely clear: you stand on the wrong end of my
blasters, so you better get lost before I start target practice!"




To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to