summaryrefslogtreecommitdiffstats
path: root/sys/dev/ciss/ciss.c
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2013-02-26 18:11:43 +0000
committerattilio <attilio@FreeBSD.org>2013-02-26 18:11:43 +0000
commit134623836d0dcb10f5bc79c883bd239098952cca (patch)
tree53b8f81bf2dd71d981f19cb4460f54d0cd525234 /sys/dev/ciss/ciss.c
parentcff31deb1a197b29ab976c135fdd01dfb6951a6a (diff)
parent49f99b72515864c7f48e1d57295de7c122876049 (diff)
downloadFreeBSD-src-134623836d0dcb10f5bc79c883bd239098952cca.zip
FreeBSD-src-134623836d0dcb10f5bc79c883bd239098952cca.tar.gz
MFC
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