Index: dev/i2o/iop.c
===================================================================
RCS file: /u/open/cvs/src/sys/dev/i2o/iop.c,v
retrieving revision 1.22
diff -u -r1.22 iop.c
--- dev/i2o/iop.c	7 Jun 2002 09:10:13 -0000	1.22
+++ dev/i2o/iop.c	1 Aug 2003 17:37:03 -0000
@@ -888,8 +888,6 @@
 			continue;
 		iop_simple_cmd(sc, I2O_TID_IOP, I2O_EXEC_SYS_QUIESCE, IOP_ICTX,
 		    0, 5000);
-		iop_simple_cmd(sc, I2O_TID_IOP, I2O_EXEC_IOP_CLEAR, IOP_ICTX,
-		    0, 1000);
 	}
 
 	/* Wait.  Some boards could still be flushing, stupidly enough. */
Index: dev/i2o/iopsp.c
===================================================================
RCS file: /u/open/cvs/src/sys/dev/i2o/iopsp.c,v
retrieving revision 1.7
diff -u -r1.7 iopsp.c
--- dev/i2o/iopsp.c	13 Jan 2003 03:56:47 -0000	1.7
+++ dev/i2o/iopsp.c	1 Aug 2003 17:37:15 -0000
@@ -313,22 +313,21 @@
 		it = &sc->sc_targetmap[targ];
 		it->it_flags |= IT_PRESENT;
 		syncrate = (int)((letoh64(param.sdi.negsyncrate) + 500) / 1000);
-		if (it->it_width == param.sdi.negdatawidth &&
-		    it->it_offset == param.sdi.negoffset &&
-		    it->it_syncrate == syncrate)
-			continue;
+		if (it->it_width != param.sdi.negdatawidth ||
+		    it->it_offset != param.sdi.negoffset ||
+		    it->it_syncrate != syncrate) {
+			it->it_width = param.sdi.negdatawidth;
+			it->it_offset = param.sdi.negoffset;
+			it->it_syncrate = syncrate;
 
-		it->it_width = param.sdi.negdatawidth;
-		it->it_offset = param.sdi.negoffset;
-		it->it_syncrate = syncrate;
-
-		printf("%s: target %d (tid %d): %d-bit, ", sc->sc_dv.dv_xname,
-		    targ, tid, it->it_width);
-		if (it->it_syncrate == 0)
-			printf("asynchronous\n");
-		else
-			printf("synchronous at %dMHz, offset 0x%x\n",
-			    it->it_syncrate, it->it_offset);
+			printf("%s: target %d (tid %d): %d-bit, ", sc->sc_dv.dv_xname,
+			       targ, tid, it->it_width);
+			if (it->it_syncrate == 0)
+				printf("asynchronous\n");
+			else
+				printf("synchronous at %dMHz, offset 0x%x\n",
+				       it->it_syncrate, it->it_offset);
+		}
 #endif
 
 		/* Ignore the device if it's in use by somebody else. */
Index: dev/pci/iop_pci.c
===================================================================
RCS file: /u/open/cvs/src/sys/dev/pci/iop_pci.c,v
retrieving revision 1.4
diff -u -r1.4 iop_pci.c
--- dev/pci/iop_pci.c	31 Mar 2002 05:25:10 -0000	1.4
+++ dev/pci/iop_pci.c	1 Aug 2003 17:37:24 -0000
@@ -89,6 +89,13 @@
 	    PCI_INTERFACE(pa->pa_class) == PCI_INTERFACE_I2O_INTRDRIVEN)
 		return (1);
 
+	/*
+	 * Match DPT/Adaptec boards that don't conform exactly to the spec.
+	 */
+	if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_DPT && 
+	    PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_DPT_RAID_I2O)
+		return (1);
+
 	return (0);
 }
 
