Add yet another (older) Promise chip

This commit is contained in:
Søren Schmidt 2002-06-19 12:26:20 +00:00
parent 029c8ee4fa
commit 098d258d05
2 changed files with 10 additions and 5 deletions

View File

@ -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;

View File

@ -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;