> On Sep 2, 2020, at 2:25 AM, Nilesh Javali <njavali@xxxxxxxxxxx> wrote: > > From: Quinn Tran <qutran@xxxxxxxxxxx> > > Indicate correct speed for 16G Mezz card. > > Signed-off-by: Quinn Tran <qutran@xxxxxxxxxxx> > Signed-off-by: Nilesh Javali <njavali@xxxxxxxxxxx> > --- > drivers/scsi/qla2xxx/qla_attr.c | 41 +------------- > drivers/scsi/qla2xxx/qla_gbl.h | 2 + > drivers/scsi/qla2xxx/qla_gs.c | 7 +-- > drivers/scsi/qla2xxx/qla_os.c | 96 +-------------------------------- > 4 files changed, 9 insertions(+), 137 deletions(-) > > diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c > index 5d93ccc73153..d006ae193677 100644 > --- a/drivers/scsi/qla2xxx/qla_attr.c > +++ b/drivers/scsi/qla2xxx/qla_attr.c > @@ -3214,46 +3214,7 @@ qla2x00_init_host_attr(scsi_qla_host_t *vha) > fc_host_max_npiv_vports(vha->host) = ha->max_npiv_vports; > fc_host_npiv_vports_inuse(vha->host) = ha->cur_vport_count; > > - if (IS_CNA_CAPABLE(ha)) > - speeds = FC_PORTSPEED_10GBIT; > - else if (IS_QLA28XX(ha) || IS_QLA27XX(ha)) { > - if (ha->max_supported_speed == 2) { > - if (ha->min_supported_speed <= 6) > - speeds |= FC_PORTSPEED_64GBIT; > - } > - if (ha->max_supported_speed == 2 || > - ha->max_supported_speed == 1) { > - if (ha->min_supported_speed <= 5) > - speeds |= FC_PORTSPEED_32GBIT; > - } > - if (ha->max_supported_speed == 2 || > - ha->max_supported_speed == 1 || > - ha->max_supported_speed == 0) { > - if (ha->min_supported_speed <= 4) > - speeds |= FC_PORTSPEED_16GBIT; > - } > - if (ha->max_supported_speed == 1 || > - ha->max_supported_speed == 0) { > - if (ha->min_supported_speed <= 3) > - speeds |= FC_PORTSPEED_8GBIT; > - } > - if (ha->max_supported_speed == 0) { > - if (ha->min_supported_speed <= 2) > - speeds |= FC_PORTSPEED_4GBIT; > - } > - } else if (IS_QLA2031(ha)) > - speeds = FC_PORTSPEED_16GBIT|FC_PORTSPEED_8GBIT| > - FC_PORTSPEED_4GBIT; > - else if (IS_QLA25XX(ha) || IS_QLAFX00(ha)) > - speeds = FC_PORTSPEED_8GBIT|FC_PORTSPEED_4GBIT| > - FC_PORTSPEED_2GBIT|FC_PORTSPEED_1GBIT; > - else if (IS_QLA24XX_TYPE(ha)) > - speeds = FC_PORTSPEED_4GBIT|FC_PORTSPEED_2GBIT| > - FC_PORTSPEED_1GBIT; > - else if (IS_QLA23XX(ha)) > - speeds = FC_PORTSPEED_2GBIT|FC_PORTSPEED_1GBIT; > - else > - speeds = FC_PORTSPEED_1GBIT; > + speeds = qla25xx_fdmi_port_speed_capability(ha); > > fc_host_supported_speeds(vha->host) = speeds; > } > diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h > index 36c210c24f72..3360857c4405 100644 > --- a/drivers/scsi/qla2xxx/qla_gbl.h > +++ b/drivers/scsi/qla2xxx/qla_gbl.h > @@ -704,6 +704,8 @@ int qla24xx_async_gfpnid(scsi_qla_host_t *, fc_port_t *); > void qla24xx_handle_gfpnid_event(scsi_qla_host_t *, struct event_arg *); > void qla24xx_sp_unmap(scsi_qla_host_t *, srb_t *); > void qla_scan_work_fn(struct work_struct *); > +uint qla25xx_fdmi_port_speed_capability(struct qla_hw_data *); > +uint qla25xx_fdmi_port_speed_currently(struct qla_hw_data *); > > /* > * Global Function Prototypes in qla_attr.c source file. > diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c > index 676607f2cf53..de5a944bdec2 100644 > --- a/drivers/scsi/qla2xxx/qla_gs.c > +++ b/drivers/scsi/qla2xxx/qla_gs.c > @@ -1502,7 +1502,7 @@ qla2x00_prep_ct_fdmi_req(struct ct_sns_pkt *p, uint16_t cmd, > return &p->p.req; > } > > -static uint > +uint > qla25xx_fdmi_port_speed_capability(struct qla_hw_data *ha) > { > uint speeds = 0; > @@ -1546,7 +1546,7 @@ qla25xx_fdmi_port_speed_capability(struct qla_hw_data *ha) > } > return speeds; > } > - if (IS_QLA25XX(ha)) > + if (IS_QLA25XX(ha) || IS_QLAFX00(ha)) > return FDMI_PORT_SPEED_8GB|FDMI_PORT_SPEED_4GB| > FDMI_PORT_SPEED_2GB|FDMI_PORT_SPEED_1GB; > if (IS_QLA24XX_TYPE(ha)) > @@ -1556,7 +1556,8 @@ qla25xx_fdmi_port_speed_capability(struct qla_hw_data *ha) > return FDMI_PORT_SPEED_2GB|FDMI_PORT_SPEED_1GB; > return FDMI_PORT_SPEED_1GB; > } > -static uint > + > +uint > qla25xx_fdmi_port_speed_currently(struct qla_hw_data *ha) > { > switch (ha->link_data_rate) { > diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c > index f9e40a6d7189..74e6a04850c0 100644 > --- a/drivers/scsi/qla2xxx/qla_os.c > +++ b/drivers/scsi/qla2xxx/qla_os.c > @@ -5810,98 +5810,6 @@ qla25xx_rdp_rsp_reduce_size(struct scsi_qla_host *vha, > return true; > } > > -static uint > -qla25xx_rdp_port_speed_capability(struct qla_hw_data *ha) > -{ > - if (IS_CNA_CAPABLE(ha)) > - return RDP_PORT_SPEED_10GB; > - > - if (IS_QLA27XX(ha) || IS_QLA28XX(ha)) { > - unsigned int speeds = 0; > - > - if (ha->max_supported_speed == 2) { > - if (ha->min_supported_speed <= 6) > - speeds |= RDP_PORT_SPEED_64GB; > - } > - > - if (ha->max_supported_speed == 2 || > - ha->max_supported_speed == 1) { > - if (ha->min_supported_speed <= 5) > - speeds |= RDP_PORT_SPEED_32GB; > - } > - > - if (ha->max_supported_speed == 2 || > - ha->max_supported_speed == 1 || > - ha->max_supported_speed == 0) { > - if (ha->min_supported_speed <= 4) > - speeds |= RDP_PORT_SPEED_16GB; > - } > - > - if (ha->max_supported_speed == 1 || > - ha->max_supported_speed == 0) { > - if (ha->min_supported_speed <= 3) > - speeds |= RDP_PORT_SPEED_8GB; > - } > - > - if (ha->max_supported_speed == 0) { > - if (ha->min_supported_speed <= 2) > - speeds |= RDP_PORT_SPEED_4GB; > - } > - > - return speeds; > - } > - > - if (IS_QLA2031(ha)) > - return RDP_PORT_SPEED_16GB|RDP_PORT_SPEED_8GB| > - RDP_PORT_SPEED_4GB; > - > - if (IS_QLA25XX(ha)) > - return RDP_PORT_SPEED_8GB|RDP_PORT_SPEED_4GB| > - RDP_PORT_SPEED_2GB|RDP_PORT_SPEED_1GB; > - > - if (IS_QLA24XX_TYPE(ha)) > - return RDP_PORT_SPEED_4GB|RDP_PORT_SPEED_2GB| > - RDP_PORT_SPEED_1GB; > - > - if (IS_QLA23XX(ha)) > - return RDP_PORT_SPEED_2GB|RDP_PORT_SPEED_1GB; > - > - return RDP_PORT_SPEED_1GB; > -} > - > -static uint > -qla25xx_rdp_port_speed_currently(struct qla_hw_data *ha) > -{ > - switch (ha->link_data_rate) { > - case PORT_SPEED_1GB: > - return RDP_PORT_SPEED_1GB; > - > - case PORT_SPEED_2GB: > - return RDP_PORT_SPEED_2GB; > - > - case PORT_SPEED_4GB: > - return RDP_PORT_SPEED_4GB; > - > - case PORT_SPEED_8GB: > - return RDP_PORT_SPEED_8GB; > - > - case PORT_SPEED_10GB: > - return RDP_PORT_SPEED_10GB; > - > - case PORT_SPEED_16GB: > - return RDP_PORT_SPEED_16GB; > - > - case PORT_SPEED_32GB: > - return RDP_PORT_SPEED_32GB; > - > - case PORT_SPEED_64GB: > - return RDP_PORT_SPEED_64GB; > - > - default: > - return RDP_PORT_SPEED_UNKNOWN; > - } > -} > - > /* > * Function Name: qla24xx_process_purex_iocb > * > @@ -6068,9 +5976,9 @@ void qla24xx_process_purex_rdp(struct scsi_qla_host *vha, > rsp_payload->port_speed_desc.desc_len = > cpu_to_be32(RDP_DESC_LEN(rsp_payload->port_speed_desc)); > rsp_payload->port_speed_desc.speed_capab = cpu_to_be16( > - qla25xx_rdp_port_speed_capability(ha)); > + qla25xx_fdmi_port_speed_capability(ha)); > rsp_payload->port_speed_desc.operating_speed = cpu_to_be16( > - qla25xx_rdp_port_speed_currently(ha)); > + qla25xx_fdmi_port_speed_currently(ha)); > > /* Link Error Status Descriptor */ > rsp_payload->ls_err_desc.desc_tag = cpu_to_be32(0x10002); > -- > 2.19.0.rc0 > Reviewed-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx> -- Himanshu Madhani Oracle Linux Engineering