diff options
author | sos <sos@FreeBSD.org> | 2002-06-19 12:26:20 +0000 |
---|---|---|
committer | sos <sos@FreeBSD.org> | 2002-06-19 12:26:20 +0000 |
commit | 15dd5289b1d0f6a9a64672aa299b596b48546eeb (patch) | |
tree | 4a06fa64dbd3bb4c68c1c7555d3c430ca099709a | |
parent | 6b197bb7642db36d95a1eca09200d8c9b0a71dae (diff) | |
download | FreeBSD-src-15dd5289b1d0f6a9a64672aa299b596b48546eeb.zip FreeBSD-src-15dd5289b1d0f6a9a64672aa299b596b48546eeb.tar.gz |
Add yet another (older) Promise chip
-rw-r--r-- | sys/dev/ata/ata-dma.c | 6 | ||||
-rw-r--r-- | sys/dev/ata/ata-pci.c | 9 |
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; |