summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJustin T. Gibbs <gibbs@FreeBSD.org>1997-04-24 16:53:17 +0000
committerJustin T. Gibbs <gibbs@FreeBSD.org>1997-04-24 16:53:17 +0000
commitaba290e1d70c8c0955fcb8bc17ad45ad64a1d775 (patch)
treeb41fdda98a9dc9b9cec5208b8eac5d97ad88330e /sys
parent3d76eec03dbdab0959a183b50ddf3cefc56855a5 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/aic7xxx/aic7xxx.reg4
-rw-r--r--sys/dev/aic7xxx/aic7xxx.seq7
2 files changed, 8 insertions, 3 deletions
diff --git a/sys/dev/aic7xxx/aic7xxx.reg b/sys/dev/aic7xxx/aic7xxx.reg
index ac45ec2f1dae..593e20125415 100644
--- a/sys/dev/aic7xxx/aic7xxx.reg
+++ b/sys/dev/aic7xxx/aic7xxx.reg
@@ -28,7 +28,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: aic7xxx.reg,v 1.1 1997/03/16 07:08:11 gibbs Exp $
+ * $Id: aic7xxx.reg,v 1.1.2.1 1997/04/14 02:31:23 gibbs Exp $
*/
/*
@@ -764,7 +764,7 @@ scb {
bit MK_MESSAGE 0x80
bit DISCENB 0x40
bit TAG_ENB 0x20
- bit SPLIT_SG 0x10
+ bit MUST_DMAUP_SCB 0x10
bit ABORT_SCB 0x08
bit DISCONNECTED 0x04
mask SCB_TAG_TYPE 0x03
diff --git a/sys/dev/aic7xxx/aic7xxx.seq b/sys/dev/aic7xxx/aic7xxx.seq
index 3c6945bfd11a..30bd340b482a 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.17 1997/04/14 02:31:28 gibbs Exp $
+ * $Id: aic7xxx.seq,v 1.46.2.18 1997/04/18 16:38:19 gibbs Exp $
*
*-M************************************************************************/
@@ -980,6 +980,8 @@ findSCB_loop:
mov ALLZEROS call get_free_or_disc_scb;
mvi DMAPARAMS, HDMAEN|DIRECTION|FIFORESET;
mov ARG_1 call dma_scb;
+ test SCB_RESID_SGCNT, 0xff jz . + 2;
+ or SCB_CONTROL, MUST_DMAUP_SCB;
test SCB_CONTROL, ABORT_SCB jz return;
find_error:
mvi SINDEX, SCB_LIST_NULL ret;
@@ -1117,6 +1119,9 @@ dequeue_disc_scb:
* and we have to send this SCB back up to the kernel so that the
* saved data pointers and residual information isn't lost.
*/
+ test SCB_CONTROL, MUST_DMAUP_SCB jz . + 3;
+ and SCB_CONTROL, ~MUST_DMAUP_SCB;
+ jmp dma_up_scb;
test SCB_RESID_SGCNT,0xff jnz dma_up_scb;
cmp SCB_LINKED_NEXT, SCB_LIST_NULL je unlink_disc_scb;
dma_up_scb: