mirror of
https://github.com/freebsd/freebsd-src
synced 2024-09-24 02:34:59 +00:00
Fix support for the Hitachi CDR7730 IDE cdrom drive.
Patch from pr1730. Tested on our IDE cdrom drive farm...
This commit is contained in:
parent
8c7b1f58de
commit
4aab40db6c
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=26070
|
@ -612,7 +612,7 @@ int atapi_wait_cmd (struct atapi *ata, struct atapicmd *ac)
|
|||
ireason = inb (ata->port + AR_IREASON);
|
||||
ac->result.status = inb (ata->port + AR_STATUS);
|
||||
phase = (ireason & (ARI_CMD | ARI_IN)) |
|
||||
(ac->result.status & ARS_DRQ);
|
||||
(ac->result.status & (ARS_DRQ | ARS_BSY));
|
||||
if (phase == PHASE_CMDOUT)
|
||||
break;
|
||||
DELAY (10);
|
||||
|
@ -929,9 +929,11 @@ struct atapires atapi_request_immediate (struct atapi *ata, int unit,
|
|||
/* Do all needed i/o. */
|
||||
while (atapi_io (ata, ac))
|
||||
/* Wait for DRQ deassert. */
|
||||
for (cnt=2000; cnt>0; --cnt)
|
||||
for (cnt=2000; cnt>0; --cnt) {
|
||||
if (! (inb (ata->port + AR_STATUS) & ARS_DRQ))
|
||||
break;
|
||||
DELAY(10);
|
||||
}
|
||||
}
|
||||
return (ac->result);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue