Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-1-4]: src/sys/dev/pci Back out pullup of rev. 1.87. It seems a b...
details: https://anonhg.NetBSD.org/src/rev/2fca40a0c837
branches: netbsd-1-4
changeset: 469685:2fca40a0c837
user: cgd <cgd%NetBSD.org@localhost>
date: Mon Nov 08 07:56:52 1999 +0000
description:
Back out pullup of rev. 1.87. It seems a bit broken, and the known
evil is better than the unknown evil.
diffstat:
sys/dev/pci/ncr.c | 59 +++++++++---------------------------------------------
1 files changed, 10 insertions(+), 49 deletions(-)
diffs (114 lines):
diff -r 7803de6c7617 -r 2fca40a0c837 sys/dev/pci/ncr.c
--- a/sys/dev/pci/ncr.c Mon Nov 08 07:52:21 1999 +0000
+++ b/sys/dev/pci/ncr.c Mon Nov 08 07:56:52 1999 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ncr.c,v 1.80.2.4 1999/10/18 05:43:11 cgd Exp $ */
+/* $NetBSD: ncr.c,v 1.80.2.5 1999/11/08 07:56:52 cgd Exp $ */
/**************************************************************************
**
@@ -1356,8 +1356,8 @@
ncrcmd msg_bad [ 6];
ncrcmd complete [ 13];
ncrcmd cleanup [ 12];
- ncrcmd cleanup0 [ 9];
- ncrcmd signal [ 12];
+ ncrcmd cleanup0 [ 11];
+ ncrcmd signal [ 10];
ncrcmd save_dp [ 5];
ncrcmd restore_dp [ 5];
ncrcmd disconnect [ 12];
@@ -1518,7 +1518,7 @@
#if 0
static char ident[] =
- "\n$NetBSD: ncr.c,v 1.80.2.4 1999/10/18 05:43:11 cgd Exp $\n";
+ "\n$NetBSD: ncr.c,v 1.80.2.5 1999/11/08 07:56:52 cgd Exp $\n";
#endif
static const u_long ncr_version = NCR_VERSION * 11
@@ -2287,21 +2287,21 @@
0,
SCR_JUMP ^ IFTRUE (DATA (S_CHECK_COND)),
PADDRH(getcc2),
+ /*
+ ** And make the DSA register invalid.
+ */
+/*>>>*/ SCR_LOAD_REG (dsa, 0xff), /* invalid */
+ 0,
}/*-------------------------< SIGNAL >----------------------*/,{
/*
** if status = queue full,
** reinsert in startqueue and stall queue.
*/
-/*>>>*/ SCR_FROM_REG (SS_REG),
+ SCR_FROM_REG (SS_REG),
0,
SCR_INT ^ IFTRUE (DATA (S_QUEUE_FULL)),
SIR_STALL_QUEUE,
/*
- ** And make the DSA register invalid.
- */
- SCR_LOAD_REG (dsa, 0xff), /* invalid */
- 0,
- /*
** if job completed ...
*/
SCR_FROM_REG (HS_REG),
@@ -5836,19 +5836,8 @@
tmp = lp->actlink;
if (tmp < reqtags) tmp = reqtags;
lp->reqccbs = tmp;
-
-#if 0
- /*
- * XXX unless we do this, we'll end up wasting ccbs (since
- * XXX they are never freed back to the system), but wasting
- * XXX CCBs is better than keeping reqlink high, because that
- * XXX allows high numbers of tags to continue to be used...
- * XXX which in turn prevents 'queue full' problems from ever
- * XXX being solved.
- */
if (lp->reqlink < lp->reqccbs)
lp->reqlink = lp->reqccbs;
-#endif
}
/*----------------------------------------------------
@@ -7247,36 +7236,8 @@
/*
** Try to disable tagged transfers.
- **
- ** XXX The right thing to do here is to back off
- ** XXX gracefully, i.e. issue one fewer command
- ** XXX at a time, since this command should be
- ** XXX triggered by the first command beyond what
- ** XXX the device can handle.
- ** XXX
- ** XXX However, that doesn't work right now, because
- ** XXX of a combination of two bugs: some (Quantum)
- ** XXX drives seem to interpret the tags (tags are
- ** XXX supposed to be opaque) and reject tags over
- ** XXX a certain number, and this driver doesn't free
- ** XXX 'extra' CCBs which will never be used for
- ** XXX transfters (based on the fact that there are
- ** XXX more CCBs than tags allowed).
- ** XXX
- ** XXX Therefore, though it costs performance on
- ** XXX some drives that could do better, for hardware
- ** XXX compatibility we just disable tagged queueing
- ** XXX when we see a QUEUE FULL message.
- ** XXX
- ** XXX This driver should be shot from a cannon.
*/
-#if 0 /* XXX this, or something like it, is better, but doesn't work */
- assert(cp->tag);
- if (cp->tag) /* XXX should be a better way than cp->tag - 1 */
- ncr_setmaxtags (&np->target[target], cp->tag - 1);
-#else
ncr_setmaxtags (&np->target[target], 0);
-#endif
/*
** @QUEUE@
Home |
Main Index |
Thread Index |
Old Index