summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorAlexander Yurchenko <grange@cvs.openbsd.org>2003-07-23 22:10:37 +0000
committerAlexander Yurchenko <grange@cvs.openbsd.org>2003-07-23 22:10:37 +0000
commitc9c75857b3fcb42911dff92cb88f5dfc12d0d8e3 (patch)
tree05786b12c0543fa14d3df7d08123438991544543 /sys/dev
parentc828fcd5606221baa4bcf2cda327d01774e99bb3 (diff)
Enable ATAPI DMA for modern Promise ATA controllers since only old
ones have problems with it. Tested on PDC20262/268/269.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/pci/pciide.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/pci/pciide.c b/sys/dev/pci/pciide.c
index 76b7cef8c4d..193ba069987 100644
--- a/sys/dev/pci/pciide.c
+++ b/sys/dev/pci/pciide.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pciide.c,v 1.134 2003/07/23 22:07:15 grange Exp $ */
+/* $OpenBSD: pciide.c,v 1.135 2003/07/23 22:10:36 grange Exp $ */
/* $NetBSD: pciide.c,v 1.127 2001/08/03 01:31:08 tsutsui Exp $ */
/*
@@ -4591,7 +4591,10 @@ pdc202xx_chip_map(sc, pa)
pciide_mapreg_dma(sc, pa);
sc->sc_wdcdev.cap = WDC_CAPABILITY_DATA16 | WDC_CAPABILITY_DATA32 |
- WDC_CAPABILITY_MODE | WDC_CAPABILITY_NO_ATAPI_DMA;
+ WDC_CAPABILITY_MODE;
+ if (sc->sc_pp->ide_product == PCI_PRODUCT_PROMISE_PDC20246 ||
+ PDC_IS_262(sc))
+ sc->sc_wdcdev.cap |= WDC_CAPABILITY_NO_ATAPI_DMA;
if (sc->sc_dma_ok) {
sc->sc_wdcdev.cap |= WDC_CAPABILITY_DMA | WDC_CAPABILITY_UDMA;
sc->sc_wdcdev.cap |= WDC_CAPABILITY_IRQACK;