summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJustin T. Gibbs <gibbs@FreeBSD.org>1998-06-28 02:59:53 +0000
committerJustin T. Gibbs <gibbs@FreeBSD.org>1998-06-28 02:59:53 +0000
commit34f937162f4efba0d0348aae9d04b0a1b284c593 (patch)
treeb81a63ca81e51c81657263cbdd58f7238c4e2fcf /sys
parentc609e0c8df52451c1469a32afe239c58106c620f (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/aic7xxx/aic7xxx.seq12
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/dev/aic7xxx/aic7xxx.seq b/sys/dev/aic7xxx/aic7xxx.seq
index 0c225f96a974..40ca2c1ef6a7 100644
--- a/sys/dev/aic7xxx/aic7xxx.seq
+++ b/sys/dev/aic7xxx/aic7xxx.seq
@@ -37,7 +37,7 @@
*OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
*SUCH DAMAGE.
*
- * $Id: aic7xxx.seq,v 1.46.2.20 1997/08/13 18:56:45 gibbs Exp $
+ * $Id: aic7xxx.seq,v 1.46.2.21 1997/09/27 19:46:55 gibbs Exp $
*
*-M************************************************************************/
@@ -947,7 +947,15 @@ dma_fifoempty:
dma_dmadone:
and DFCNTRL, ~(SCSIEN|SDMAEN|HDMAEN);
dma_halt:
- test DFCNTRL, (SCSIEN|SDMAEN|HDMAEN) jnz dma_halt;
+ /*
+ * Some revisions of the aic7880 have a problem where, if the
+ * data fifo is full, but the PCI input latch is not empty,
+ * HDMAEN cannot be cleared. The fix used here is to attempt
+ * to drain the data fifo until there is space for the input
+ * latch to drain and HDMAEN de-asserts.
+ */
+ mov NONE, DFDAT;
+ test DFCNTRL, HDMAEN jnz dma_halt;
return:
ret;