diff options
author | Søren Schmidt <sos@FreeBSD.org> | 2001-08-28 08:59:17 +0000 |
---|---|---|
committer | Søren Schmidt <sos@FreeBSD.org> | 2001-08-28 08:59:17 +0000 |
commit | b4fa8260b8597dc9b93e5a59a87d7007e845a787 (patch) | |
tree | d350f7e1867a7e0f27898a044a317376000458d0 /sys | |
parent | 40e285969e098b2d4d5950000dc7afdf03de2fd6 (diff) | |
download | src-b4fa8260b8597dc9b93e5a59a87d7007e845a787.tar.gz src-b4fa8260b8597dc9b93e5a59a87d7007e845a787.zip |
Add support for yet another VIA '686 combination.
Notes
Notes:
svn path=/head/; revision=82458
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/ata/ata-dma.c | 3 | ||||
-rw-r--r-- | 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 */ |