diff options
author | Alexander Yurchenko <grange@cvs.openbsd.org> | 2003-10-17 08:14:10 +0000 |
---|---|---|
committer | Alexander Yurchenko <grange@cvs.openbsd.org> | 2003-10-17 08:14:10 +0000 |
commit | 6dbc421deb21d25ce2935f847921dc56a8399cbb (patch) | |
tree | dc0980203c1dd3c84fe617bd090ac4259903d662 /sys/arch | |
parent | dc1014eb963fbe3c6148ff2c44c5843259f66b55 (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.c | 8 |
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; |