summaryrefslogtreecommitdiff
path: root/sys/dev/atapiscsi
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/dev/atapiscsi
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/dev/atapiscsi')
-rw-r--r--sys/dev/atapiscsi/atapiscsi.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/sys/dev/atapiscsi/atapiscsi.c b/sys/dev/atapiscsi/atapiscsi.c
index ae8ab9f5beb..78e7f3417c4 100644
--- a/sys/dev/atapiscsi/atapiscsi.c
+++ b/sys/dev/atapiscsi/atapiscsi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: atapiscsi.c,v 1.65 2003/10/16 11:30:00 grange Exp $ */
+/* $OpenBSD: atapiscsi.c,v 1.66 2003/10/17 08:14:09 grange Exp $ */
/*
* This code is derived from code with the copyright below.
@@ -1101,11 +1101,6 @@ wdc_atapi_intr_complete(chp, xfer, timeout, ret)
int retry;
if (timeout) {
- chp->wdc->dma_status =
- (*chp->wdc->dma_finish)
- (chp->wdc->dma_arg, chp->channel,
- xfer->drive);
-
sc_xfer->error = XS_TIMEOUT;
ata_dmaerr(drvp);
@@ -1127,7 +1122,7 @@ wdc_atapi_intr_complete(chp, xfer, timeout, ret)
chp->wdc->dma_status =
(*chp->wdc->dma_finish)
(chp->wdc->dma_arg, chp->channel,
- xfer->drive);
+ xfer->drive, 1);
if (chp->wdc->dma_status & WDC_DMAST_UNDER)
xfer->c_bcount = 1;