summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/isp/isp_pci.c8
-rw-r--r--sys/pci/isp_pci.c8
2 files changed, 16 insertions, 0 deletions
diff --git a/sys/dev/isp/isp_pci.c b/sys/dev/isp/isp_pci.c
index 86ee964..8861df2 100644
--- a/sys/dev/isp/isp_pci.c
+++ b/sys/dev/isp/isp_pci.c
@@ -207,6 +207,11 @@ static struct ispmdvec mdvec_2200 = {
#define PCI_QLOGIC_ISP2200 \
((PCI_PRODUCT_QLOGIC_ISP2200 << 16) | PCI_VENDOR_QLOGIC)
+/*
+ * Odd case for some AMI raid cards... We need to *not* attach to this.
+ */
+#define AMI_RAID_SUBVENDOR_ID 0x101e
+
#define IO_MAP_REG 0x10
#define MEM_MAP_REG 0x14
@@ -262,6 +267,9 @@ isp_pci_probe(device_t dev)
device_set_desc(dev, "Qlogic ISP 1280 PCI SCSI Adapter");
break;
case PCI_QLOGIC_ISP12160:
+ if (pci_get_subvendor(dev) == AMI_RAID_SUBVENDOR_ID) {
+ return (ENXIO);
+ }
device_set_desc(dev, "Qlogic ISP 12160 PCI SCSI Adapter");
break;
case PCI_QLOGIC_ISP2100:
diff --git a/sys/pci/isp_pci.c b/sys/pci/isp_pci.c
index 86ee964..8861df2 100644
--- a/sys/pci/isp_pci.c
+++ b/sys/pci/isp_pci.c
@@ -207,6 +207,11 @@ static struct ispmdvec mdvec_2200 = {
#define PCI_QLOGIC_ISP2200 \
((PCI_PRODUCT_QLOGIC_ISP2200 << 16) | PCI_VENDOR_QLOGIC)
+/*
+ * Odd case for some AMI raid cards... We need to *not* attach to this.
+ */
+#define AMI_RAID_SUBVENDOR_ID 0x101e
+
#define IO_MAP_REG 0x10
#define MEM_MAP_REG 0x14
@@ -262,6 +267,9 @@ isp_pci_probe(device_t dev)
device_set_desc(dev, "Qlogic ISP 1280 PCI SCSI Adapter");
break;
case PCI_QLOGIC_ISP12160:
+ if (pci_get_subvendor(dev) == AMI_RAID_SUBVENDOR_ID) {
+ return (ENXIO);
+ }
device_set_desc(dev, "Qlogic ISP 12160 PCI SCSI Adapter");
break;
case PCI_QLOGIC_ISP2100:
OpenPOWER on IntegriCloud