aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/mpt
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/mpt')
-rw-r--r--sys/dev/mpt/mpt_pci.c62
1 files changed, 56 insertions, 6 deletions
diff --git a/sys/dev/mpt/mpt_pci.c b/sys/dev/mpt/mpt_pci.c
index 72b5891fda1b..1df95482d923 100644
--- a/sys/dev/mpt/mpt_pci.c
+++ b/sys/dev/mpt/mpt_pci.c
@@ -129,18 +129,34 @@ __FBSDID("$FreeBSD$");
#define PCI_PRODUCT_LSI_FC919 0x0624
#endif
+#ifndef PCI_PRODUCT_LSI_FC919_LAN
+#define PCI_PRODUCT_LSI_FC919_LAN 0x0625
+#endif
+
#ifndef PCI_PRODUCT_LSI_FC929
#define PCI_PRODUCT_LSI_FC929 0x0622
#endif
+#ifndef PCI_PRODUCT_LSI_FC929_LAN
+#define PCI_PRODUCT_LSI_FC929_LAN 0x0623
+#endif
+
#ifndef PCI_PRODUCT_LSI_FC929X
#define PCI_PRODUCT_LSI_FC929X 0x0626
#endif
+#ifndef PCI_PRODUCT_LSI_FC929X_LAN
+#define PCI_PRODUCT_LSI_FC929X_LAN 0x0627
+#endif
+
#ifndef PCI_PRODUCT_LSI_FC919X
#define PCI_PRODUCT_LSI_FC919X 0x0628
#endif
+#ifndef PCI_PRODUCT_LSI_FC919X_LAN
+#define PCI_PRODUCT_LSI_FC919X_LAN 0x0629
+#endif
+
#ifndef PCI_PRODUCT_LSI_FC7X04X
#define PCI_PRODUCT_LSI_FC7X04X 0x0640
#endif
@@ -153,6 +169,10 @@ __FBSDID("$FreeBSD$");
#define PCI_PRODUCT_LSI_1030 0x0030
#endif
+#ifndef PCI_PRODUCT_LSI_1030ZC
+#define PCI_PRODUCT_LSI_1030ZC 0x0031
+#endif
+
#ifndef PCI_PRODUCT_LSI_SAS1064
#define PCI_PRODUCT_LSI_SAS1064 0x0050
#endif
@@ -177,6 +197,10 @@ __FBSDID("$FreeBSD$");
#define PCI_PRODUCT_LSI_SAS1068 0x0054
#endif
+#ifndef PCI_PRODUCT_LSI_SAS1068A
+#define PCI_PRODUCT_LSI_SAS1068A 0x0055
+#endif
+
#ifndef PCI_PRODUCT_LSI_SAS1068E
#define PCI_PRODUCT_LSI_SAS1068E 0x0058
#endif
@@ -232,7 +256,7 @@ mpt_pci_probe(device_t dev)
return (ENXIO);
}
- switch ((pci_get_device(dev) & ~1)) {
+ switch (pci_get_device(dev)) {
case PCI_PRODUCT_LSI_FC909:
desc = "LSILogic FC909 FC Adapter";
break;
@@ -242,15 +266,27 @@ mpt_pci_probe(device_t dev)
case PCI_PRODUCT_LSI_FC919:
desc = "LSILogic FC919 FC Adapter";
break;
+ case PCI_PRODUCT_LSI_FC919_LAN:
+ desc = "LSILogic FC919 LAN Adapter";
+ break;
case PCI_PRODUCT_LSI_FC929:
desc = "Dual LSILogic FC929 FC Adapter";
break;
+ case PCI_PRODUCT_LSI_FC929_LAN:
+ desc = "Dual LSILogic FC929 LAN Adapter";
+ break;
case PCI_PRODUCT_LSI_FC919X:
desc = "LSILogic FC919 FC PCI-X Adapter";
break;
+ case PCI_PRODUCT_LSI_FC919X_LAN:
+ desc = "LSILogic FC919 LAN PCI-X Adapter";
+ break;
case PCI_PRODUCT_LSI_FC929X:
desc = "Dual LSILogic FC929X 2Gb/s FC PCI-X Adapter";
break;
+ case PCI_PRODUCT_LSI_FC929X_LAN:
+ desc = "Dual LSILogic FC929X LAN PCI-X Adapter";
+ break;
case PCI_PRODUCT_LSI_FC646:
desc = "Dual LSILogic FC7X04X 4Gb/s FC PCI-Express Adapter";
break;
@@ -258,6 +294,7 @@ mpt_pci_probe(device_t dev)
desc = "Dual LSILogic FC7X04X 4Gb/s FC PCI-X Adapter";
break;
case PCI_PRODUCT_LSI_1030:
+ case PCI_PRODUCT_LSI_1030ZC:
desc = "LSILogic 1030 Ultra4 Adapter";
break;
case PCI_PRODUCT_LSI_SAS1064:
@@ -266,6 +303,7 @@ mpt_pci_probe(device_t dev)
case PCI_PRODUCT_LSI_SAS1066:
case PCI_PRODUCT_LSI_SAS1066E:
case PCI_PRODUCT_LSI_SAS1068:
+ case PCI_PRODUCT_LSI_SAS1068A:
case PCI_PRODUCT_LSI_SAS1068E:
case PCI_PRODUCT_LSI_SAS1078:
case PCI_PRODUCT_LSI_SAS1078DE:
@@ -428,12 +466,17 @@ mpt_pci_attach(device_t dev)
return (ENOMEM);
}
memset(mpt, 0, sizeof(struct mpt_softc));
- switch ((pci_get_device(dev) & ~1)) {
+ switch (pci_get_device(dev)) {
case PCI_PRODUCT_LSI_FC909:
case PCI_PRODUCT_LSI_FC909A:
case PCI_PRODUCT_LSI_FC919:
+ case PCI_PRODUCT_LSI_FC919_LAN:
case PCI_PRODUCT_LSI_FC929:
+ case PCI_PRODUCT_LSI_FC929_LAN:
+ case PCI_PRODUCT_LSI_FC929X:
+ case PCI_PRODUCT_LSI_FC929X_LAN:
case PCI_PRODUCT_LSI_FC919X:
+ case PCI_PRODUCT_LSI_FC919X_LAN:
case PCI_PRODUCT_LSI_FC646:
case PCI_PRODUCT_LSI_FC7X04X:
mpt->is_fc = 1;
@@ -448,6 +491,7 @@ mpt_pci_attach(device_t dev)
case PCI_PRODUCT_LSI_SAS1066:
case PCI_PRODUCT_LSI_SAS1066E:
case PCI_PRODUCT_LSI_SAS1068:
+ case PCI_PRODUCT_LSI_SAS1068A:
case PCI_PRODUCT_LSI_SAS1068E:
mpt->is_sas = 1;
break;
@@ -499,11 +543,17 @@ mpt_pci_attach(device_t dev)
* Is this part a dual?
* If so, link with our partner (around yet)
*/
- if ((pci_get_device(dev) & ~1) == PCI_PRODUCT_LSI_FC929 ||
- (pci_get_device(dev) & ~1) == PCI_PRODUCT_LSI_FC646 ||
- (pci_get_device(dev) & ~1) == PCI_PRODUCT_LSI_FC7X04X ||
- (pci_get_device(dev) & ~1) == PCI_PRODUCT_LSI_1030) {
+ switch (pci_get_device(dev)) {
+ case PCI_PRODUCT_LSI_FC929:
+ case PCI_PRODUCT_LSI_FC929_LAN:
+ case PCI_PRODUCT_LSI_FC646:
+ case PCI_PRODUCT_LSI_FC7X04X:
+ case PCI_PRODUCT_LSI_1030:
+ case PCI_PRODUCT_LSI_1030ZC:
mpt_link_peer(mpt);
+ break;
+ default:
+ break;
}
/*