Adjust residual counter for wide transfers.

This commit is contained in:
petrov 2002-10-01 07:07:03 +00:00
parent 901d58cdce
commit b5de398a25

View File

@ -1,4 +1,4 @@
/* $NetBSD: lsi64854.c,v 1.21 2002/09/23 04:57:59 chs Exp $ */ /* $NetBSD: lsi64854.c,v 1.22 2002/10/01 07:07:03 petrov Exp $ */
/*- /*-
* Copyright (c) 1998 The NetBSD Foundation, Inc. * Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -37,7 +37,7 @@
*/ */
#include <sys/cdefs.h> #include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: lsi64854.c,v 1.21 2002/09/23 04:57:59 chs Exp $"); __KERNEL_RCSID(0, "$NetBSD: lsi64854.c,v 1.22 2002/10/01 07:07:03 petrov Exp $");
#include <sys/param.h> #include <sys/param.h>
#include <sys/systm.h> #include <sys/systm.h>
@ -438,6 +438,9 @@ lsi64854_scsi_intr(arg)
if (!(csr & D_WRITE) && if (!(csr & D_WRITE) &&
(resid = (NCR_READ_REG(nsc, NCR_FFLAG) & NCRFIFO_FF)) != 0) { (resid = (NCR_READ_REG(nsc, NCR_FFLAG) & NCRFIFO_FF)) != 0) {
DPRINTF(LDB_SCSI, ("dmaintr: empty esp FIFO of %d ", resid)); DPRINTF(LDB_SCSI, ("dmaintr: empty esp FIFO of %d ", resid));
if (nsc->sc_rev == NCR_VARIANT_FAS366 &&
(NCR_READ_REG(nsc, NCR_CFG3) & NCRFASCFG3_EWIDE))
resid <<= 1;
} }
if ((nsc->sc_espstat & NCRSTAT_TC) == 0) { if ((nsc->sc_espstat & NCRSTAT_TC) == 0) {