summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/amr/amr_pci.c10
-rw-r--r--sys/dev/amr/amrreg.h3
2 files changed, 8 insertions, 5 deletions
diff --git a/sys/dev/amr/amr_pci.c b/sys/dev/amr/amr_pci.c
index 783d430..26b9ff8 100644
--- a/sys/dev/amr/amr_pci.c
+++ b/sys/dev/amr/amr_pci.c
@@ -103,7 +103,7 @@ static struct
static int
amr_pci_probe(device_t dev)
{
- int i;
+ int i, sig;
debug_called(1);
@@ -112,9 +112,11 @@ amr_pci_probe(device_t dev)
(pci_get_device(dev) == amr_device_ids[i].device)) {
/* do we need to test for a signature? */
- if ((amr_device_ids[i].flag & PROBE_SIGNATURE) &&
- (pci_read_config(dev, AMR_CFG_SIG, 2) != AMR_SIGNATURE))
- continue;
+ if (amr_device_ids[i].flag & PROBE_SIGNATURE) {
+ sig = pci_read_config(dev, AMR_CFG_SIG, 2);
+ if ((sig != AMR_SIGNATURE_1) && (sig != AMR_SIGNATURE_2))
+ continue;
+ }
device_set_desc(dev, "AMI MegaRAID");
return(-10); /* allow room to be overridden */
}
diff --git a/sys/dev/amr/amrreg.h b/sys/dev/amr/amrreg.h
index b2cf645..4835bb1 100644
--- a/sys/dev/amr/amrreg.h
+++ b/sys/dev/amr/amrreg.h
@@ -436,7 +436,8 @@ struct amr_passthrough
********************************************************************************/
#define AMR_CFG_SIG 0xa0 /* PCI config register for signature */
-#define AMR_SIGNATURE 0x3344 /* signature for Quartz adapters */
+#define AMR_SIGNATURE_1 0xCCCC /* i960 signature (older adapters) */
+#define AMR_SIGNATURE_2 0x3344 /* i960 signature (newer adapters) */
/*
* Doorbell registers
OpenPOWER on IntegriCloud