diff options
author | mjacob <mjacob@FreeBSD.org> | 1999-03-26 00:33:13 +0000 |
---|---|---|
committer | mjacob <mjacob@FreeBSD.org> | 1999-03-26 00:33:13 +0000 |
commit | 6535dd177ea41b7b038dd460888438f2f6b750f3 (patch) | |
tree | 125312bcca9a5c2313fb15174425901e44f7dc51 /sys | |
parent | 70f68a6c7d9228c30fd6f22b6decda12af143fd7 (diff) | |
download | FreeBSD-src-6535dd177ea41b7b038dd460888438f2f6b750f3.zip FreeBSD-src-6535dd177ea41b7b038dd460888438f2f6b750f3.tar.gz |
Annoying little nigglet- apparently *some* Qlogic temporarily ignore
settings you've just sent them and return random values if you follow
the set by a get. This causes problems when you latter run a Tag-enabled
command when you've command tagged mode off.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/isp/isp.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/dev/isp/isp.c b/sys/dev/isp/isp.c index efc5217..0f85ce6 100644 --- a/sys/dev/isp/isp.c +++ b/sys/dev/isp/isp.c @@ -1,4 +1,4 @@ -/* $Id: isp.c,v 1.14 1999/03/17 05:04:38 mjacob Exp $ */ +/* $Id: isp.c,v 1.15 1999/03/25 22:52:44 mjacob Exp $ */ /* release_03_25_99 */ /* * Machine and OS Independent (well, as best as possible) @@ -743,7 +743,7 @@ isp_init(isp) * We don't update dev_flags with what we've set * because that's not the ultimate goal setting. * If we succeed with the command, we *do* update - * cur_dflags. + * cur_dflags by getting target parameters. */ mbs.param[0] = MBOX_GET_TARGET_PARAMS; mbs.param[1] = (tgt << 8); @@ -759,6 +759,14 @@ isp_init(isp) sdp->isp_devparam[tgt].cur_offset = mbs.param[3] >> 8; sdp->isp_devparam[tgt].cur_period = mbs.param[3] & 0xff; } + /* + * Ensure that we don't believe tagged queuing is enabled yet. + * It turns out that sometimes the ISP just ignores our + * attempts to set parameters for devices that it hasn't + * seen yet. + */ + sdp->isp_devparam[tgt].cur_dflags &= ~DPARM_TQING; + maxlun = (isp->isp_fwrev >= ISP_FW_REV(7, 55))? 32 : 8; for (lun = 0; lun < maxlun; lun++) { mbs.param[0] = MBOX_SET_DEV_QUEUE_PARAMS; |