Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/ic Don't disable TARF_TAG when the 1010 workaround i...



details:   https://anonhg.NetBSD.org/src/rev/080412f71b31
branches:  trunk
changeset: 526533:080412f71b31
user:      bouyer <bouyer%NetBSD.org@localhost>
date:      Sun May 05 15:23:22 2002 +0000

description:
Don't disable TARF_TAG when the 1010 workaround is active, otherwise
the target won't do tagged queuing again after e.g. a bus reset.
Just report to scsipi that we can't do tagged queuing.

diffstat:

 sys/dev/ic/siop_common.c |  17 +++++++++--------
 1 files changed, 9 insertions(+), 8 deletions(-)

diffs (44 lines):

diff -r db7404903c8c -r 080412f71b31 sys/dev/ic/siop_common.c
--- a/sys/dev/ic/siop_common.c  Sun May 05 15:16:30 2002 +0000
+++ b/sys/dev/ic/siop_common.c  Sun May 05 15:23:22 2002 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: siop_common.c,v 1.27 2002/05/04 18:43:22 bouyer Exp $  */
+/*     $NetBSD: siop_common.c,v 1.28 2002/05/05 15:23:22 bouyer Exp $  */
 
 /*
  * Copyright (c) 2000, 2002 Manuel Bouyer.
@@ -33,7 +33,7 @@
 /* SYM53c7/8xx PCI-SCSI I/O Processors driver */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: siop_common.c,v 1.27 2002/05/04 18:43:22 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: siop_common.c,v 1.28 2002/05/05 15:23:22 bouyer Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -889,10 +889,6 @@
        xm.xm_period = 0;
        xm.xm_offset = 0;
 
-       /* 1010 workaround: can't do disconnect if not wide, so can't do tag */
-       if ((sc->features & SF_CHIP_GEBUG) &&
-           (sc->targets[target]->flags & TARF_ISWIDE) == 0)
-               siop_target->flags &= ~TARF_TAG;
 
        if (siop_target->flags & TARF_ISWIDE)
                xm.xm_mode |= PERIPH_CAP_WIDE16;
@@ -901,7 +897,12 @@
                xm.xm_offset = siop_target->offset;
                xm.xm_mode |= PERIPH_CAP_SYNC;
        }
-       if (siop_target->flags & TARF_TAG)
-               xm.xm_mode |= PERIPH_CAP_TQING;
+       if (siop_target->flags & TARF_TAG) {
+       /* 1010 workaround: can't do disconnect if not wide, so can't do tag */
+               if ((sc->features & SF_CHIP_GEBUG) == 0 ||
+                   (sc->targets[target]->flags & TARF_ISWIDE))
+                       xm.xm_mode |= PERIPH_CAP_TQING;
+       }
+
        scsipi_async_event(&sc->sc_chan, ASYNC_EVENT_XFER_MODE, &xm);
 }



Home | Main Index | Thread Index | Old Index