freebsd-dev/sys/dev/isp
Matt Jacob b85389e117 Add in the enabling of interrupts (to isp_attach). Clean up a busted
comment. Check against firmware state- not loop state when enabling
target mode. Other changes have to do with no longer enabling/disabling
interrupts at will.

Rearchitect command watchdog timeouts-

First of all, set the timeout period for a command that has a
timeout (in isp_action) to the period of time requested *plus* two
seconds. We don't want the Qlogic firmware and the host system to
race each other to report a dead command (the watchdog is there to
catch dead and/or broken firmware).

Next, make sure that the command being watched isn't done yet. If
it's not done yet, check for INT_PENDING and call isp_intr- if that
said it serviced an interrupt, check to see whether the command is
now done (this is what the "IN WATCHDOG" private flag is for- if
isp_intr completes the command, it won't call xpt_done on it because
isp_watchdog is still looking at the command).

If no interrupt was pending, or the command wasn't completed, check
to see if we've set the private 'grace period' flag. If so, the
command really *is* dead, so report it as dead and complete it with
a CAM_CMD_TIMEOUT value.

If the grace period flag wasn't set, set it and issue a SYNCHRONIZE_ALL
Marker Request Queue entry and re-set the timeout for one second
from now (see Revision 1.45 isp.c notes for more on this) to give
the firmware a final chance to complete this command.
2000-06-27 19:31:02 +00:00
..
isp_freebsd.c Add in the enabling of interrupts (to isp_attach). Clean up a busted 2000-06-27 19:31:02 +00:00
isp_freebsd.h Clean up private storage so that we can use the spriv_field0 to 2000-06-27 19:22:13 +00:00
isp_inline.h Add an isp_handle_index function- this is prepatory to loading more into 2000-06-27 19:14:14 +00:00
isp_pci.c Clean up firmware load issues and remove darn near all config options. 2000-06-18 05:18:55 +00:00
isp_target.c Remove all ISP2100_SCCLUN define based code and replace it with runtime 2000-06-18 04:48:28 +00:00
isp_target.h add "disable autodisconnect" flags 2000-06-18 04:44:41 +00:00
isp_tpublic.h Some minor tweaklets. 2000-04-21 02:05:54 +00:00
isp.c Once we have firmware running (if isp_reset) and this is the first time 2000-06-18 04:56:17 +00:00
ispmbox.h add MBOX_GET_RESOURCE_COUNT command 2000-06-18 04:41:14 +00:00
ispreg.h Add mailbox bitmask macros (numbers of available mailbox registers 2000-06-27 19:15:43 +00:00
ispvar.h Add 8 bits of volatile mailbox busy mask- this will be the bitmask of 2000-06-27 19:17:39 +00:00
MAINTAINER add MAINTAINER file for clarity 2000-01-13 18:45:14 +00:00