Update for SCSIPI changes. Note that capabilities update is disabled

until Matt Jacob has a change to update the driver for the latest
firmware, etc. since update device parameters seems to fail once the
system is really up and running, and eventually causes the controller
to wedge.  This may be due to a firmware bug.

Per discussion with Matt.
This commit is contained in:
thorpej 1999-09-30 23:06:18 +00:00
parent 63b8530b4e
commit fe12736867
2 changed files with 13 additions and 10 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: isp_netbsd.c,v 1.15 1999/07/05 20:31:36 mjacob Exp $ */
/* $NetBSD: isp_netbsd.c,v 1.16 1999/09/30 23:06:18 thorpej Exp $ */
/* release_6_5_99 */
/*
* Platform (NetBSD) dependent common attachment code for Qlogic adapters.
@ -179,7 +179,9 @@ ispcmd(xs)
* majority of cases will have to do some pointer deferences
* to find out that things don't need to be updated.
*/
if ((xs->flags & SCSI_AUTOCONF) == 0 && (isp->isp_type & ISP_HA_SCSI)) {
#if 0 /* XXX THORPEJ */
if ((xs->xs_control & XS_CTL_DISCOVERY) == 0 &&
(isp->isp_type & ISP_HA_SCSI)) {
sdparam *sdp = isp->isp_param;
sdp += XS_CHANNEL(xs);
if (sdp->isp_devparam[XS_TGT(xs)].dev_flags !=
@ -198,6 +200,7 @@ ispcmd(xs)
isp->isp_update |= (1 << XS_CHANNEL(xs));
}
}
#endif /* XXX THORPEJ */
if (isp->isp_state < ISP_RUNSTATE) {
DISABLE_INTS(isp);
@ -217,7 +220,7 @@ ispcmd(xs)
*/
if (isp->isp_osinfo.blocked) {
if (xs->flags & SCSI_POLL) {
if (xs->xs_control & XS_CTL_POLL) {
xs->error = XS_DRIVER_STUFFUP;
splx(s);
return (TRY_AGAIN_LATER);
@ -230,7 +233,7 @@ ispcmd(xs)
DISABLE_INTS(isp);
result = ispscsicmd(xs);
ENABLE_INTS(isp);
if (result != CMD_QUEUED || (xs->flags & SCSI_POLL) == 0) {
if (result != CMD_QUEUED || (xs->xs_control & XS_CTL_POLL) == 0) {
(void) splx(s);
return (result);
}
@ -373,7 +376,7 @@ isp_internal_restart(arg)
if (result != CMD_QUEUED) {
printf("%s: botched command restart (0x%x)\n",
isp->isp_name, result);
xs->flags |= ITSDONE;
xs->xs_status |= XS_STS_DONE;
if (xs->error == XS_NOERROR)
xs->error = XS_DRIVER_STUFFUP;
scsipi_done(xs);

View File

@ -1,4 +1,4 @@
/* $NetBSD: isp_netbsd.h,v 1.16 1999/09/07 22:54:45 mjacob Exp $ */
/* $NetBSD: isp_netbsd.h,v 1.17 1999/09/30 23:06:19 thorpej Exp $ */
/* release_6_5_99 */
/*
* NetBSD Specific definitions for the Qlogic ISP Host Adapter
@ -154,19 +154,19 @@ struct isposinfo {
#define XS_ERR(xs) (xs)->error
#define XS_NOERR(xs) (xs)->error == XS_NOERROR
#define XS_CMD_DONE(xs) (xs)->flags |= ITSDONE, scsipi_done(xs)
#define XS_IS_CMD_DONE(xs) (((xs)->flags & ITSDONE) != 0)
#define XS_CMD_DONE(xs) (xs)->xs_status |= XS_STS_DONE, scsipi_done(xs)
#define XS_IS_CMD_DONE(xs) (((xs)->xs_status & XS_STS_DONE) != 0)
/*
* We use whether or not we're a polled command to decide about tagging.
*/
#define XS_CANTAG(xs) (((xs)->flags & SCSI_POLL) != 0)
#define XS_CANTAG(xs) (((xs)->xs_control & XS_CTL_POLL) != 0)
/*
* This is our default tag (simple).
*/
#define XS_KINDOF_TAG(xs) \
(((xs)->flags & SCSI_URGENT)? REQFLAG_HTAG : REQFLAG_OTAG)
(((xs)->xs_control & XS_CTL_URGENT) ? REQFLAG_HTAG : REQFLAG_OTAG)
#define CMD_COMPLETE COMPLETE
#define CMD_EAGAIN TRY_AGAIN_LATER