summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2003-01-19 20:18:07 +0000
committersos <sos@FreeBSD.org>2003-01-19 20:18:07 +0000
commit9a5444fa22590bd7085bf29842d9be2f417a1a0b (patch)
tree92dacc41eaa62ba09d157864f94fc9376d015999 /sys
parent31d113863ae808125788db5b230b39a0627961df (diff)
downloadFreeBSD-src-9a5444fa22590bd7085bf29842d9be2f417a1a0b.zip
FreeBSD-src-9a5444fa22590bd7085bf29842d9be2f417a1a0b.tar.gz
Small change to the previous commit, zero out the 48BIT flag in ata_command
instead of in dmadone.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/ata/ata-all.c1
-rw-r--r--sys/dev/ata/ata-dma.c19
2 files changed, 10 insertions, 10 deletions
diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c
index 91b8bb9..83515ab 100644
--- a/sys/dev/ata/ata-all.c
+++ b/sys/dev/ata/ata-all.c
@@ -1119,6 +1119,7 @@ ata_command(struct ata_device *atadev, u_int8_t command,
else
ATA_OUTB(atadev->channel->r_io, ATA_DRIVE,
ATA_D_IBM | ATA_D_LBA | atadev->unit | ((lba>>24) &0xf));
+ atadev->channel->flags &= ~ATA_48BIT_ACTIVE;
}
switch (flags & ATA_WAIT_MASK) {
diff --git a/sys/dev/ata/ata-dma.c b/sys/dev/ata/ata-dma.c
index d5a3fc5..c6ab3a5 100644
--- a/sys/dev/ata/ata-dma.c
+++ b/sys/dev/ata/ata-dma.c
@@ -1534,11 +1534,11 @@ ata_dmastart(struct ata_device *atadev, caddr_t data, int32_t count, int dir)
case 0x0d30105a: /* Promise OEM ATA 100 */
case 0x4d30105a: /* Promise Ultra/Fasttrak 100 */
if (ch->flags & ATA_48BIT_ACTIVE) {
- ATA_OUTB(ch->r_bmio, (ch->unit ? 0x09 : 0x11),
- ATA_INB(ch->r_bmio, (ch->unit ? 0x09 : 0x11)) |
- (ch->unit ? 0x08 : 0x02));
- ATA_OUTL(ch->r_bmio, (ch->unit ? 0x1c : 0x20),
- (dir ? 0x05000000 : 0x06000000) | (count >> 1));
+ ATA_OUTB(ch->r_bmio, (ch->unit ? 0x09 : 0x11),
+ ATA_INB(ch->r_bmio, (ch->unit ? 0x09 : 0x11)) |
+ (ch->unit ? 0x08 : 0x02));
+ ATA_OUTL(ch->r_bmio, (ch->unit ? 0x1c : 0x20),
+ (dir ? 0x05000000 : 0x06000000) | (count >> 1));
}
}
@@ -1578,11 +1578,10 @@ ata_dmadone(struct ata_device *atadev)
case 0x0d30105a: /* Promise OEM ATA 100 */
case 0x4d30105a: /* Promise Ultra/Fasttrak 100 */
if (ch->flags & ATA_48BIT_ACTIVE) {
- ATA_OUTB(ch->r_bmio, (ch->unit ? 0x09 : 0x11),
- ATA_INB(ch->r_bmio, (ch->unit ? 0x09 : 0x11)) &
- ~(ch->unit ? 0x08 : 0x02));
- ATA_OUTL(ch->r_bmio, (ch->unit ? 0x1c : 0x20), 0);
- ch->flags &= ~ATA_48BIT_ACTIVE;
+ ATA_OUTB(ch->r_bmio, (ch->unit ? 0x09 : 0x11),
+ ATA_INB(ch->r_bmio, (ch->unit ? 0x09 : 0x11)) &
+ ~(ch->unit ? 0x08 : 0x02));
+ ATA_OUTL(ch->r_bmio, (ch->unit ? 0x1c : 0x20), 0);
}
}
OpenPOWER on IntegriCloud