From b4fa8260b8597dc9b93e5a59a87d7007e845a787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Schmidt?= Date: Tue, 28 Aug 2001 08:59:17 +0000 Subject: [PATCH] Add support for yet another VIA '686 combination. --- sys/dev/ata/ata-dma.c | 3 ++- sys/dev/ata/ata-pci.c | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/sys/dev/ata/ata-dma.c b/sys/dev/ata/ata-dma.c index 22302911f781..d4dc3a57e2d7 100644 --- a/sys/dev/ata/ata-dma.c +++ b/sys/dev/ata/ata-dma.c @@ -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); diff --git a/sys/dev/ata/ata-pci.c b/sys/dev/ata/ata-pci.c index 3a743bd39cd6..0697b9771265 100644 --- a/sys/dev/ata/ata-pci.c +++ b/sys/dev/ata/ata-pci.c @@ -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 */