summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormjacob <mjacob@openbsd.org>2000-04-06 05:47:54 +0000
committermjacob <mjacob@openbsd.org>2000-04-06 05:47:54 +0000
commit40c58277077c64a6facb1af4f3776aa235bd607c (patch)
tree228ef32be5a4039296db6ed806a477f6d8336ca0
parentRoll internal revision level. Put in Fibre Channel topology storage (diff)
downloadwireguard-openbsd-40c58277077c64a6facb1af4f3776aa235bd607c.tar.xz
wireguard-openbsd-40c58277077c64a6facb1af4f3776aa235bd607c.zip
Remove restriction against bus resets for Ultra3 cards (and what
would have been for Ultra2)- we've fixed the problem in isp_control.
-rw-r--r--sys/dev/ic/isp_openbsd.c31
1 files changed, 13 insertions, 18 deletions
diff --git a/sys/dev/ic/isp_openbsd.c b/sys/dev/ic/isp_openbsd.c
index ca47ede724b..86c51cb323a 100644
--- a/sys/dev/ic/isp_openbsd.c
+++ b/sys/dev/ic/isp_openbsd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: isp_openbsd.c,v 1.8 2000/03/05 22:22:55 mjacob Exp $ */
+/* $OpenBSD: isp_openbsd.c,v 1.9 2000/04/06 05:47:54 mjacob Exp $ */
/*
* Platform (OpenBSD) dependent common attachment code for Qlogic adapters.
*
@@ -116,27 +116,22 @@ isp_attach(isp)
* Send a SCSI Bus Reset (used to be done as part of attach,
* but now left to the OS outer layers).
*
- * XXX: For now, skip resets for FC because the method by which
- * XXX: we deal with loop down after issuing resets (which causes
- * XXX: port logouts for all devices) needs interrupts to run so
- * XXX: that async events happen.
+ * We don't do 'bus resets' for FC because the LIP that occurs
+ * when we start the firmware does all that for us.
*/
if (IS_SCSI(isp)) {
- /* XXX: There's some issue with resets && Ultra3 */
- if (!IS_ULTRA3(isp)) {
- int bus = 0;
+ int bus = 0;
+ (void) isp_control(isp, ISPCTL_RESET_BUS, &bus);
+ if (IS_DUALBUS(isp)) {
+ bus++;
(void) isp_control(isp, ISPCTL_RESET_BUS, &bus);
- if (IS_DUALBUS(isp)) {
- bus++;
- (void) isp_control(isp, ISPCTL_RESET_BUS, &bus);
- }
- /*
- * wait for the bus to settle.
- */
- printf("%s: waiting 4 seconds for bus reset settling\n",
- isp->isp_name);
- delay(4 * 1000000);
}
+ /*
+ * wait for the bus to settle.
+ */
+ printf("%s: waiting 4 seconds for bus reset settling\n",
+ isp->isp_name);
+ delay(4 * 1000000);
} else {
int i, j;
fcparam *fcp = isp->isp_param;