diff options
author | Krishna Gudipati <kgudipat@brocade.com> | 2010-03-05 22:38:17 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-03-07 02:42:04 -0500 |
commit | 25e2934c26f5efaea156c9fda4457d01a8bb44e1 (patch) | |
tree | 85329bd822e098c0a1b5fa1a29b4fc4fb4000f4d /drivers/scsi | |
parent | ca8b4327e405820966971236224db0e0724b5673 (diff) |
[SCSI] bfa: FCS and include file changes.
MS module did not invoke fdmi offline in all cases,
call fdmi offline when ms module receives a port offline,
so that fdmi offline is from one place in the ms module.
Make changes to handle 10G speed in the conversion routine.
Replaced the usage of bfa_adapter_attr_s struct with specific API's.
Signed-off-by: Krishna Gudipati <kgudipat@brocade.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/bfa/fabric.c | 8 | ||||
-rw-r--r-- | drivers/scsi/bfa/fcbuild.h | 6 | ||||
-rw-r--r-- | drivers/scsi/bfa/fdmi.c | 33 | ||||
-rw-r--r-- | drivers/scsi/bfa/include/defs/bfa_defs_status.h | 5 | ||||
-rw-r--r-- | drivers/scsi/bfa/ms.c | 5 |
5 files changed, 22 insertions, 35 deletions
diff --git a/drivers/scsi/bfa/fabric.c b/drivers/scsi/bfa/fabric.c index b4e05ad1b47e..8166e9745ec0 100644 --- a/drivers/scsi/bfa/fabric.c +++ b/drivers/scsi/bfa/fabric.c | |||
@@ -562,17 +562,15 @@ void | |||
562 | bfa_fcs_fabric_psymb_init(struct bfa_fcs_fabric_s *fabric) | 562 | bfa_fcs_fabric_psymb_init(struct bfa_fcs_fabric_s *fabric) |
563 | { | 563 | { |
564 | struct bfa_port_cfg_s *port_cfg = &fabric->bport.port_cfg; | 564 | struct bfa_port_cfg_s *port_cfg = &fabric->bport.port_cfg; |
565 | struct bfa_adapter_attr_s adapter_attr; | 565 | char model[BFA_ADAPTER_MODEL_NAME_LEN] = {0}; |
566 | struct bfa_fcs_driver_info_s *driver_info = &fabric->fcs->driver_info; | 566 | struct bfa_fcs_driver_info_s *driver_info = &fabric->fcs->driver_info; |
567 | 567 | ||
568 | bfa_os_memset((void *)&adapter_attr, 0, | 568 | bfa_ioc_get_adapter_model(&fabric->fcs->bfa->ioc, model); |
569 | sizeof(struct bfa_adapter_attr_s)); | ||
570 | bfa_ioc_get_adapter_attr(&fabric->fcs->bfa->ioc, &adapter_attr); | ||
571 | 569 | ||
572 | /* | 570 | /* |
573 | * Model name/number | 571 | * Model name/number |
574 | */ | 572 | */ |
575 | strncpy((char *)&port_cfg->sym_name, adapter_attr.model, | 573 | strncpy((char *)&port_cfg->sym_name, model, |
576 | BFA_FCS_PORT_SYMBNAME_MODEL_SZ); | 574 | BFA_FCS_PORT_SYMBNAME_MODEL_SZ); |
577 | strncat((char *)&port_cfg->sym_name, BFA_FCS_PORT_SYMBNAME_SEPARATOR, | 575 | strncat((char *)&port_cfg->sym_name, BFA_FCS_PORT_SYMBNAME_SEPARATOR, |
578 | sizeof(BFA_FCS_PORT_SYMBNAME_SEPARATOR)); | 576 | sizeof(BFA_FCS_PORT_SYMBNAME_SEPARATOR)); |
diff --git a/drivers/scsi/bfa/fcbuild.h b/drivers/scsi/bfa/fcbuild.h index 8fa7f270ef7b..981d98d542b9 100644 --- a/drivers/scsi/bfa/fcbuild.h +++ b/drivers/scsi/bfa/fcbuild.h | |||
@@ -72,6 +72,9 @@ fc_rpsc_operspeed_to_bfa_speed(enum fc_rpsc_op_speed_s speed) | |||
72 | case RPSC_OP_SPEED_8G: | 72 | case RPSC_OP_SPEED_8G: |
73 | return BFA_PPORT_SPEED_8GBPS; | 73 | return BFA_PPORT_SPEED_8GBPS; |
74 | 74 | ||
75 | case RPSC_OP_SPEED_10G: | ||
76 | return BFA_PPORT_SPEED_10GBPS; | ||
77 | |||
75 | default: | 78 | default: |
76 | return BFA_PPORT_SPEED_UNKNOWN; | 79 | return BFA_PPORT_SPEED_UNKNOWN; |
77 | } | 80 | } |
@@ -97,6 +100,9 @@ fc_bfa_speed_to_rpsc_operspeed(enum bfa_pport_speed op_speed) | |||
97 | case BFA_PPORT_SPEED_8GBPS: | 100 | case BFA_PPORT_SPEED_8GBPS: |
98 | return RPSC_OP_SPEED_8G; | 101 | return RPSC_OP_SPEED_8G; |
99 | 102 | ||
103 | case BFA_PPORT_SPEED_10GBPS: | ||
104 | return RPSC_OP_SPEED_10G; | ||
105 | |||
100 | default: | 106 | default: |
101 | return RPSC_OP_SPEED_NOT_EST; | 107 | return RPSC_OP_SPEED_NOT_EST; |
102 | } | 108 | } |
diff --git a/drivers/scsi/bfa/fdmi.c b/drivers/scsi/bfa/fdmi.c index 2c9e7132a368..8f17076d1a87 100644 --- a/drivers/scsi/bfa/fdmi.c +++ b/drivers/scsi/bfa/fdmi.c | |||
@@ -1114,36 +1114,23 @@ bfa_fcs_fdmi_get_hbaattr(struct bfa_fcs_port_fdmi_s *fdmi, | |||
1114 | { | 1114 | { |
1115 | struct bfa_fcs_port_s *port = fdmi->ms->port; | 1115 | struct bfa_fcs_port_s *port = fdmi->ms->port; |
1116 | struct bfa_fcs_driver_info_s *driver_info = &port->fcs->driver_info; | 1116 | struct bfa_fcs_driver_info_s *driver_info = &port->fcs->driver_info; |
1117 | struct bfa_adapter_attr_s adapter_attr; | ||
1118 | 1117 | ||
1119 | bfa_os_memset(hba_attr, 0, sizeof(struct bfa_fcs_fdmi_hba_attr_s)); | 1118 | bfa_os_memset(hba_attr, 0, sizeof(struct bfa_fcs_fdmi_hba_attr_s)); |
1120 | bfa_os_memset(&adapter_attr, 0, sizeof(struct bfa_adapter_attr_s)); | ||
1121 | 1119 | ||
1122 | bfa_ioc_get_adapter_attr(&port->fcs->bfa->ioc, &adapter_attr); | 1120 | bfa_ioc_get_adapter_manufacturer(&port->fcs->bfa->ioc, |
1123 | 1121 | hba_attr->manufacturer); | |
1124 | strncpy(hba_attr->manufacturer, adapter_attr.manufacturer, | 1122 | bfa_ioc_get_adapter_serial_num(&port->fcs->bfa->ioc, |
1125 | sizeof(adapter_attr.manufacturer)); | 1123 | hba_attr->serial_num); |
1126 | 1124 | bfa_ioc_get_adapter_model(&port->fcs->bfa->ioc, hba_attr->model); | |
1127 | strncpy(hba_attr->serial_num, adapter_attr.serial_num, | 1125 | bfa_ioc_get_adapter_model(&port->fcs->bfa->ioc, hba_attr->model_desc); |
1128 | sizeof(adapter_attr.serial_num)); | 1126 | bfa_ioc_get_pci_chip_rev(&port->fcs->bfa->ioc, hba_attr->hw_version); |
1129 | 1127 | bfa_ioc_get_adapter_optrom_ver(&port->fcs->bfa->ioc, | |
1130 | strncpy(hba_attr->model, adapter_attr.model, sizeof(hba_attr->model)); | 1128 | hba_attr->option_rom_ver); |
1131 | 1129 | bfa_ioc_get_adapter_fw_ver(&port->fcs->bfa->ioc, hba_attr->fw_version); | |
1132 | strncpy(hba_attr->model_desc, adapter_attr.model_descr, | ||
1133 | sizeof(hba_attr->model_desc)); | ||
1134 | |||
1135 | strncpy(hba_attr->hw_version, adapter_attr.hw_ver, | ||
1136 | sizeof(hba_attr->hw_version)); | ||
1137 | 1130 | ||
1138 | strncpy(hba_attr->driver_version, (char *)driver_info->version, | 1131 | strncpy(hba_attr->driver_version, (char *)driver_info->version, |
1139 | sizeof(hba_attr->driver_version)); | 1132 | sizeof(hba_attr->driver_version)); |
1140 | 1133 | ||
1141 | strncpy(hba_attr->option_rom_ver, adapter_attr.optrom_ver, | ||
1142 | sizeof(hba_attr->option_rom_ver)); | ||
1143 | |||
1144 | strncpy(hba_attr->fw_version, adapter_attr.fw_ver, | ||
1145 | sizeof(hba_attr->fw_version)); | ||
1146 | |||
1147 | strncpy(hba_attr->os_name, driver_info->host_os_name, | 1134 | strncpy(hba_attr->os_name, driver_info->host_os_name, |
1148 | sizeof(hba_attr->os_name)); | 1135 | sizeof(hba_attr->os_name)); |
1149 | 1136 | ||
diff --git a/drivers/scsi/bfa/include/defs/bfa_defs_status.h b/drivers/scsi/bfa/include/defs/bfa_defs_status.h index d8a74ebfe1ae..4374494bd566 100644 --- a/drivers/scsi/bfa/include/defs/bfa_defs_status.h +++ b/drivers/scsi/bfa/include/defs/bfa_defs_status.h | |||
@@ -213,7 +213,7 @@ enum bfa_status { | |||
213 | * loaded */ | 213 | * loaded */ |
214 | BFA_STATUS_CARD_TYPE_MISMATCH = 131, /* Card type mismatch */ | 214 | BFA_STATUS_CARD_TYPE_MISMATCH = 131, /* Card type mismatch */ |
215 | BFA_STATUS_BAD_ASICBLK = 132, /* Bad ASIC block */ | 215 | BFA_STATUS_BAD_ASICBLK = 132, /* Bad ASIC block */ |
216 | BFA_STATUS_NO_DRIVER = 133, /* Storage/Ethernet driver not loaded */ | 216 | BFA_STATUS_NO_DRIVER = 133, /* Brocade adapter/driver not installed or loaded */ |
217 | BFA_STATUS_INVALID_MAC = 134, /* Invalid mac address */ | 217 | BFA_STATUS_INVALID_MAC = 134, /* Invalid mac address */ |
218 | BFA_STATUS_IM_NO_VLAN = 135, /* No VLANs configured on the adapter */ | 218 | BFA_STATUS_IM_NO_VLAN = 135, /* No VLANs configured on the adapter */ |
219 | BFA_STATUS_IM_ETH_LB_FAILED = 136, /* Ethernet loopback test failed */ | 219 | BFA_STATUS_IM_ETH_LB_FAILED = 136, /* Ethernet loopback test failed */ |
@@ -228,8 +228,7 @@ enum bfa_status { | |||
228 | BFA_STATUS_IM_GET_INETCFG_FAILED = 142, /* Acquiring Network Subsytem | 228 | BFA_STATUS_IM_GET_INETCFG_FAILED = 142, /* Acquiring Network Subsytem |
229 | * handle Failed. Please try | 229 | * handle Failed. Please try |
230 | * after some time */ | 230 | * after some time */ |
231 | BFA_STATUS_IM_NOT_BOUND = 143, /* Brocade 10G Ethernet Service is not | 231 | BFA_STATUS_IM_NOT_BOUND = 143, /* IM driver is not active */ |
232 | * Enabled on this port */ | ||
233 | BFA_STATUS_INSUFFICIENT_PERMS = 144, /* User doesn't have sufficient | 232 | BFA_STATUS_INSUFFICIENT_PERMS = 144, /* User doesn't have sufficient |
234 | * permissions to execute the BCU | 233 | * permissions to execute the BCU |
235 | * application */ | 234 | * application */ |
diff --git a/drivers/scsi/bfa/ms.c b/drivers/scsi/bfa/ms.c index e6db5fd301f2..5e8c8dee6c97 100644 --- a/drivers/scsi/bfa/ms.c +++ b/drivers/scsi/bfa/ms.c | |||
@@ -230,10 +230,6 @@ bfa_fcs_port_ms_sm_online(struct bfa_fcs_port_ms_s *ms, | |||
230 | switch (event) { | 230 | switch (event) { |
231 | case MSSM_EVENT_PORT_OFFLINE: | 231 | case MSSM_EVENT_PORT_OFFLINE: |
232 | bfa_sm_set_state(ms, bfa_fcs_port_ms_sm_offline); | 232 | bfa_sm_set_state(ms, bfa_fcs_port_ms_sm_offline); |
233 | /* | ||
234 | * now invoke MS related sub-modules | ||
235 | */ | ||
236 | bfa_fcs_port_fdmi_offline(ms); | ||
237 | break; | 233 | break; |
238 | 234 | ||
239 | case MSSM_EVENT_PORT_FABRIC_RSCN: | 235 | case MSSM_EVENT_PORT_FABRIC_RSCN: |
@@ -735,6 +731,7 @@ bfa_fcs_port_ms_offline(struct bfa_fcs_port_s *port) | |||
735 | 731 | ||
736 | ms->port = port; | 732 | ms->port = port; |
737 | bfa_sm_send_event(ms, MSSM_EVENT_PORT_OFFLINE); | 733 | bfa_sm_send_event(ms, MSSM_EVENT_PORT_OFFLINE); |
734 | bfa_fcs_port_fdmi_offline(ms); | ||
738 | } | 735 | } |
739 | 736 | ||
740 | void | 737 | void |