From owner-cvs-sys Tue Feb 11 09:10:44 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id JAA05016 for cvs-sys-outgoing; Tue, 11 Feb 1997 09:10:44 -0800 (PST) Received: (from gibbs@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id JAA05009; Tue, 11 Feb 1997 09:10:40 -0800 (PST) Date: Tue, 11 Feb 1997 09:10:40 -0800 (PST) From: "Justin T. Gibbs" Message-Id: <199702111710.JAA05009@freefall.freebsd.org> To: CVS-committers, cvs-all, cvs-sys Subject: cvs commit: src/sys/dev/aic7xxx aic7xxx.seq src/sys/i386/scsi aic7xxx.c aic7xxx.h Sender: owner-cvs-sys@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk gibbs 97/02/11 09:10:39 Modified: sys/dev/aic7xxx aic7xxx.seq Log: Clear the DFCNTRL register after every busfree. When setting the HCNT registers, do so in ascending order. When performing tagged queueing in non-paging mode, also check the disconnected bit in the SCB as extra sanity during a reconection. Make the labels in the DMA routine more sane. When doing a DMA, if we see the DMADONE condition come true, we can simply turn of the DMA enable bits in DFCNTRL without testing the FIFO state as HDONE is true when DMADONE is true and this emplies the FIFO is empty. These changes clear up the data overrun error messages and seem to prevent the "timed out in data-in phase" problems. Revision Changes Path 1.59 +26 -23 src/sys/dev/aic7xxx/aic7xxx.seq Modified: sys/i386/scsi aic7xxx.c aic7xxx.h Log: Fix a bug in the reporting of residuals. The code was relying on the SG_COUNT filed in the hardware SCB not changing during the course of a transaction. Since the sequencer now DMAs the hardware SCB back up to the host when it detects a residual, this is no longer the case. I added a field to the "software" scb to mirror this information and it is now used for doing the residual calculation. Revision Changes Path 1.97 +21 -5 src/sys/i386/scsi/aic7xxx.c 1.37 +1 -0 src/sys/i386/scsi/aic7xxx.h