From 5fe6013cc703ae405b71f0c4cefbc5584ffe7008 Mon Sep 17 00:00:00 2001 From: Mark Kettenis Date: Wed, 28 May 2008 18:40:22 +0000 Subject: 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@ --- sys/dev/ic/isp.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'sys/dev/ic') 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 = ""; } 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 = ""; -- cgit v1.2.3