diff options
| author | Søren Schmidt <sos@FreeBSD.org> | 2005-04-03 13:03:53 +0000 |
|---|---|---|
| committer | Søren Schmidt <sos@FreeBSD.org> | 2005-04-03 13:03:53 +0000 |
| commit | fa13a39e3ce9a9aafd78bf8fc6a8f184ac04f89e (patch) | |
| tree | 8f431486c3f1e6a7f78d6f3e1670b3d975405d5a | |
| parent | bcc8f66c8b6b5c385ab393b74e20eaab59087e99 (diff) | |
Notes
| -rw-r--r-- | sys/dev/ata/ata-lowlevel.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/ata/ata-lowlevel.c b/sys/dev/ata/ata-lowlevel.c index 304b56c85686..eccacc72b0a7 100644 --- a/sys/dev/ata/ata-lowlevel.c +++ b/sys/dev/ata/ata-lowlevel.c @@ -690,7 +690,8 @@ ata_generic_reset(struct ata_channel *ch) } } - if ((mask & 0x02) && (stat1 & ATA_S_BUSY)) { + if ((mask & 0x02) && (stat1 & ATA_S_BUSY) && + !((mask & 0x01) && (stat0 & ATA_S_BUSY))) { ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_SLAVE); DELAY(10); err = ATA_IDX_INB(ch, ATA_ERROR); @@ -712,8 +713,8 @@ ata_generic_reset(struct ata_channel *ch) ch->devices |= ATA_ATA_SLAVE; } } - else if ((stat0 & 0x0f) && err == lsb && err == msb) { - stat0 |= ATA_S_BUSY; + else if ((stat1 & 0x0f) && err == lsb && err == msb) { + stat1 |= ATA_S_BUSY; } } } |
