aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/lpfc/lpfc_hw.h6
-rw-r--r--drivers/scsi/lpfc/lpfc_init.c113
2 files changed, 35 insertions, 84 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hw.h b/drivers/scsi/lpfc/lpfc_hw.h
index 0d08a50ca41e..3ba1ee4ace9a 100644
--- a/drivers/scsi/lpfc/lpfc_hw.h
+++ b/drivers/scsi/lpfc/lpfc_hw.h
@@ -1105,12 +1105,6 @@ typedef struct {
1105#define PCI_DEVICE_ID_ZEPHYR_SCSP 0xfe11 1105#define PCI_DEVICE_ID_ZEPHYR_SCSP 0xfe11
1106#define PCI_DEVICE_ID_ZEPHYR_DCSP 0xfe12 1106#define PCI_DEVICE_ID_ZEPHYR_DCSP 0xfe12
1107 1107
1108#define PCI_SUBSYSTEM_ID_LP11000S 0xfc11
1109#define PCI_SUBSYSTEM_ID_LP11002S 0xfc12
1110#define PCI_SUBSYSTEM_ID_LPE11000S 0xfc21
1111#define PCI_SUBSYSTEM_ID_LPE11002S 0xfc22
1112#define PCI_SUBSYSTEM_ID_LPE11010S 0xfc2A
1113
1114#define JEDEC_ID_ADDRESS 0x0080001c 1108#define JEDEC_ID_ADDRESS 0x0080001c
1115#define FIREFLY_JEDEC_ID 0x1ACC 1109#define FIREFLY_JEDEC_ID 0x1ACC
1116#define SUPERFLY_JEDEC_ID 0x0020 1110#define SUPERFLY_JEDEC_ID 0x0020
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 71ee0cd32216..b872519e2ced 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -804,19 +804,13 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp)
804{ 804{
805 lpfc_vpd_t *vp; 805 lpfc_vpd_t *vp;
806 uint16_t dev_id = phba->pcidev->device; 806 uint16_t dev_id = phba->pcidev->device;
807 uint16_t dev_subid = phba->pcidev->subsystem_device;
808 uint8_t hdrtype;
809 int max_speed; 807 int max_speed;
810 char * ports;
811 struct { 808 struct {
812 char * name; 809 char * name;
813 int max_speed; 810 int max_speed;
814 char * ports;
815 char * bus; 811 char * bus;
816 } m = {"<Unknown>", 0, "", ""}; 812 } m = {"<Unknown>", 0, ""};
817 813
818 pci_read_config_byte(phba->pcidev, PCI_HEADER_TYPE, &hdrtype);
819 ports = (hdrtype == 0x80) ? "2-port " : "";
820 if (mdp && mdp[0] != '\0' 814 if (mdp && mdp[0] != '\0'
821 && descp && descp[0] != '\0') 815 && descp && descp[0] != '\0')
822 return; 816 return;
@@ -836,130 +830,93 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp)
836 830
837 switch (dev_id) { 831 switch (dev_id) {
838 case PCI_DEVICE_ID_FIREFLY: 832 case PCI_DEVICE_ID_FIREFLY:
839 m = (typeof(m)){"LP6000", max_speed, "", "PCI"}; 833 m = (typeof(m)){"LP6000", max_speed, "PCI"};
840 break; 834 break;
841 case PCI_DEVICE_ID_SUPERFLY: 835 case PCI_DEVICE_ID_SUPERFLY:
842 if (vp->rev.biuRev >= 1 && vp->rev.biuRev <= 3) 836 if (vp->rev.biuRev >= 1 && vp->rev.biuRev <= 3)
843 m = (typeof(m)){"LP7000", max_speed, "", "PCI"}; 837 m = (typeof(m)){"LP7000", max_speed, "PCI"};
844 else 838 else
845 m = (typeof(m)){"LP7000E", max_speed, "", "PCI"}; 839 m = (typeof(m)){"LP7000E", max_speed, "PCI"};
846 break; 840 break;
847 case PCI_DEVICE_ID_DRAGONFLY: 841 case PCI_DEVICE_ID_DRAGONFLY:
848 m = (typeof(m)){"LP8000", max_speed, "", "PCI"}; 842 m = (typeof(m)){"LP8000", max_speed, "PCI"};
849 break; 843 break;
850 case PCI_DEVICE_ID_CENTAUR: 844 case PCI_DEVICE_ID_CENTAUR:
851 if (FC_JEDEC_ID(vp->rev.biuRev) == CENTAUR_2G_JEDEC_ID) 845 if (FC_JEDEC_ID(vp->rev.biuRev) == CENTAUR_2G_JEDEC_ID)
852 m = (typeof(m)){"LP9002", max_speed, "", "PCI"}; 846 m = (typeof(m)){"LP9002", max_speed, "PCI"};
853 else 847 else
854 m = (typeof(m)){"LP9000", max_speed, "", "PCI"}; 848 m = (typeof(m)){"LP9000", max_speed, "PCI"};
855 break; 849 break;
856 case PCI_DEVICE_ID_RFLY: 850 case PCI_DEVICE_ID_RFLY:
857 m = (typeof(m)){"LP952", max_speed, "", "PCI"}; 851 m = (typeof(m)){"LP952", max_speed, "PCI"};
858 break; 852 break;
859 case PCI_DEVICE_ID_PEGASUS: 853 case PCI_DEVICE_ID_PEGASUS:
860 m = (typeof(m)){"LP9802", max_speed, "", "PCI-X"}; 854 m = (typeof(m)){"LP9802", max_speed, "PCI-X"};
861 break; 855 break;
862 case PCI_DEVICE_ID_THOR: 856 case PCI_DEVICE_ID_THOR:
863 if (hdrtype == 0x80) 857 m = (typeof(m)){"LP10000", max_speed, "PCI-X"};
864 m = (typeof(m)){"LP10000DC",
865 max_speed, ports, "PCI-X"};
866 else
867 m = (typeof(m)){"LP10000",
868 max_speed, ports, "PCI-X"};
869 break; 858 break;
870 case PCI_DEVICE_ID_VIPER: 859 case PCI_DEVICE_ID_VIPER:
871 m = (typeof(m)){"LPX1000", max_speed, "", "PCI-X"}; 860 m = (typeof(m)){"LPX1000", max_speed, "PCI-X"};
872 break; 861 break;
873 case PCI_DEVICE_ID_PFLY: 862 case PCI_DEVICE_ID_PFLY:
874 m = (typeof(m)){"LP982", max_speed, "", "PCI-X"}; 863 m = (typeof(m)){"LP982", max_speed, "PCI-X"};
875 break; 864 break;
876 case PCI_DEVICE_ID_TFLY: 865 case PCI_DEVICE_ID_TFLY:
877 if (hdrtype == 0x80) 866 m = (typeof(m)){"LP1050", max_speed, "PCI-X"};
878 m = (typeof(m)){"LP1050DC", max_speed, ports, "PCI-X"};
879 else
880 m = (typeof(m)){"LP1050", max_speed, ports, "PCI-X"};
881 break; 867 break;
882 case PCI_DEVICE_ID_HELIOS: 868 case PCI_DEVICE_ID_HELIOS:
883 if (hdrtype == 0x80) 869 m = (typeof(m)){"LP11000", max_speed, "PCI-X2"};
884 m = (typeof(m)){"LP11002", max_speed, ports, "PCI-X2"};
885 else
886 m = (typeof(m)){"LP11000", max_speed, ports, "PCI-X2"};
887 break; 870 break;
888 case PCI_DEVICE_ID_HELIOS_SCSP: 871 case PCI_DEVICE_ID_HELIOS_SCSP:
889 m = (typeof(m)){"LP11000-SP", max_speed, ports, "PCI-X2"}; 872 m = (typeof(m)){"LP11000-SP", max_speed, "PCI-X2"};
890 break; 873 break;
891 case PCI_DEVICE_ID_HELIOS_DCSP: 874 case PCI_DEVICE_ID_HELIOS_DCSP:
892 m = (typeof(m)){"LP11002-SP", max_speed, ports, "PCI-X2"}; 875 m = (typeof(m)){"LP11002-SP", max_speed, "PCI-X2"};
893 break; 876 break;
894 case PCI_DEVICE_ID_NEPTUNE: 877 case PCI_DEVICE_ID_NEPTUNE:
895 if (hdrtype == 0x80) 878 m = (typeof(m)){"LPe1000", max_speed, "PCIe"};
896 m = (typeof(m)){"LPe1002", max_speed, ports, "PCIe"};
897 else
898 m = (typeof(m)){"LPe1000", max_speed, ports, "PCIe"};
899 break; 879 break;
900 case PCI_DEVICE_ID_NEPTUNE_SCSP: 880 case PCI_DEVICE_ID_NEPTUNE_SCSP:
901 m = (typeof(m)){"LPe1000-SP", max_speed, ports, "PCIe"}; 881 m = (typeof(m)){"LPe1000-SP", max_speed, "PCIe"};
902 break; 882 break;
903 case PCI_DEVICE_ID_NEPTUNE_DCSP: 883 case PCI_DEVICE_ID_NEPTUNE_DCSP:
904 m = (typeof(m)){"LPe1002-SP", max_speed, ports, "PCIe"}; 884 m = (typeof(m)){"LPe1002-SP", max_speed, "PCIe"};
905 break; 885 break;
906 case PCI_DEVICE_ID_BMID: 886 case PCI_DEVICE_ID_BMID:
907 m = (typeof(m)){"LP1150", max_speed, ports, "PCI-X2"}; 887 m = (typeof(m)){"LP1150", max_speed, "PCI-X2"};
908 break; 888 break;
909 case PCI_DEVICE_ID_BSMB: 889 case PCI_DEVICE_ID_BSMB:
910 m = (typeof(m)){"LP111", max_speed, ports, "PCI-X2"}; 890 m = (typeof(m)){"LP111", max_speed, "PCI-X2"};
911 break; 891 break;
912 case PCI_DEVICE_ID_ZEPHYR: 892 case PCI_DEVICE_ID_ZEPHYR:
913 if (hdrtype == 0x80) 893 m = (typeof(m)){"LPe11000", max_speed, "PCIe"};
914 m = (typeof(m)){"LPe11002", max_speed, ports, "PCIe"};
915 else
916 m = (typeof(m)){"LPe11000", max_speed, ports, "PCIe"};
917 break; 894 break;
918 case PCI_DEVICE_ID_ZEPHYR_SCSP: 895 case PCI_DEVICE_ID_ZEPHYR_SCSP:
919 m = (typeof(m)){"LPe11000", max_speed, ports, "PCIe"}; 896 m = (typeof(m)){"LPe11000", max_speed, "PCIe"};
920 break; 897 break;
921 case PCI_DEVICE_ID_ZEPHYR_DCSP: 898 case PCI_DEVICE_ID_ZEPHYR_DCSP:
922 m = (typeof(m)){"LPe11002-SP", max_speed, ports, "PCIe"}; 899 m = (typeof(m)){"LPe11002-SP", max_speed, "PCIe"};
923 break; 900 break;
924 case PCI_DEVICE_ID_ZMID: 901 case PCI_DEVICE_ID_ZMID:
925 m = (typeof(m)){"LPe1150", max_speed, ports, "PCIe"}; 902 m = (typeof(m)){"LPe1150", max_speed, "PCIe"};
926 break; 903 break;
927 case PCI_DEVICE_ID_ZSMB: 904 case PCI_DEVICE_ID_ZSMB:
928 m = (typeof(m)){"LPe111", max_speed, ports, "PCIe"}; 905 m = (typeof(m)){"LPe111", max_speed, "PCIe"};
929 break; 906 break;
930 case PCI_DEVICE_ID_LP101: 907 case PCI_DEVICE_ID_LP101:
931 m = (typeof(m)){"LP101", max_speed, ports, "PCI-X"}; 908 m = (typeof(m)){"LP101", max_speed, "PCI-X"};
932 break; 909 break;
933 case PCI_DEVICE_ID_LP10000S: 910 case PCI_DEVICE_ID_LP10000S:
934 m = (typeof(m)){"LP10000-S", max_speed, ports, "PCI"}; 911 m = (typeof(m)){"LP10000-S", max_speed, "PCI"};
935 break; 912 break;
936 case PCI_DEVICE_ID_LP11000S: 913 case PCI_DEVICE_ID_LP11000S:
914 m = (typeof(m)){"LP11000-S", max_speed,
915 "PCI-X2"};
916 break;
937 case PCI_DEVICE_ID_LPE11000S: 917 case PCI_DEVICE_ID_LPE11000S:
938 switch (dev_subid) { 918 m = (typeof(m)){"LPe11000-S", max_speed,
939 case PCI_SUBSYSTEM_ID_LP11000S: 919 "PCIe"};
940 m = (typeof(m)){"LP11000-S", max_speed,
941 ports, "PCI-X2"};
942 break;
943 case PCI_SUBSYSTEM_ID_LP11002S:
944 m = (typeof(m)){"LP11002-S", max_speed,
945 ports, "PCI-X2"};
946 break;
947 case PCI_SUBSYSTEM_ID_LPE11000S:
948 m = (typeof(m)){"LPe11000-S", max_speed,
949 ports, "PCIe"};
950 break;
951 case PCI_SUBSYSTEM_ID_LPE11002S:
952 m = (typeof(m)){"LPe11002-S", max_speed,
953 ports, "PCIe"};
954 break;
955 case PCI_SUBSYSTEM_ID_LPE11010S:
956 m = (typeof(m)){"LPe11010-S", max_speed,
957 "10-port ", "PCIe"};
958 break;
959 default:
960 m = (typeof(m)){ NULL };
961 break;
962 }
963 break; 920 break;
964 default: 921 default:
965 m = (typeof(m)){ NULL }; 922 m = (typeof(m)){ NULL };
@@ -970,8 +927,8 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp)
970 snprintf(mdp, 79,"%s", m.name); 927 snprintf(mdp, 79,"%s", m.name);
971 if (descp && descp[0] == '\0') 928 if (descp && descp[0] == '\0')
972 snprintf(descp, 255, 929 snprintf(descp, 255,
973 "Emulex %s %dGb %s%s Fibre Channel Adapter", 930 "Emulex %s %dGb %s Fibre Channel Adapter",
974 m.name, m.max_speed, m.ports, m.bus); 931 m.name, m.max_speed, m.bus);
975} 932}
976 933
977/**************************************************/ 934/**************************************************/