diff options
author | se <se@FreeBSD.org> | 1996-08-05 19:39:51 +0000 |
---|---|---|
committer | se <se@FreeBSD.org> | 1996-08-05 19:39:51 +0000 |
commit | 6ebc9995b2c723169639a7a38607eaa8d134e3ec (patch) | |
tree | 03a6fbb07dcb55d14e7101e2de604d7ac3d29c37 /sys/pci | |
parent | bca99d79d3eb1b8ae4861f4b2905f95d77ea732d (diff) | |
download | FreeBSD-src-6ebc9995b2c723169639a7a38607eaa8d134e3ec.zip FreeBSD-src-6ebc9995b2c723169639a7a38607eaa8d134e3ec.tar.gz |
Send out a period of "0" if negotiating asynchronous transfers (offset = 0).
A value of "255" used to be sent, and though it should not matter, there
appear to be a few devices that want both values to be zero for asynch.
Diffstat (limited to 'sys/pci')
-rw-r--r-- | sys/pci/ncr.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/sys/pci/ncr.c b/sys/pci/ncr.c index 528584b..29dd78f 100644 --- a/sys/pci/ncr.c +++ b/sys/pci/ncr.c @@ -1,6 +1,6 @@ /************************************************************************** ** -** $Id: ncr.c,v 1.72 1996/05/03 21:01:38 phk Exp $ +** $Id: ncr.c,v 1.73 1996/06/12 05:10:44 gpalmer Exp $ ** ** Device driver for the NCR 53C810 PCI-SCSI-Controller. ** @@ -1254,7 +1254,7 @@ static void ncr_attach (pcici_t tag, int unit); static char ident[] = - "\n$Id: ncr.c,v 1.72 1996/05/03 21:01:38 phk Exp $\n"; + "\n$Id: ncr.c,v 1.73 1996/06/12 05:10:44 gpalmer Exp $\n"; static const u_long ncr_version = NCR_VERSION * 11 + (u_long) sizeof (struct ncb) * 7 @@ -5773,9 +5773,18 @@ void ncr_int_sir (ncb_p np) /* ** Check against controller limits. */ - fak = (4ul * per - 1) / np->ns_sync - 3; - if (ofs && (fak>7)) {chg = 1; ofs = 0;} - if (!ofs) fak=7; + if (ofs != 0) { + fak = (4ul * per - 1) / np->ns_sync - 3; + if (fak>7) { + chg = 1; + ofs = 0; + } + } + if (ofs == 0) { + fak = 7; + per = 0; + tp->minsync = 0; + } if (DEBUG_FLAGS & DEBUG_NEGO) { PRINT_ADDR(cp->xfer); |