diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_init.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_init.c | 60 |
1 files changed, 57 insertions, 3 deletions
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index dfd59d21ec49..1ab3dac7b632 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c | |||
@@ -759,15 +759,15 @@ static void | |||
759 | lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp) | 759 | lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp) |
760 | { | 760 | { |
761 | lpfc_vpd_t *vp; | 761 | lpfc_vpd_t *vp; |
762 | uint32_t id; | 762 | uint16_t dev_id; |
763 | uint8_t hdrtype; | 763 | uint8_t hdrtype; |
764 | char str[16]; | 764 | char str[16]; |
765 | 765 | ||
766 | vp = &phba->vpd; | 766 | vp = &phba->vpd; |
767 | pci_read_config_dword(phba->pcidev, PCI_VENDOR_ID, &id); | 767 | pci_read_config_word(phba->pcidev, PCI_DEVICE_ID, &dev_id); |
768 | pci_read_config_byte(phba->pcidev, PCI_HEADER_TYPE, &hdrtype); | 768 | pci_read_config_byte(phba->pcidev, PCI_HEADER_TYPE, &hdrtype); |
769 | 769 | ||
770 | switch ((id >> 16) & 0xffff) { | 770 | switch (dev_id) { |
771 | case PCI_DEVICE_ID_FIREFLY: | 771 | case PCI_DEVICE_ID_FIREFLY: |
772 | strcpy(str, "LP6000 1"); | 772 | strcpy(str, "LP6000 1"); |
773 | break; | 773 | break; |
@@ -816,6 +816,24 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp) | |||
816 | else | 816 | else |
817 | strcpy(str, "LP11000 4"); | 817 | strcpy(str, "LP11000 4"); |
818 | break; | 818 | break; |
819 | case PCI_DEVICE_ID_HELIOS_SCSP: | ||
820 | strcpy(str, "LP11000-SP 4"); | ||
821 | break; | ||
822 | case PCI_DEVICE_ID_HELIOS_DCSP: | ||
823 | strcpy(str, "LP11002-SP 4"); | ||
824 | break; | ||
825 | case PCI_DEVICE_ID_NEPTUNE: | ||
826 | if (hdrtype == 0x80) | ||
827 | strcpy(str, "LPe1002 4"); | ||
828 | else | ||
829 | strcpy(str, "LPe1000 4"); | ||
830 | break; | ||
831 | case PCI_DEVICE_ID_NEPTUNE_SCSP: | ||
832 | strcpy(str, "LPe1000-SP 4"); | ||
833 | break; | ||
834 | case PCI_DEVICE_ID_NEPTUNE_DCSP: | ||
835 | strcpy(str, "LPe1002-SP 4"); | ||
836 | break; | ||
819 | case PCI_DEVICE_ID_BMID: | 837 | case PCI_DEVICE_ID_BMID: |
820 | strcpy(str, "LP1150 4"); | 838 | strcpy(str, "LP1150 4"); |
821 | break; | 839 | break; |
@@ -828,6 +846,12 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp) | |||
828 | else | 846 | else |
829 | strcpy(str, "LPe11000 4"); | 847 | strcpy(str, "LPe11000 4"); |
830 | break; | 848 | break; |
849 | case PCI_DEVICE_ID_ZEPHYR_SCSP: | ||
850 | strcpy(str, "LPe11000-SP 4"); | ||
851 | break; | ||
852 | case PCI_DEVICE_ID_ZEPHYR_DCSP: | ||
853 | strcpy(str, "LPe11002-SP 4"); | ||
854 | break; | ||
831 | case PCI_DEVICE_ID_ZMID: | 855 | case PCI_DEVICE_ID_ZMID: |
832 | strcpy(str, "LPe1150 4"); | 856 | strcpy(str, "LPe1150 4"); |
833 | break; | 857 | break; |
@@ -843,6 +867,18 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp) | |||
843 | default: | 867 | default: |
844 | memset(str, 0, 16); | 868 | memset(str, 0, 16); |
845 | break; | 869 | break; |
870 | case PCI_DEVICE_ID_LP11000S: | ||
871 | if (hdrtype == 0x80) | ||
872 | strcpy(str, "LP11002-S 4"); | ||
873 | else | ||
874 | strcpy(str, "LP11000-S 4"); | ||
875 | break; | ||
876 | case PCI_DEVICE_ID_LPE11000S: | ||
877 | if (hdrtype == 0x80) | ||
878 | strcpy(str, "LPe11002-S 4"); | ||
879 | else | ||
880 | strcpy(str, "LPe11000-S 4"); | ||
881 | break; | ||
846 | } | 882 | } |
847 | if (mdp) | 883 | if (mdp) |
848 | sscanf(str, "%s", mdp); | 884 | sscanf(str, "%s", mdp); |
@@ -1673,14 +1709,28 @@ static struct pci_device_id lpfc_id_table[] = { | |||
1673 | PCI_ANY_ID, PCI_ANY_ID, }, | 1709 | PCI_ANY_ID, PCI_ANY_ID, }, |
1674 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PFLY, | 1710 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_PFLY, |
1675 | PCI_ANY_ID, PCI_ANY_ID, }, | 1711 | PCI_ANY_ID, PCI_ANY_ID, }, |
1712 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_NEPTUNE, | ||
1713 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1714 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_NEPTUNE_SCSP, | ||
1715 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1716 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_NEPTUNE_DCSP, | ||
1717 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1676 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS, | 1718 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS, |
1677 | PCI_ANY_ID, PCI_ANY_ID, }, | 1719 | PCI_ANY_ID, PCI_ANY_ID, }, |
1720 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS_SCSP, | ||
1721 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1722 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_HELIOS_DCSP, | ||
1723 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1678 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BMID, | 1724 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BMID, |
1679 | PCI_ANY_ID, PCI_ANY_ID, }, | 1725 | PCI_ANY_ID, PCI_ANY_ID, }, |
1680 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BSMB, | 1726 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_BSMB, |
1681 | PCI_ANY_ID, PCI_ANY_ID, }, | 1727 | PCI_ANY_ID, PCI_ANY_ID, }, |
1682 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR, | 1728 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR, |
1683 | PCI_ANY_ID, PCI_ANY_ID, }, | 1729 | PCI_ANY_ID, PCI_ANY_ID, }, |
1730 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_SCSP, | ||
1731 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1732 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZEPHYR_DCSP, | ||
1733 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1684 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZMID, | 1734 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZMID, |
1685 | PCI_ANY_ID, PCI_ANY_ID, }, | 1735 | PCI_ANY_ID, PCI_ANY_ID, }, |
1686 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZSMB, | 1736 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_ZSMB, |
@@ -1691,6 +1741,10 @@ static struct pci_device_id lpfc_id_table[] = { | |||
1691 | PCI_ANY_ID, PCI_ANY_ID, }, | 1741 | PCI_ANY_ID, PCI_ANY_ID, }, |
1692 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP10000S, | 1742 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP10000S, |
1693 | PCI_ANY_ID, PCI_ANY_ID, }, | 1743 | PCI_ANY_ID, PCI_ANY_ID, }, |
1744 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LP11000S, | ||
1745 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1746 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LPE11000S, | ||
1747 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1694 | { 0 } | 1748 | { 0 } |
1695 | }; | 1749 | }; |
1696 | 1750 | ||