diff options
author | James Smart <James.Smart@Emulex.Com> | 2007-04-25 09:53:28 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-05-06 10:33:16 -0400 |
commit | b87eab38be141c16026cb830064d661ca705ad23 (patch) | |
tree | 28b32f1745316291dc17ecc16430adce696656fa /drivers/scsi/lpfc | |
parent | 47a8617c7df6cc8b8617a3deb5a36bbae1997d13 (diff) |
[SCSI] lpfc 8.1.12 : Added support for 8G speed and new HBAs
Added support for 8G speed and new HBAs.
Signed-off-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/lpfc')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_attr.c | 8 | ||||
-rw-r--r-- | drivers/scsi/lpfc/lpfc_ct.c | 3 | ||||
-rw-r--r-- | drivers/scsi/lpfc/lpfc_hbadisc.c | 3 | ||||
-rw-r--r-- | drivers/scsi/lpfc/lpfc_hw.h | 9 | ||||
-rw-r--r-- | drivers/scsi/lpfc/lpfc_init.c | 30 | ||||
-rw-r--r-- | drivers/scsi/lpfc/lpfc_mbox.c | 1 |
6 files changed, 51 insertions, 3 deletions
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c index 2605bd3502a9..4d547b3177fd 100644 --- a/drivers/scsi/lpfc/lpfc_attr.c +++ b/drivers/scsi/lpfc/lpfc_attr.c | |||
@@ -985,9 +985,10 @@ LPFC_ATTR_RW(topology, 0, 0, 6, "Select Fibre Channel topology"); | |||
985 | # 1 = 1 Gigabaud | 985 | # 1 = 1 Gigabaud |
986 | # 2 = 2 Gigabaud | 986 | # 2 = 2 Gigabaud |
987 | # 4 = 4 Gigabaud | 987 | # 4 = 4 Gigabaud |
988 | # Value range is [0,4]. Default value is 0. | 988 | # 8 = 8 Gigabaud |
989 | # Value range is [0,8]. Default value is 0. | ||
989 | */ | 990 | */ |
990 | LPFC_ATTR_R(link_speed, 0, 0, 4, "Select link speed"); | 991 | LPFC_ATTR_R(link_speed, 0, 0, 8, "Select link speed"); |
991 | 992 | ||
992 | /* | 993 | /* |
993 | # lpfc_fcp_class: Determines FC class to use for the FCP protocol. | 994 | # lpfc_fcp_class: Determines FC class to use for the FCP protocol. |
@@ -1559,6 +1560,9 @@ lpfc_get_host_speed(struct Scsi_Host *shost) | |||
1559 | case LA_4GHZ_LINK: | 1560 | case LA_4GHZ_LINK: |
1560 | fc_host_speed(shost) = FC_PORTSPEED_4GBIT; | 1561 | fc_host_speed(shost) = FC_PORTSPEED_4GBIT; |
1561 | break; | 1562 | break; |
1563 | case LA_8GHZ_LINK: | ||
1564 | fc_host_speed(shost) = FC_PORTSPEED_8GBIT; | ||
1565 | break; | ||
1562 | default: | 1566 | default: |
1563 | fc_host_speed(shost) = FC_PORTSPEED_UNKNOWN; | 1567 | fc_host_speed(shost) = FC_PORTSPEED_UNKNOWN; |
1564 | break; | 1568 | break; |
diff --git a/drivers/scsi/lpfc/lpfc_ct.c b/drivers/scsi/lpfc/lpfc_ct.c index af819885213d..fb821ae26dd4 100644 --- a/drivers/scsi/lpfc/lpfc_ct.c +++ b/drivers/scsi/lpfc/lpfc_ct.c | |||
@@ -1038,6 +1038,9 @@ lpfc_fdmi_cmd(struct lpfc_hba * phba, struct lpfc_nodelist * ndlp, int cmdcode) | |||
1038 | case LA_4GHZ_LINK: | 1038 | case LA_4GHZ_LINK: |
1039 | ae->un.PortSpeed = HBA_PORTSPEED_4GBIT; | 1039 | ae->un.PortSpeed = HBA_PORTSPEED_4GBIT; |
1040 | break; | 1040 | break; |
1041 | case LA_8GHZ_LINK: | ||
1042 | ae->un.PortSpeed = HBA_PORTSPEED_8GBIT; | ||
1043 | break; | ||
1041 | default: | 1044 | default: |
1042 | ae->un.PortSpeed = | 1045 | ae->un.PortSpeed = |
1043 | HBA_PORTSPEED_UNKNOWN; | 1046 | HBA_PORTSPEED_UNKNOWN; |
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index 0ebde2463005..3ba2a2db7fa7 100644 --- a/drivers/scsi/lpfc/lpfc_hbadisc.c +++ b/drivers/scsi/lpfc/lpfc_hbadisc.c | |||
@@ -723,6 +723,9 @@ lpfc_mbx_process_link_up(struct lpfc_hba *phba, READ_LA_VAR *la) | |||
723 | case LA_4GHZ_LINK: | 723 | case LA_4GHZ_LINK: |
724 | phba->fc_linkspeed = LA_4GHZ_LINK; | 724 | phba->fc_linkspeed = LA_4GHZ_LINK; |
725 | break; | 725 | break; |
726 | case LA_8GHZ_LINK: | ||
727 | phba->fc_linkspeed = LA_8GHZ_LINK; | ||
728 | break; | ||
726 | default: | 729 | default: |
727 | phba->fc_linkspeed = LA_UNKNW_LINK; | 730 | phba->fc_linkspeed = LA_UNKNW_LINK; |
728 | break; | 731 | break; |
diff --git a/drivers/scsi/lpfc/lpfc_hw.h b/drivers/scsi/lpfc/lpfc_hw.h index f79cb6136906..a06f95070208 100644 --- a/drivers/scsi/lpfc/lpfc_hw.h +++ b/drivers/scsi/lpfc/lpfc_hw.h | |||
@@ -1078,6 +1078,8 @@ typedef struct { | |||
1078 | /* Start FireFly Register definitions */ | 1078 | /* Start FireFly Register definitions */ |
1079 | #define PCI_VENDOR_ID_EMULEX 0x10df | 1079 | #define PCI_VENDOR_ID_EMULEX 0x10df |
1080 | #define PCI_DEVICE_ID_FIREFLY 0x1ae5 | 1080 | #define PCI_DEVICE_ID_FIREFLY 0x1ae5 |
1081 | #define PCI_DEVICE_ID_SAT_SMB 0xf011 | ||
1082 | #define PCI_DEVICE_ID_SAT_MID 0xf015 | ||
1081 | #define PCI_DEVICE_ID_RFLY 0xf095 | 1083 | #define PCI_DEVICE_ID_RFLY 0xf095 |
1082 | #define PCI_DEVICE_ID_PFLY 0xf098 | 1084 | #define PCI_DEVICE_ID_PFLY 0xf098 |
1083 | #define PCI_DEVICE_ID_LP101 0xf0a1 | 1085 | #define PCI_DEVICE_ID_LP101 0xf0a1 |
@@ -1089,6 +1091,9 @@ typedef struct { | |||
1089 | #define PCI_DEVICE_ID_NEPTUNE 0xf0f5 | 1091 | #define PCI_DEVICE_ID_NEPTUNE 0xf0f5 |
1090 | #define PCI_DEVICE_ID_NEPTUNE_SCSP 0xf0f6 | 1092 | #define PCI_DEVICE_ID_NEPTUNE_SCSP 0xf0f6 |
1091 | #define PCI_DEVICE_ID_NEPTUNE_DCSP 0xf0f7 | 1093 | #define PCI_DEVICE_ID_NEPTUNE_DCSP 0xf0f7 |
1094 | #define PCI_DEVICE_ID_SAT 0xf100 | ||
1095 | #define PCI_DEVICE_ID_SAT_SCSP 0xf111 | ||
1096 | #define PCI_DEVICE_ID_SAT_DCSP 0xf112 | ||
1092 | #define PCI_DEVICE_ID_SUPERFLY 0xf700 | 1097 | #define PCI_DEVICE_ID_SUPERFLY 0xf700 |
1093 | #define PCI_DEVICE_ID_DRAGONFLY 0xf800 | 1098 | #define PCI_DEVICE_ID_DRAGONFLY 0xf800 |
1094 | #define PCI_DEVICE_ID_CENTAUR 0xf900 | 1099 | #define PCI_DEVICE_ID_CENTAUR 0xf900 |
@@ -1098,6 +1103,7 @@ typedef struct { | |||
1098 | #define PCI_DEVICE_ID_LP10000S 0xfc00 | 1103 | #define PCI_DEVICE_ID_LP10000S 0xfc00 |
1099 | #define PCI_DEVICE_ID_LP11000S 0xfc10 | 1104 | #define PCI_DEVICE_ID_LP11000S 0xfc10 |
1100 | #define PCI_DEVICE_ID_LPE11000S 0xfc20 | 1105 | #define PCI_DEVICE_ID_LPE11000S 0xfc20 |
1106 | #define PCI_DEVICE_ID_SAT_S 0xfc40 | ||
1101 | #define PCI_DEVICE_ID_HELIOS 0xfd00 | 1107 | #define PCI_DEVICE_ID_HELIOS 0xfd00 |
1102 | #define PCI_DEVICE_ID_HELIOS_SCSP 0xfd11 | 1108 | #define PCI_DEVICE_ID_HELIOS_SCSP 0xfd11 |
1103 | #define PCI_DEVICE_ID_HELIOS_DCSP 0xfd12 | 1109 | #define PCI_DEVICE_ID_HELIOS_DCSP 0xfd12 |
@@ -1118,6 +1124,7 @@ typedef struct { | |||
1118 | #define HELIOS_JEDEC_ID 0x0364 | 1124 | #define HELIOS_JEDEC_ID 0x0364 |
1119 | #define ZEPHYR_JEDEC_ID 0x0577 | 1125 | #define ZEPHYR_JEDEC_ID 0x0577 |
1120 | #define VIPER_JEDEC_ID 0x4838 | 1126 | #define VIPER_JEDEC_ID 0x4838 |
1127 | #define SATURN_JEDEC_ID 0x1004 | ||
1121 | 1128 | ||
1122 | #define JEDEC_ID_MASK 0x0FFFF000 | 1129 | #define JEDEC_ID_MASK 0x0FFFF000 |
1123 | #define JEDEC_ID_SHIFT 12 | 1130 | #define JEDEC_ID_SHIFT 12 |
@@ -1565,7 +1572,7 @@ typedef struct { | |||
1565 | #define LINK_SPEED_1G 1 /* 1 Gigabaud */ | 1572 | #define LINK_SPEED_1G 1 /* 1 Gigabaud */ |
1566 | #define LINK_SPEED_2G 2 /* 2 Gigabaud */ | 1573 | #define LINK_SPEED_2G 2 /* 2 Gigabaud */ |
1567 | #define LINK_SPEED_4G 4 /* 4 Gigabaud */ | 1574 | #define LINK_SPEED_4G 4 /* 4 Gigabaud */ |
1568 | #define LINK_SPEED_8G 8 /* 4 Gigabaud */ | 1575 | #define LINK_SPEED_8G 8 /* 8 Gigabaud */ |
1569 | #define LINK_SPEED_10G 16 /* 10 Gigabaud */ | 1576 | #define LINK_SPEED_10G 16 /* 10 Gigabaud */ |
1570 | 1577 | ||
1571 | } INIT_LINK_VAR; | 1578 | } INIT_LINK_VAR; |
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index 7cb92c7531ba..6ad25da20a82 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c | |||
@@ -903,6 +903,24 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp) | |||
903 | m = (typeof(m)){"LPe11000-S", max_speed, | 903 | m = (typeof(m)){"LPe11000-S", max_speed, |
904 | "PCIe"}; | 904 | "PCIe"}; |
905 | break; | 905 | break; |
906 | case PCI_DEVICE_ID_SAT: | ||
907 | m = (typeof(m)){"LPe12000", max_speed, "PCIe"}; | ||
908 | break; | ||
909 | case PCI_DEVICE_ID_SAT_MID: | ||
910 | m = (typeof(m)){"LPe1250", max_speed, "PCIe"}; | ||
911 | break; | ||
912 | case PCI_DEVICE_ID_SAT_SMB: | ||
913 | m = (typeof(m)){"LPe121", max_speed, "PCIe"}; | ||
914 | break; | ||
915 | case PCI_DEVICE_ID_SAT_DCSP: | ||
916 | m = (typeof(m)){"LPe12002-SP", max_speed, "PCIe"}; | ||
917 | break; | ||
918 | case PCI_DEVICE_ID_SAT_SCSP: | ||
919 | m = (typeof(m)){"LPe12000-SP", max_speed, "PCIe"}; | ||
920 | break; | ||
921 | case PCI_DEVICE_ID_SAT_S: | ||
922 | m = (typeof(m)){"LPe12000-S", max_speed, "PCIe"}; | ||
923 | break; | ||
906 | default: | 924 | default: |
907 | m = (typeof(m)){ NULL }; | 925 | m = (typeof(m)){ NULL }; |
908 | break; | 926 | break; |
@@ -1889,6 +1907,18 @@ static struct pci_device_id lpfc_id_table[] = { | |||
1889 | PCI_ANY_ID, PCI_ANY_ID, }, | 1907 | PCI_ANY_ID, PCI_ANY_ID, }, |
1890 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LPE11000S, | 1908 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LPE11000S, |
1891 | PCI_ANY_ID, PCI_ANY_ID, }, | 1909 | PCI_ANY_ID, PCI_ANY_ID, }, |
1910 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT, | ||
1911 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1912 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_MID, | ||
1913 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1914 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_SMB, | ||
1915 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1916 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_DCSP, | ||
1917 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1918 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_SCSP, | ||
1919 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1920 | {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_S, | ||
1921 | PCI_ANY_ID, PCI_ANY_ID, }, | ||
1892 | { 0 } | 1922 | { 0 } |
1893 | }; | 1923 | }; |
1894 | 1924 | ||
diff --git a/drivers/scsi/lpfc/lpfc_mbox.c b/drivers/scsi/lpfc/lpfc_mbox.c index 4d016c2a1b26..76d8de7fe111 100644 --- a/drivers/scsi/lpfc/lpfc_mbox.c +++ b/drivers/scsi/lpfc/lpfc_mbox.c | |||
@@ -212,6 +212,7 @@ lpfc_init_link(struct lpfc_hba * phba, | |||
212 | case LINK_SPEED_1G: | 212 | case LINK_SPEED_1G: |
213 | case LINK_SPEED_2G: | 213 | case LINK_SPEED_2G: |
214 | case LINK_SPEED_4G: | 214 | case LINK_SPEED_4G: |
215 | case LINK_SPEED_8G: | ||
215 | mb->un.varInitLnk.link_flags |= | 216 | mb->un.varInitLnk.link_flags |= |
216 | FLAGS_LINK_SPEED; | 217 | FLAGS_LINK_SPEED; |
217 | mb->un.varInitLnk.link_speed = linkspeed; | 218 | mb->un.varInitLnk.link_speed = linkspeed; |