summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2002-06-19 12:26:20 +0000
committersos <sos@FreeBSD.org>2002-06-19 12:26:20 +0000
commit15dd5289b1d0f6a9a64672aa299b596b48546eeb (patch)
tree4a06fa64dbd3bb4c68c1c7555d3c430ca099709a /sys
parent6b197bb7642db36d95a1eca09200d8c9b0a71dae (diff)
downloadFreeBSD-src-15dd5289b1d0f6a9a64672aa299b596b48546eeb.zip
FreeBSD-src-15dd5289b1d0f6a9a64672aa299b596b48546eeb.tar.gz
Add yet another (older) Promise chip
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/ata/ata-dma.c6
-rw-r--r--sys/dev/ata/ata-pci.c9
2 files changed, 10 insertions, 5 deletions
diff --git a/sys/dev/ata/ata-dma.c b/sys/dev/ata/ata-dma.c
index d713687..b0f9cf8 100644
--- a/sys/dev/ata/ata-dma.c
+++ b/sys/dev/ata/ata-dma.c
@@ -1027,8 +1027,8 @@ ata_dmainit(struct ata_device *atadev, int apiomode, int wdmamode, int udmamode)
}
break;
- case 0x4d30105a: /* Promise Ultra/FastTrak 100 controllers */
case 0x0d30105a: /* Promise OEM ATA100 controllers */
+ case 0x4d30105a: /* Promise Ultra/FastTrak 100 controllers */
if (!ATAPI_DEVICE(atadev) && udmamode >= 5 &&
!(pci_read_config(parent, 0x50, 2) & (channel ? 1<<11 : 1<<10))) {
error = ata_command(atadev, ATA_C_SETFEATURES, 0,
@@ -1044,6 +1044,7 @@ ata_dmainit(struct ata_device *atadev, int apiomode, int wdmamode, int udmamode)
}
/* FALLTHROUGH */
+ case 0x0d38105a: /* Promise FastTrak 66 controllers */
case 0x4d38105a: /* Promise Ultra/FastTrak 66 controllers */
if (!ATAPI_DEVICE(atadev) && udmamode >= 4 &&
!(pci_read_config(parent, 0x50, 2) & (channel ? 1<<11 : 1<<10))) {
@@ -1398,9 +1399,10 @@ promise_timing(struct ata_device *atadev, int devno, int mode)
}
break;
+ case 0x0d38105a: /* Promise Fasttrak 66 */
case 0x4d38105a: /* Promise Ultra/Fasttrak 66 */
- case 0x4d30105a: /* Promise Ultra/Fasttrak 100 */
case 0x0d30105a: /* Promise OEM ATA 100 */
+ case 0x4d30105a: /* Promise Ultra/Fasttrak 100 */
switch (mode) {
default:
case ATA_PIO0: t->pa = 15; t->pb = 31; t->mb = 7; t->mc = 15; break;
diff --git a/sys/dev/ata/ata-pci.c b/sys/dev/ata/ata-pci.c
index 2568135..d56b005 100644
--- a/sys/dev/ata/ata-pci.c
+++ b/sys/dev/ata/ata-pci.c
@@ -243,6 +243,7 @@ ata_pci_match(device_t dev)
case 0x4d33105a:
return "Promise ATA33 controller";
+ case 0x0d38105a:
case 0x4d38105a:
return "Promise ATA66 controller";
@@ -404,9 +405,10 @@ ata_pci_attach(device_t dev)
(pci_read_config(dev, 0x53, 1) & ~0x01) | 0x02, 1);
break;
- case 0x4d38105a: /* Promise 66 & 100 (before TX2) need the clock changed */
+ case 0x0d30105a: /* Promise 66 & 100 (before TX2) need the clock changed */
case 0x4d30105a:
- case 0x0d30105a:
+ case 0x0d38105a:
+ case 0x4d38105a:
ATA_OUTB(controller->bmio, 0x11, ATA_INB(controller->bmio, 0x11)|0x0a);
/* FALLTHROUGH */
@@ -565,9 +567,10 @@ ata_pci_intr(struct ata_channel *ch)
break;
case 0x4d33105a: /* Promise Ultra/Fasttrak 33 */
+ case 0x0d38105a: /* Promise Fasttrak 66 */
case 0x4d38105a: /* Promise Ultra/Fasttrak 66 */
- case 0x4d30105a: /* Promise Ultra/Fasttrak 100 */
case 0x0d30105a: /* Promise OEM ATA100 */
+ case 0x4d30105a: /* Promise Ultra/Fasttrak 100 */
if (!(ATA_INL(ch->r_bmio, (ch->unit ? 0x14 : 0x1c)) &
(ch->unit ? 0x00004000 : 0x00000400)))
return 1;
OpenPOWER on IntegriCloud