aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/lpfc/lpfc_init.c26
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");