|
@@ -759,15 +759,15 @@ static void
|
|
lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp)
|
|
lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp)
|
|
{
|
|
{
|
|
lpfc_vpd_t *vp;
|
|
lpfc_vpd_t *vp;
|
|
- uint32_t id;
|
|
|
|
|
|
+ uint16_t dev_id;
|
|
uint8_t hdrtype;
|
|
uint8_t hdrtype;
|
|
char str[16];
|
|
char str[16];
|
|
|
|
|
|
vp = &phba->vpd;
|
|
vp = &phba->vpd;
|
|
- pci_read_config_dword(phba->pcidev, PCI_VENDOR_ID, &id);
|
|
|
|
|
|
+ pci_read_config_word(phba->pcidev, PCI_DEVICE_ID, &dev_id);
|
|
pci_read_config_byte(phba->pcidev, PCI_HEADER_TYPE, &hdrtype);
|
|
pci_read_config_byte(phba->pcidev, PCI_HEADER_TYPE, &hdrtype);
|
|
|
|
|
|
- switch ((id >> 16) & 0xffff) {
|
|
|
|
|
|
+ switch (dev_id) {
|
|
case PCI_DEVICE_ID_FIREFLY:
|
|
case PCI_DEVICE_ID_FIREFLY:
|
|
strcpy(str, "LP6000 1");
|
|
strcpy(str, "LP6000 1");
|
|
break;
|
|
break;
|
|
@@ -816,6 +816,24 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp)
|
|
else
|
|
else
|
|
strcpy(str, "LP11000 4");
|
|
strcpy(str, "LP11000 4");
|
|
break;
|
|
break;
|
|
|
|
+ case PCI_DEVICE_ID_HELIOS_SCSP:
|
|
|
|
+ strcpy(str, "LP11000-SP 4");
|
|
|
|
+ break;
|
|
|
|
+ case PCI_DEVICE_ID_HELIOS_DCSP:
|
|
|
|
+ strcpy(str, "LP11002-SP 4");
|
|
|
|
+ break;
|
|
|
|
+ case PCI_DEVICE_ID_NEPTUNE:
|
|
|
|
+ if (hdrtype == 0x80)
|
|
|
|
+ strcpy(str, "LPe1002 4");
|
|
|
|
+ else
|
|
|
|
+ strcpy(str, "LPe1000 4");
|
|
|
|
+ break;
|
|
|
|
+ case PCI_DEVICE_ID_NEPTUNE_SCSP:
|
|
|
|
+ strcpy(str, "LPe1000-SP 4");
|
|
|
|
+ break;
|
|
|
|
+ case PCI_DEVICE_ID_NEPTUNE_DCSP:
|
|
|
|
+ strcpy(str, "LPe1002-SP 4");
|
|
|
|
+ break;
|
|
case PCI_DEVICE_ID_BMID:
|
|
case PCI_DEVICE_ID_BMID:
|
|
strcpy(str, "LP1150 4");
|
|
strcpy(str, "LP1150 4");
|
|
break;
|
|
break;
|
|
@@ -828,6 +846,12 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp)
|
|
else
|
|
else
|
|
strcpy(str, "LPe11000 4");
|
|
strcpy(str, "LPe11000 4");
|
|
break;
|
|
break;
|
|
|
|
+ case PCI_DEVICE_ID_ZEPHYR_SCSP:
|
|
|
|
+ strcpy(str, "LPe11000-SP 4");
|
|
|
|
+ break;
|
|
|
|
+ case PCI_DEVICE_ID_ZEPHYR_DCSP:
|
|
|
|
+ strcpy(str, "LPe11002-SP 4");
|
|
|
|
+ break;
|
|
case PCI_DEVICE_ID_ZMID:
|
|
case PCI_DEVICE_ID_ZMID:
|
|
strcpy(str, "LPe1150 4");
|
|
strcpy(str, "LPe1150 4");
|
|
break;
|
|
break;
|
|
@@ -843,6 +867,18 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp)
|
|
default:
|
|
default:
|
|
memset(str, 0, 16);
|
|
memset(str, 0, 16);
|
|
break;
|
|
break;
|
|
|
|
+ case PCI_DEVICE_ID_LP11000S:
|
|
|
|
+ if (hdrtype == 0x80)
|
|
|
|
+ strcpy(str, "LP11002-S 4");
|
|
|
|
+ else
|
|
|
|
+ strcpy(str, "LP11000-S 4");
|
|
|
|
+ break;
|
|
|
|
+ case PCI_DEVICE_ID_LPE11000S:
|
|
|
|
+ if (hdrtype == 0x80)
|
|
|
|
+ strcpy(str, "LPe11002-S 4");
|
|
|
|
+ else
|
|
|
|
+ strcpy(str, "LPe11000-S 4");
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
if (mdp)
|
|
if (mdp)
|
|
sscanf(str, "%s", mdp);
|
|
sscanf(str, "%s", mdp);
|
|
@@ -1673,14 +1709,28 @@ static struct pci_device_id lpfc_id_table[] = {
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PFLY,
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PFLY,
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
|
|
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_NEPTUNE,
|
|
|
|
+ PCI_ANY_ID, PCI_ANY_ID, },
|
|
|
|
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_NEPTUNE_SCSP,
|
|
|
|
+ PCI_ANY_ID, PCI_ANY_ID, },
|
|
|
|
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_NEPTUNE_DCSP,
|
|
|
|
+ PCI_ANY_ID, PCI_ANY_ID, },
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS,
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS,
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
|
|
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS_SCSP,
|
|
|
|
+ PCI_ANY_ID, PCI_ANY_ID, },
|
|
|
|
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS_DCSP,
|
|
|
|
+ PCI_ANY_ID, PCI_ANY_ID, },
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BMID,
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BMID,
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BSMB,
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BSMB,
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR,
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR,
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
|
|
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_SCSP,
|
|
|
|
+ PCI_ANY_ID, PCI_ANY_ID, },
|
|
|
|
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_DCSP,
|
|
|
|
+ PCI_ANY_ID, PCI_ANY_ID, },
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZMID,
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZMID,
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZSMB,
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZSMB,
|
|
@@ -1691,6 +1741,10 @@ static struct pci_device_id lpfc_id_table[] = {
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP10000S,
|
|
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP10000S,
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
PCI_ANY_ID, PCI_ANY_ID, },
|
|
|
|
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP11000S,
|
|
|
|
+ PCI_ANY_ID, PCI_ANY_ID, },
|
|
|
|
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LPE11000S,
|
|
|
|
+ PCI_ANY_ID, PCI_ANY_ID, },
|
|
{ 0 }
|
|
{ 0 }
|
|
};
|
|
};
|
|
|
|
|