summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorAlexander Yurchenko <grange@cvs.openbsd.org>2003-10-17 08:14:10 +0000
committerAlexander Yurchenko <grange@cvs.openbsd.org>2003-10-17 08:14:10 +0000
commit6dbc421deb21d25ce2935f847921dc56a8399cbb (patch)
treedc0980203c1dd3c84fe617bd090ac4259903d662 /sys/arch
parentdc1014eb963fbe3c6148ff2c44c5843259f66b55 (diff)
Merge an old fix from NetBSD:
- do not stop/unload current DMA operation if an IRQ was not detected by DMA engine unless the force flag was given, fixes DMA problems in shared IRQ setups; - ack interrupt before entering DMA codepath Tested by many. Work by niklas@ but he doesn't want to commit it for some reason.
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/macppc/dev/wdc_obio.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/arch/macppc/dev/wdc_obio.c b/sys/arch/macppc/dev/wdc_obio.c
index 90ab87f9c35..648eb20bbb5 100644
--- a/sys/arch/macppc/dev/wdc_obio.c
+++ b/sys/arch/macppc/dev/wdc_obio.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: wdc_obio.c,v 1.14 2003/07/19 14:45:41 drahn Exp $ */
+/* $OpenBSD: wdc_obio.c,v 1.15 2003/10/17 08:14:09 grange Exp $ */
/* $NetBSD: wdc_obio.c,v 1.15 2001/07/25 20:26:33 bouyer Exp $ */
/*-
@@ -103,7 +103,7 @@ struct cfattach wdc_obio_ca = {
int wdc_obio_dma_init(void *, int, int, void *, size_t, int);
void wdc_obio_dma_start(void *, int, int);
-int wdc_obio_dma_finish(void *, int, int);
+int wdc_obio_dma_finish(void *, int, int, int);
void wdc_obio_adjust_timing(struct channel_softc *);
void wdc_obio_ata4_adjust_timing(struct channel_softc *);
void wdc_obio_ata6_adjust_timing(struct channel_softc *);
@@ -582,9 +582,9 @@ wdc_obio_dma_start(v, channel, drive)
}
int
-wdc_obio_dma_finish(v, channel, drive)
+wdc_obio_dma_finish(v, channel, drive, force)
void *v;
- int channel, drive;
+ int channel, drive, force;
{
struct wdc_obio_softc *sc = v;