diff options
-rw-r--r-- | drivers/scsi/lpfc/lpfc_init.c | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index 25d55f40424f..ba4573912c02 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c | |||
@@ -766,10 +766,12 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp) | |||
766 | { | 766 | { |
767 | lpfc_vpd_t *vp; | 767 | lpfc_vpd_t *vp; |
768 | uint32_t id; | 768 | uint32_t id; |
769 | uint8_t hdrtype; | ||
769 | char str[16]; | 770 | char str[16]; |
770 | 771 | ||
771 | vp = &phba->vpd; | 772 | vp = &phba->vpd; |
772 | pci_read_config_dword(phba->pcidev, PCI_VENDOR_ID, &id); | 773 | pci_read_config_dword(phba->pcidev, PCI_VENDOR_ID, &id); |
774 | pci_read_config_byte(phba->pcidev, PCI_HEADER_TYPE, &hdrtype); | ||
773 | 775 | ||
774 | switch ((id >> 16) & 0xffff) { | 776 | switch ((id >> 16) & 0xffff) { |
775 | case PCI_DEVICE_ID_FIREFLY: | 777 | case PCI_DEVICE_ID_FIREFLY: |
@@ -797,7 +799,10 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp) | |||
797 | strcpy(str, "LP9802 2"); | 799 | strcpy(str, "LP9802 2"); |
798 | break; | 800 | break; |
799 | case PCI_DEVICE_ID_THOR: | 801 | case PCI_DEVICE_ID_THOR: |
800 | strcpy(str, "LP10000 2"); | 802 | if (hdrtype == 0x80) |
803 | strcpy(str, "LP10000DC 2"); | ||
804 | else | ||
805 | strcpy(str, "LP10000 2"); | ||
801 | break; | 806 | break; |
802 | case PCI_DEVICE_ID_VIPER: | 807 | case PCI_DEVICE_ID_VIPER: |
803 | strcpy(str, "LPX1000 10"); | 808 | strcpy(str, "LPX1000 10"); |
@@ -806,10 +811,16 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp) | |||
806 | strcpy(str, "LP982 2"); | 811 | strcpy(str, "LP982 2"); |
807 | break; | 812 | break; |
808 | case PCI_DEVICE_ID_TFLY: | 813 | case PCI_DEVICE_ID_TFLY: |
809 | strcpy(str, "LP1050 2"); | 814 | if (hdrtype == 0x80) |
815 | strcpy(str, "LP1050DC 2"); | ||
816 | else | ||
817 | strcpy(str, "LP1050 2"); | ||
810 | break; | 818 | break; |
811 | case PCI_DEVICE_ID_HELIOS: | 819 | case PCI_DEVICE_ID_HELIOS: |
812 | strcpy(str, "LP11000 4"); | 820 | if (hdrtype == 0x80) |
821 | strcpy(str, "LP11002 4"); | ||
822 | else | ||
823 | strcpy(str, "LP11000 4"); | ||
813 | break; | 824 | break; |
814 | case PCI_DEVICE_ID_BMID: | 825 | case PCI_DEVICE_ID_BMID: |
815 | strcpy(str, "LP1150 4"); | 826 | strcpy(str, "LP1150 4"); |
@@ -818,13 +829,16 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp) | |||
818 | strcpy(str, "LP111 4"); | 829 | strcpy(str, "LP111 4"); |
819 | break; | 830 | break; |
820 | case PCI_DEVICE_ID_ZEPHYR: | 831 | case PCI_DEVICE_ID_ZEPHYR: |
821 | strcpy(str, "LP11000e 4"); | 832 | if (hdrtype == 0x80) |
833 | strcpy(str, "LPe11002 4"); | ||
834 | else | ||
835 | strcpy(str, "LPe11000 4"); | ||
822 | break; | 836 | break; |
823 | case PCI_DEVICE_ID_ZMID: | 837 | case PCI_DEVICE_ID_ZMID: |
824 | strcpy(str, "LP1150e 4"); | 838 | strcpy(str, "LPe1150 4"); |
825 | break; | 839 | break; |
826 | case PCI_DEVICE_ID_ZSMB: | 840 | case PCI_DEVICE_ID_ZSMB: |
827 | strcpy(str, "LP111e 4"); | 841 | strcpy(str, "LPe111 4"); |
828 | break; | 842 | break; |
829 | case PCI_DEVICE_ID_LP101: | 843 | case PCI_DEVICE_ID_LP101: |
830 | strcpy(str, "LP101 2"); | 844 | strcpy(str, "LP101 2"); |