Skip to content

Commit

Permalink
[SCSI] bfa: FCS and include file changes.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Krishna Gudipati authored and James Bottomley committed Mar 7, 2010
1 parent ca8b432 commit 25e2934
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 35 deletions.
8 changes: 3 additions & 5 deletions drivers/scsi/bfa/fabric.c
Original file line number Diff line number Diff line change
Expand Up @@ -562,17 +562,15 @@ void
bfa_fcs_fabric_psymb_init(struct bfa_fcs_fabric_s *fabric)
{
struct bfa_port_cfg_s *port_cfg = &fabric->bport.port_cfg;
struct bfa_adapter_attr_s adapter_attr;
char model[BFA_ADAPTER_MODEL_NAME_LEN] = {0};
struct bfa_fcs_driver_info_s *driver_info = &fabric->fcs->driver_info;

bfa_os_memset((void *)&adapter_attr, 0,
sizeof(struct bfa_adapter_attr_s));
bfa_ioc_get_adapter_attr(&fabric->fcs->bfa->ioc, &adapter_attr);
bfa_ioc_get_adapter_model(&fabric->fcs->bfa->ioc, model);

/*
* Model name/number
*/
strncpy((char *)&port_cfg->sym_name, adapter_attr.model,
strncpy((char *)&port_cfg->sym_name, model,
BFA_FCS_PORT_SYMBNAME_MODEL_SZ);
strncat((char *)&port_cfg->sym_name, BFA_FCS_PORT_SYMBNAME_SEPARATOR,
sizeof(BFA_FCS_PORT_SYMBNAME_SEPARATOR));
Expand Down
6 changes: 6 additions & 0 deletions drivers/scsi/bfa/fcbuild.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ fc_rpsc_operspeed_to_bfa_speed(enum fc_rpsc_op_speed_s speed)
case RPSC_OP_SPEED_8G:
return BFA_PPORT_SPEED_8GBPS;

case RPSC_OP_SPEED_10G:
return BFA_PPORT_SPEED_10GBPS;

default:
return BFA_PPORT_SPEED_UNKNOWN;
}
Expand All @@ -97,6 +100,9 @@ fc_bfa_speed_to_rpsc_operspeed(enum bfa_pport_speed op_speed)
case BFA_PPORT_SPEED_8GBPS:
return RPSC_OP_SPEED_8G;

case BFA_PPORT_SPEED_10GBPS:
return RPSC_OP_SPEED_10G;

default:
return RPSC_OP_SPEED_NOT_EST;
}
Expand Down
33 changes: 10 additions & 23 deletions drivers/scsi/bfa/fdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1114,36 +1114,23 @@ bfa_fcs_fdmi_get_hbaattr(struct bfa_fcs_port_fdmi_s *fdmi,
{
struct bfa_fcs_port_s *port = fdmi->ms->port;
struct bfa_fcs_driver_info_s *driver_info = &port->fcs->driver_info;
struct bfa_adapter_attr_s adapter_attr;

bfa_os_memset(hba_attr, 0, sizeof(struct bfa_fcs_fdmi_hba_attr_s));
bfa_os_memset(&adapter_attr, 0, sizeof(struct bfa_adapter_attr_s));

bfa_ioc_get_adapter_attr(&port->fcs->bfa->ioc, &adapter_attr);

strncpy(hba_attr->manufacturer, adapter_attr.manufacturer,
sizeof(adapter_attr.manufacturer));

strncpy(hba_attr->serial_num, adapter_attr.serial_num,
sizeof(adapter_attr.serial_num));

strncpy(hba_attr->model, adapter_attr.model, sizeof(hba_attr->model));

strncpy(hba_attr->model_desc, adapter_attr.model_descr,
sizeof(hba_attr->model_desc));

strncpy(hba_attr->hw_version, adapter_attr.hw_ver,
sizeof(hba_attr->hw_version));
bfa_ioc_get_adapter_manufacturer(&port->fcs->bfa->ioc,
hba_attr->manufacturer);
bfa_ioc_get_adapter_serial_num(&port->fcs->bfa->ioc,
hba_attr->serial_num);
bfa_ioc_get_adapter_model(&port->fcs->bfa->ioc, hba_attr->model);
bfa_ioc_get_adapter_model(&port->fcs->bfa->ioc, hba_attr->model_desc);
bfa_ioc_get_pci_chip_rev(&port->fcs->bfa->ioc, hba_attr->hw_version);
bfa_ioc_get_adapter_optrom_ver(&port->fcs->bfa->ioc,
hba_attr->option_rom_ver);
bfa_ioc_get_adapter_fw_ver(&port->fcs->bfa->ioc, hba_attr->fw_version);

strncpy(hba_attr->driver_version, (char *)driver_info->version,
sizeof(hba_attr->driver_version));

strncpy(hba_attr->option_rom_ver, adapter_attr.optrom_ver,
sizeof(hba_attr->option_rom_ver));

strncpy(hba_attr->fw_version, adapter_attr.fw_ver,
sizeof(hba_attr->fw_version));

strncpy(hba_attr->os_name, driver_info->host_os_name,
sizeof(hba_attr->os_name));

Expand Down
5 changes: 2 additions & 3 deletions drivers/scsi/bfa/include/defs/bfa_defs_status.h
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ enum bfa_status {
* loaded */
BFA_STATUS_CARD_TYPE_MISMATCH = 131, /* Card type mismatch */
BFA_STATUS_BAD_ASICBLK = 132, /* Bad ASIC block */
BFA_STATUS_NO_DRIVER = 133, /* Storage/Ethernet driver not loaded */
BFA_STATUS_NO_DRIVER = 133, /* Brocade adapter/driver not installed or loaded */
BFA_STATUS_INVALID_MAC = 134, /* Invalid mac address */
BFA_STATUS_IM_NO_VLAN = 135, /* No VLANs configured on the adapter */
BFA_STATUS_IM_ETH_LB_FAILED = 136, /* Ethernet loopback test failed */
Expand All @@ -228,8 +228,7 @@ enum bfa_status {
BFA_STATUS_IM_GET_INETCFG_FAILED = 142, /* Acquiring Network Subsytem
* handle Failed. Please try
* after some time */
BFA_STATUS_IM_NOT_BOUND = 143, /* Brocade 10G Ethernet Service is not
* Enabled on this port */
BFA_STATUS_IM_NOT_BOUND = 143, /* IM driver is not active */
BFA_STATUS_INSUFFICIENT_PERMS = 144, /* User doesn't have sufficient
* permissions to execute the BCU
* application */
Expand Down
5 changes: 1 addition & 4 deletions drivers/scsi/bfa/ms.c
Original file line number Diff line number Diff line change
Expand Up @@ -230,10 +230,6 @@ bfa_fcs_port_ms_sm_online(struct bfa_fcs_port_ms_s *ms,
switch (event) {
case MSSM_EVENT_PORT_OFFLINE:
bfa_sm_set_state(ms, bfa_fcs_port_ms_sm_offline);
/*
* now invoke MS related sub-modules
*/
bfa_fcs_port_fdmi_offline(ms);
break;

case MSSM_EVENT_PORT_FABRIC_RSCN:
Expand Down Expand Up @@ -735,6 +731,7 @@ bfa_fcs_port_ms_offline(struct bfa_fcs_port_s *port)

ms->port = port;
bfa_sm_send_event(ms, MSSM_EVENT_PORT_OFFLINE);
bfa_fcs_port_fdmi_offline(ms);
}

void
Expand Down

0 comments on commit 25e2934

Please sign in to comment.