summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2017-03-13 06:52:29 +0000
committermav <mav@FreeBSD.org>2017-03-13 06:52:29 +0000
commitaafc436d6904961a17414f9628d292d4d29435ee (patch)
treeff042f77f87a9cd9b3c9e63b15c5464c4cfc52bd
parentdd09dbd4826afd8d24f5da5659f6f558f28bf383 (diff)
downloadFreeBSD-src-aafc436d6904961a17414f9628d292d4d29435ee.zip
FreeBSD-src-aafc436d6904961a17414f9628d292d4d29435ee.tar.gz
MFC r314786: Import mpr(4) driver P12 to P14 diff from vendor site.
This is mostly a version bump to stay in version number sync with firmware. The only change there was cosmetic: Display degraded speed message upon receiving Active Cable Exception Event with DEGRADED reason code.
-rw-r--r--sys/dev/mpr/mpi/mpi2_ioc.h5
-rw-r--r--sys/dev/mpr/mpr_sas_lsi.c18
-rw-r--r--sys/dev/mpr/mpr_table.c6
-rw-r--r--sys/dev/mpr/mprvar.h2
4 files changed, 26 insertions, 5 deletions
diff --git a/sys/dev/mpr/mpi/mpi2_ioc.h b/sys/dev/mpr/mpi/mpi2_ioc.h
index 37f01c6..003f7cd 100644
--- a/sys/dev/mpr/mpi/mpi2_ioc.h
+++ b/sys/dev/mpr/mpi/mpi2_ioc.h
@@ -688,7 +688,10 @@ typedef struct _MPI26_EVENT_DATA_ACTIVE_CABLE_EXCEPT
MPI2_POINTER pMpi26EventDataActiveCableExcept_t;
/* defines for ReasonCode field */
-#define MPI26_EVENT_ACTIVE_CABLE_INSUFFICIENT_POWER (0x00)
+#define MPI26_EVENT_ACTIVE_CABLE_INSUFFICIENT_POWER (0x00)
+#define MPI26_EVENT_ACTIVE_CABLE_PRESENT (0x01)
+#define MPI26_EVENT_ACTIVE_CABLE_DEGRADED (0x02)
+
/* Hard Reset Received Event data */
diff --git a/sys/dev/mpr/mpr_sas_lsi.c b/sys/dev/mpr/mpr_sas_lsi.c
index f9fca8c..c35f8ff 100644
--- a/sys/dev/mpr/mpr_sas_lsi.c
+++ b/sys/dev/mpr/mpr_sas_lsi.c
@@ -651,14 +651,26 @@ skip_fp_send:
ace_event_data =
(pMpi26EventDataActiveCableExcept_t)fw_event->event_data;
- if (ace_event_data->ReasonCode ==
- MPI26_EVENT_ACTIVE_CABLE_INSUFFICIENT_POWER) {
- mpr_printf(sc, "Currently an active cable with "
+ switch(ace_event_data->ReasonCode) {
+ case MPI26_EVENT_ACTIVE_CABLE_INSUFFICIENT_POWER:
+ {
+ mpr_printf(sc, "Currently a cable with "
"ReceptacleID %d cannot be powered and device "
"connected to this active cable will not be seen. "
"This active cable requires %d mW of power.\n",
ace_event_data->ReceptacleID,
ace_event_data->ActiveCablePowerRequirement);
+ break;
+ }
+ case MPI26_EVENT_ACTIVE_CABLE_DEGRADED:
+ {
+ mpr_printf(sc, "Currently a cable with "
+ "ReceptacleID %d is not running at optimal speed "
+ "(12 Gb/s rate)\n", ace_event_data->ReceptacleID);
+ break;
+ }
+ default:
+ break;
}
break;
}
diff --git a/sys/dev/mpr/mpr_table.c b/sys/dev/mpr/mpr_table.c
index 6ec6492..4674b79 100644
--- a/sys/dev/mpr/mpr_table.c
+++ b/sys/dev/mpr/mpr_table.c
@@ -95,6 +95,12 @@ struct mpr_table_lookup mpr_event_names[] = {
{"SasPhyCounter", 0x22},
{"GpioInterrupt", 0x23},
{"HbdPhyEvent", 0x24},
+ {"SasQuiesce", 0x25},
+ {"SasNotifyPrimitive", 0x26},
+ {"TempThreshold", 0x27},
+ {"HostMessage", 0x28},
+ {"PowerPerformanceChange", 0x29},
+ {"CableEvent", 0x34},
{NULL, 0},
{"Unknown Event", 0}
};
diff --git a/sys/dev/mpr/mprvar.h b/sys/dev/mpr/mprvar.h
index 51ab8d0..9484c10 100644
--- a/sys/dev/mpr/mprvar.h
+++ b/sys/dev/mpr/mprvar.h
@@ -33,7 +33,7 @@
#ifndef _MPRVAR_H
#define _MPRVAR_H
-#define MPR_DRIVER_VERSION "13.01.00.00-fbsd"
+#define MPR_DRIVER_VERSION "15.01.00.00-fbsd"
#define MPR_DB_MAX_WAIT 2500
OpenPOWER on IntegriCloud