summaryrefslogtreecommitdiffstats
path: root/sys/dev/ciss/ciss.c
diff options
context:
space:
mode:
authorsbruno <sbruno@FreeBSD.org>2013-02-25 19:22:56 +0000
committersbruno <sbruno@FreeBSD.org>2013-02-25 19:22:56 +0000
commit66bd226a8bcd9c32e76c9a7c414af10c393e50d8 (patch)
treed3d75bf94cb3e9413f8fcdc4f29ee8d335e65fab /sys/dev/ciss/ciss.c
parent7d5f9c182579ddeb68d979a877feb7cbcbe00d46 (diff)
downloadFreeBSD-src-66bd226a8bcd9c32e76c9a7c414af10c393e50d8.zip
FreeBSD-src-66bd226a8bcd9c32e76c9a7c414af10c393e50d8.tar.gz
The 5300 series ciss(4) board does not work in performant mode with our
currnet initialization sequence. Set it to simple mode only so that systems can be updated from stable/7 to newer installations. At some point, we should figure out why we cannot initialize performant mode on this board. PR: kern/153361 Reviewed by: scottl Obtained from: Yahoo! Inc. MFC after: 2 weeks
Diffstat (limited to 'sys/dev/ciss/ciss.c')
-rw-r--r--sys/dev/ciss/ciss.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/sys/dev/ciss/ciss.c b/sys/dev/ciss/ciss.c
index 9aef998..5895d7f 100644
--- a/sys/dev/ciss/ciss.c
+++ b/sys/dev/ciss/ciss.c
@@ -282,6 +282,7 @@ TUNABLE_INT("hw.ciss.force_interrupt", &ciss_force_interrupt);
#define CISS_BOARD_SA5 1
#define CISS_BOARD_SA5B 2
#define CISS_BOARD_NOMSI (1<<4)
+#define CISS_BOARD_SIMPLE (1<<5)
static struct
{
@@ -290,7 +291,8 @@ static struct
int flags;
char *desc;
} ciss_vendor_data[] = {
- { 0x0e11, 0x4070, CISS_BOARD_SA5|CISS_BOARD_NOMSI, "Compaq Smart Array 5300" },
+ { 0x0e11, 0x4070, CISS_BOARD_SA5|CISS_BOARD_NOMSI|CISS_BOARD_SIMPLE,
+ "Compaq Smart Array 5300" },
{ 0x0e11, 0x4080, CISS_BOARD_SA5B|CISS_BOARD_NOMSI, "Compaq Smart Array 5i" },
{ 0x0e11, 0x4082, CISS_BOARD_SA5B|CISS_BOARD_NOMSI, "Compaq Smart Array 532" },
{ 0x0e11, 0x4083, CISS_BOARD_SA5B|CISS_BOARD_NOMSI, "HP Smart Array 5312" },
@@ -682,8 +684,15 @@ ciss_init_pci(struct ciss_softc *sc)
supported_methods = CISS_TRANSPORT_METHOD_PERF;
break;
default:
- supported_methods = sc->ciss_cfg->supported_methods;
- break;
+ /*
+ * Override the capabilities of the BOARD and specify SIMPLE
+ * MODE
+ */
+ if (ciss_vendor_data[i].flags & CISS_BOARD_SIMPLE)
+ supported_methods = CISS_TRANSPORT_METHOD_SIMPLE;
+ else
+ supported_methods = sc->ciss_cfg->supported_methods;
+ break;
}
setup:
OpenPOWER on IntegriCloud