summaryrefslogtreecommitdiffstats
path: root/sys/pci
diff options
context:
space:
mode:
authorse <se@FreeBSD.org>1996-08-05 19:39:51 +0000
committerse <se@FreeBSD.org>1996-08-05 19:39:51 +0000
commit6ebc9995b2c723169639a7a38607eaa8d134e3ec (patch)
tree03a6fbb07dcb55d14e7101e2de604d7ac3d29c37 /sys/pci
parentbca99d79d3eb1b8ae4861f4b2905f95d77ea732d (diff)
downloadFreeBSD-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.c19
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);
OpenPOWER on IntegriCloud