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