diff options
author | James Smart <James.Smart@Emulex.Com> | 2006-12-02 13:35:08 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-12-03 10:33:27 -0500 |
commit | 18a3b5966611b1d6f539e3e0bf863ad13a44dd45 (patch) | |
tree | d0fa72dbdd2141993ff21f72d253942f9f61870c /drivers/scsi/lpfc/lpfc_init.c | |
parent | 4ff43246e45943200ae3233732adf8708c2faef6 (diff) |
[SCSI] lpfc 8.1.11 : Removed decoding of PCI Subsystem Id
To avoid continually updating the driver for new subsystem ids
(as adapter modules are proliferating), remove this 2nd level decode.
Genericize the reported Adapter names to be consistent across
Emulex product line.
Signed-off-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_init.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_init.c | 113 |
1 files changed, 35 insertions, 78 deletions
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 | /**************************************************/ |