diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2008-05-28 18:40:22 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2008-05-28 18:40:22 +0000 |
commit | 5fe6013cc703ae405b71f0c4cefbc5584ffe7008 (patch) | |
tree | b687b40c0536c3dad6d093cbf0f00cbb07193fdb /sys | |
parent | faf3c86d4cc12fa25c00c06bcc603dc54d010948 (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')
-rw-r--r-- | sys/dev/ic/isp.c | 15 |
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>"; |