From 6dbc421deb21d25ce2935f847921dc56a8399cbb Mon Sep 17 00:00:00 2001 From: Alexander Yurchenko Date: Fri, 17 Oct 2003 08:14:10 +0000 Subject: 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. --- sys/arch/macppc/dev/wdc_obio.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'sys/arch') 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; -- cgit v1.2.3