From 75c1e828c0f407d62605ba6ba40c542ecac4d2c5 Mon Sep 17 00:00:00 2001 From: Matt Jacob Date: Mon, 4 Feb 2002 21:04:25 +0000 Subject: + A variety of 23XX changes: disable MWI on 2300 based on function code, set an 'isp_port' for the 2312- it's a separate instance, but the NVRAM is shared, and the second port's NVRAM is at offset 256. + Enable RIO operation for LVD SCSI cards. This makes a *big* difference as even under reasonable load we get batched completions of about 30 commands at a time on, say, an ISP1080. + Do 'continuation' mailbox commands- this allows us to specify a work area within the softc and 'continue' repeated mailbox commands. This is more or less on an ad hoc basis and is currently only used for firmware loading (which f/w now loads substantially faster becuase the calling thread is only woken when all the f/w words are loaded- not for each one of the 40000 f/w words that gets loaded). + If we're about to return from isp_intr with a 'bogus interrupt' indication, and we're not a 23XX card, check to see whether the semaphore register is currently *2* (not *1* as it should be) and whether there's an async completion sitting in outgoing mailbox0. This seems to capture cases of lost fast posting and RIO interrupts that the 12160 && 1080 have been known to pump out under extreme load (extreme, as in > 250 active commands). + FC_SCRATCH_ACQUIRE/FC_SCRATCH_RELEASE macros. + Endian correct swizzle/unswizzle of an ATIO2 that has a WWPN in it. MFC after: 1 week --- sys/dev/isp/isp_ioctl.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'sys/dev/isp/isp_ioctl.h') diff --git a/sys/dev/isp/isp_ioctl.h b/sys/dev/isp/isp_ioctl.h index b52b2b538fbb7..61f921b8c8bf0 100644 --- a/sys/dev/isp/isp_ioctl.h +++ b/sys/dev/isp/isp_ioctl.h @@ -79,11 +79,11 @@ struct isp_fc_device { */ #define ISP_STATS_VERSION 0 typedef struct { - uint8_t isp_stat_version; - uint8_t isp_type; /* (ro) reflects chip type */ - uint8_t isp_revision; /* (ro) reflects chip version */ - uint8_t unused1; - uint32_t unused2; + u_int8_t isp_stat_version; + u_int8_t isp_type; /* (ro) reflects chip type */ + u_int8_t isp_revision; /* (ro) reflects chip version */ + u_int8_t unused1; + u_int32_t unused2; /* * Statistics Counters */ @@ -96,7 +96,7 @@ typedef struct { #define ISP_FPHCCMCPLT 5 #define ISP_RSCCHIWAT 6 #define ISP_FPCCHIWAT 7 - uint64_t isp_stats[ISP_NSTATS]; + u_int64_t isp_stats[ISP_NSTATS]; } isp_stats_t; #define ISP_GET_STATS _IOR(ISP_IOC, 6, isp_stats_t) -- cgit v1.2.3