summaryrefslogtreecommitdiff
path: root/sys/dev/pci
diff options
context:
space:
mode:
authorAlexander Yurchenko <grange@cvs.openbsd.org>2003-09-29 13:39:17 +0000
committerAlexander Yurchenko <grange@cvs.openbsd.org>2003-09-29 13:39:17 +0000
commitbabce86fc29ca8fbb262463524c72e50a36739e9 (patch)
tree33398142321865d4a66aeac11bc6153189f258bf /sys/dev/pci
parente59f662343030bb85446098ac98bbcd916fdd1f3 (diff)
Experimental support for serverworks csb6 third channel inspired by
freebsd ata driver. Close PR 3485.
Diffstat (limited to 'sys/dev/pci')
-rw-r--r--sys/dev/pci/pciide.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/dev/pci/pciide.c b/sys/dev/pci/pciide.c
index 3159209bfc0..3f2f6c77a50 100644
--- a/sys/dev/pci/pciide.c
+++ b/sys/dev/pci/pciide.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pciide.c,v 1.139 2003/09/28 21:01:43 grange Exp $ */
+/* $OpenBSD: pciide.c,v 1.140 2003/09/29 13:39:16 grange Exp $ */
/* $NetBSD: pciide.c,v 1.127 2001/08/03 01:31:08 tsutsui Exp $ */
/*
@@ -590,6 +590,10 @@ const struct pciide_product_desc pciide_serverworks_products[] = {
0,
serverworks_chip_map,
},
+ { PCI_PRODUCT_RCC_CSB6_IDE2,
+ 0,
+ serverworks_chip_map,
+ }
};
const struct pciide_product_desc pciide_nvidia_products[] = {
@@ -5371,11 +5375,15 @@ serverworks_chip_map(sc, pa)
case PCI_PRODUCT_RCC_CSB6_IDE:
sc->sc_wdcdev.UDMA_cap = 5;
break;
+ case PCI_PRODUCT_RCC_CSB6_IDE2:
+ sc->sc_wdcdev.UDMA_cap = 4;
+ break;
}
sc->sc_wdcdev.set_modes = serverworks_setup_channel;
sc->sc_wdcdev.channels = sc->wdc_chanarray;
- sc->sc_wdcdev.nchannels = 2;
+ sc->sc_wdcdev.nchannels =
+ (sc->sc_pp->ide_product == PCI_PRODUCT_RCC_CSB6_IDE2 ? 1 : 2);
for (channel = 0; channel < sc->sc_wdcdev.nchannels; channel++) {
cp = &sc->pciide_channels[channel];