summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2002-09-18 09:39:37 +0000
committersos <sos@FreeBSD.org>2002-09-18 09:39:37 +0000
commit43ba8ad6aae703497304d0d93fa5e457cad11663 (patch)
tree637e282ed9c0fbed87455f70e3e615934d9619c4
parent9746ec766a71ee0841e67fe78bab69c74710adc4 (diff)
downloadFreeBSD-src-43ba8ad6aae703497304d0d93fa5e457cad11663.zip
FreeBSD-src-43ba8ad6aae703497304d0d93fa5e457cad11663.tar.gz
Add support for the VIA 8235.
Submitted by: Jason Dambrosio <jason@wiz.cx>
-rw-r--r--sys/dev/ata/ata-dma.c5
-rw-r--r--sys/dev/ata/ata-pci.c2
2 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/ata/ata-dma.c b/sys/dev/ata/ata-dma.c
index 3d3a073..ffd28e9 100644
--- a/sys/dev/ata/ata-dma.c
+++ b/sys/dev/ata/ata-dma.c
@@ -507,7 +507,7 @@ ata_dmainit(struct ata_device *atadev, int apiomode, int wdmamode, int udmamode)
case 0x74411022: /* AMD 768 */
case 0x74111022: /* AMD 766 */
case 0x74091022: /* AMD 756 */
- case 0x05711106: /* VIA 82C571, 82C586, 82C596, 82C686 , 8231, 8233 */
+ case 0x05711106: /* VIA 82C571, 82C586, 82C596, 82C686, 8231,8233,8235 */
{
int via_modes[5][7] = {
{ 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00 }, /* VIA ATA33 */
@@ -518,7 +518,8 @@ ata_dmainit(struct ata_device *atadev, int apiomode, int wdmamode, int udmamode)
int *reg_val = NULL;
char *chip = "VIA";
- if (ata_find_dev(parent, 0x31471106, 0)) { /* 8233a */
+ if (ata_find_dev(parent, 0x31471106, 0) || /* 8233a */
+ ata_find_dev(parent, 0x31771106, 0)) { /* 8235 */
udmamode = imin(udmamode, 6);
reg_val = via_modes[3];
}
diff --git a/sys/dev/ata/ata-pci.c b/sys/dev/ata/ata-pci.c
index 0dc8bf5..059a4bf 100644
--- a/sys/dev/ata/ata-pci.c
+++ b/sys/dev/ata/ata-pci.c
@@ -180,6 +180,8 @@ ata_pci_match(device_t dev)
return "VIA 8233 ATA100 controller";
if (ata_find_dev(dev, 0x31471106, 0))
return "VIA 8233 ATA133 controller";
+ if (ata_find_dev(dev, 0x31771106, 0))
+ return "VIA 8235 ATA133 controller";
return "VIA Apollo ATA controller";
case 0x55131039:
OpenPOWER on IntegriCloud