summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2005-08-22 11:38:53 +0000
committersos <sos@FreeBSD.org>2005-08-22 11:38:53 +0000
commit61076facb25aece774d46562afc37b84719d8768 (patch)
tree61ba6f501fe299ba7e7c40e1b5a390c2f009937b /sys
parent7311f9613c2a62dc31cb98f0ee30d1e7979f1bb4 (diff)
downloadFreeBSD-src-61076facb25aece774d46562afc37b84719d8768.zip
FreeBSD-src-61076facb25aece774d46562afc37b84719d8768.tar.gz
Fix problem on Promise "mio" controllers and 48bit mode caused by last commit
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/ata/ata-chipset.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/dev/ata/ata-chipset.c b/sys/dev/ata/ata-chipset.c
index 0749f98..5792917 100644
--- a/sys/dev/ata/ata-chipset.c
+++ b/sys/dev/ata/ata-chipset.c
@@ -2708,10 +2708,12 @@ ata_promise_mio_command(struct ata_request *request)
return ata_generic_command(request);
case ATA_READ_DMA:
+ case ATA_READ_DMA48:
wordp[0] = htole32(0x04 | ((ch->unit + 1) << 16) | (0x00 << 24));
break;
case ATA_WRITE_DMA:
+ case ATA_WRITE_DMA48:
wordp[0] = htole32(0x00 | ((ch->unit + 1) << 16) | (0x00 << 24));
break;
}
@@ -2742,14 +2744,19 @@ ata_promise_sx4_command(struct ata_request *request)
case ATA_ATA_IDENTIFY:
case ATA_READ:
+ case ATA_READ48:
case ATA_READ_MUL:
+ case ATA_READ_MUL48:
case ATA_WRITE:
+ case ATA_WRITE48:
case ATA_WRITE_MUL:
+ case ATA_WRITE_MUL48:
ATA_OUTL(ctlr->r_res2, 0x000c0400 + ((ch->unit + 1) << 2), 0x00000001);
return ata_generic_command(request);
case ATA_SETFEATURES:
case ATA_FLUSHCACHE:
+ case ATA_FLUSHCACHE48:
case ATA_SLEEP:
case ATA_SET_MULTI:
wordp = (u_int32_t *)
@@ -2765,7 +2772,9 @@ ata_promise_sx4_command(struct ata_request *request)
return 0;
case ATA_READ_DMA:
+ case ATA_READ_DMA48:
case ATA_WRITE_DMA:
+ case ATA_WRITE_DMA48:
wordp = (u_int32_t *)
(window + (ch->unit * ATA_PDC_CHN_OFFSET) + ATA_PDC_HSG_OFFSET);
i = idx = 0;
OpenPOWER on IntegriCloud