aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorJustin T. Gibbs <gibbs@FreeBSD.org>1998-06-28 02:58:57 +0000
committerJustin T. Gibbs <gibbs@FreeBSD.org>1998-06-28 02:58:57 +0000
commitb66655cf37ea5628e388d742a51d662e572aa64f (patch)
tree62e422231fd8eb7ca3029e8cc14114a2010f936b /sys/dev
parent14c35d6ca08e2f400104f47999ee57878f0ee773 (diff)
Notes
Diffstat (limited to 'sys/dev')
-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 d7338a539e1d..f3fad03aa810 100644
--- a/sys/dev/aic7xxx/aic7xxx.seq
+++ b/sys/dev/aic7xxx/aic7xxx.seq
@@ -35,7 +35,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: aic7xxx.seq,v 1.75 1997/08/13 17:02:28 gibbs Exp $
+ * $Id: aic7xxx.seq,v 1.76 1997/09/27 19:37:27 gibbs Exp $
*/
#include <dev/aic7xxx/aic7xxx.reg>
@@ -944,7 +944,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;