Add support for yet another VIA '686 combination.

This commit is contained in:
Søren Schmidt 2001-08-28 08:59:17 +00:00
parent 40e285969e
commit b4fa8260b8
2 changed files with 7 additions and 5 deletions

View File

@ -408,7 +408,8 @@ ata_dmainit(struct ata_softc *scp, int device,
goto via_82c586;
case 0x05711106: /* VIA 82C571, 82C586, 82C596, 82C686 */
if (ata_find_dev(parent, 0x06861106, 0x40)) { /* 82C686b */
if (ata_find_dev(parent, 0x06861106, 0x40) ||
ata_find_dev(parent, 0x30741106, 0)) { /* 82C686b */
if (udmamode >= 5) {
error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
ATA_UDMA5, ATA_C_F_SETXFER, ATA_WAIT_READY);

View File

@ -129,7 +129,8 @@ ata_pci_match(device_t dev)
return "VIA 82C596 ATA66 controller";
if (ata_find_dev(dev, 0x05961106, 0))
return "VIA 82C596 ATA33 controller";
if (ata_find_dev(dev, 0x06861106, 0x40))
if (ata_find_dev(dev, 0x06861106, 0x40) ||
ata_find_dev(dev, 0x30741106, 0))
return "VIA 82C686 ATA100 controller";
if (ata_find_dev(dev, 0x06861106, 0))
return "VIA 82C686 ATA66 controller";
@ -335,11 +336,11 @@ ata_pci_attach(device_t dev)
pci_write_config(dev, 0x60, DEV_BSIZE, 2);
pci_write_config(dev, 0x68, DEV_BSIZE, 2);
/* prepare for ATA-66 on the 82C686 and rev 0x12 and newer 82C596's */
if (ata_find_dev(dev, 0x06861106, 0) ||
/* prepare for ATA-66 on the 82C686a and rev 0x12 and newer 82C596's */
if ((ata_find_dev(dev, 0x06861106, 0) &&
!ata_find_dev(dev, 0x06861106, 0x40)) ||
ata_find_dev(dev, 0x05961106, 0x12))
pci_write_config(dev, 0x50, 0x030b030b, 4);
break;
case 0x10001042: /* RZ 100? known bad, no DMA */