Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/ic Handle dual bus cases for immediate notify and en...



details:   https://anonhg.NetBSD.org/src/rev/00856314046b
branches:  trunk
changeset: 482669:00856314046b
user:      mjacob <mjacob%NetBSD.org@localhost>
date:      Sat Feb 19 01:50:57 2000 +0000

description:
Handle dual bus cases for immediate notify and enable lun commands.

diffstat:

 sys/dev/ic/isp_target.c |  12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diffs (42 lines):

diff -r 63000f6ee687 -r 00856314046b sys/dev/ic/isp_target.c
--- a/sys/dev/ic/isp_target.c   Sat Feb 19 01:50:25 2000 +0000
+++ b/sys/dev/ic/isp_target.c   Sat Feb 19 01:50:57 2000 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: isp_target.c,v 1.2 2000/02/12 02:24:20 mjacob Exp $ */
+/* $NetBSD: isp_target.c,v 1.3 2000/02/19 01:50:57 mjacob Exp $ */
 /*
  * Machine and OS Independent Target Mode Code for the Qlogic SCSI/FC adapters.
  *
@@ -167,14 +167,18 @@
                 * increment the firmware's resource count for them
                 * (we set this initially in the Enable Lun entry).
                 */
+               bus = 0;
                if (IS_FC(isp)) {
                        status = inot_fcp->in_status;
                        seqid = inot_fcp->in_seqid;
                } else {
                        status = inotp->in_status & 0xff;
                        seqid = inotp->in_seqid;
+                       if (IS_DUALBUS(isp)) {
+                               bus = (inotp->in_iid & 0x80) >> 7;
+                               inotp->in_iid &= ~0x80;
+                       }
                }
-               bus = 0;        /* XXX: Which Channel? */
                ITDEBUG(2, ("isp_target_notify: Immediate Notify, "
                    "status=0x%x seqid=0x%x\n", status, seqid));
                switch (status) {
@@ -272,9 +276,11 @@
        u_int16_t iptr, optr;
        void *outp;
 
-       bus = bus;              /* XXX */
 
        MEMZERO(&el, sizeof (el));
+       if (IS_DUALBUS(isp)) {
+               el.le_rsvd = (bus & 0x1) << 7;
+       }
        el.le_cmd_count = DFLT_CMD_CNT;
        el.le_in_count = DFLT_INOTIFY;
        if (cmd == RQSTYPE_ENABLE_LUN) {



Home | Main Index | Thread Index | Old Index