summaryrefslogtreecommitdiff
path: root/sys/dev/ic
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2008-05-28 18:40:22 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2008-05-28 18:40:22 +0000
commit5fe6013cc703ae405b71f0c4cefbc5584ffe7008 (patch)
treeb687b40c0536c3dad6d093cbf0f00cbb07193fdb /sys/dev/ic
parentfaf3c86d4cc12fa25c00c06bcc603dc54d010948 (diff)
Don't try reading the SXP_PINS_DIFF on the 10160 and 12160 SCSI controllers.
The registers seems to return 0 on my 12160 and there are some indications that it doesn't really exist. This may fix panics seen with the 10160 on sparc64 machines. ok krw@
Diffstat (limited to 'sys/dev/ic')
-rw-r--r--sys/dev/ic/isp.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/sys/dev/ic/isp.c b/sys/dev/ic/isp.c
index bc1f4bdbb44..f523bc3a9c8 100644
--- a/sys/dev/ic/isp.c
+++ b/sys/dev/ic/isp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: isp.c,v 1.41 2008/01/21 20:00:33 sobrado Exp $ */
+/* $OpenBSD: isp.c,v 1.42 2008/05/28 18:40:21 kettenis Exp $ */
/*
* Machine and OS Independent (well, as best as possible)
* code for the QLogic ISP SCSI adapters.
@@ -273,6 +273,15 @@ isp_reset(struct ispsoftc *isp)
/*
* XXX: Should probably do some bus sensing.
*/
+ } else if (IS_ULTRA3(isp)) {
+ isp->isp_clock = 100;
+
+ if (IS_10160(isp))
+ btype = "10160";
+ else if (IS_12160(isp))
+ btype = "12160";
+ else
+ btype = "<UNKLVD>";
} else if (IS_ULTRA2(isp)) {
static const char m[] = "bus %d is in %s Mode";
u_int16_t l;
@@ -284,10 +293,6 @@ isp_reset(struct ispsoftc *isp)
btype = "1280";
else if (IS_1080(isp))
btype = "1080";
- else if (IS_10160(isp))
- btype = "10160";
- else if (IS_12160(isp))
- btype = "12160";
else
btype = "<UNKLVD>";