Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d0297c9a authored by Joe Carnuccio's avatar Joe Carnuccio Committed by James Bottomley
Browse files

[SCSI] qla2xxx: Parameterize the link speed of hba rather than fcport.



Parameterize qla2x00_get_link_speed_str() to be generic on link speed.

Signed-off-by: default avatarJoe Carnuccio <joe.carnuccio@qlogic.com>
Signed-off-by: default avatarSaurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent c53dfac2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -416,7 +416,7 @@ extern int qla2x00_request_irqs(struct qla_hw_data *, struct rsp_que *);
extern void qla2x00_free_irqs(scsi_qla_host_t *);

extern int qla2x00_get_data_rate(scsi_qla_host_t *);
extern char *qla2x00_get_link_speed_str(struct qla_hw_data *);
extern const char *qla2x00_get_link_speed_str(struct qla_hw_data *, uint16_t);

/*
 * Global Function Prototypes in qla_sup.c source file.
+2 −3
Original line number Diff line number Diff line
@@ -2983,7 +2983,6 @@ qla2x00_configure_local_loop(scsi_qla_host_t *vha)
static void
qla2x00_iidma_fcport(scsi_qla_host_t *vha, fc_port_t *fcport)
{
	char *link_speed;
	int rval;
	uint16_t mb[4];
	struct qla_hw_data *ha = vha->hw;
@@ -3010,10 +3009,10 @@ qla2x00_iidma_fcport(scsi_qla_host_t *vha, fc_port_t *fcport)
		    fcport->port_name[6], fcport->port_name[7], rval,
		    fcport->fp_speed, mb[0], mb[1]);
	} else {
		link_speed = qla2x00_get_link_speed_str(ha);
		ql_dbg(ql_dbg_disc, vha, 0x2005,
		    "iIDMA adjusted to %s GB/s "
		    "on %02x%02x%02x%02x%02x%02x%02x%02x.\n", link_speed,
		    "on %02x%02x%02x%02x%02x%02x%02x%02x.\n",
		    qla2x00_get_link_speed_str(ha, fcport->fp_speed),
		    fcport->port_name[0], fcport->port_name[1],
		    fcport->port_name[2], fcport->port_name[3],
		    fcport->port_name[4], fcport->port_name[5],
+14 −18
Original line number Diff line number Diff line
@@ -316,25 +316,21 @@ qla81xx_idc_event(scsi_qla_host_t *vha, uint16_t aen, uint16_t descr)
}

#define LS_UNKNOWN	2
char *
qla2x00_get_link_speed_str(struct qla_hw_data *ha)
const char *
qla2x00_get_link_speed_str(struct qla_hw_data *ha, uint16_t speed)
{
	static char *link_speeds[] = {"1", "2", "?", "4", "8", "16", "10"};
	char *link_speed;
	int fw_speed = ha->link_data_rate;
	static const char * const link_speeds[] = {
		"1", "2", "?", "4", "8", "16", "10"
	};

	if (IS_QLA2100(ha) || IS_QLA2200(ha))
		link_speed = link_speeds[0];
	else if (fw_speed == 0x13)
		link_speed = link_speeds[6];
	else {
		link_speed = link_speeds[LS_UNKNOWN];
		if (fw_speed < 6)
			link_speed =
			    link_speeds[fw_speed];
	}

	return link_speed;
		return link_speeds[0];
	else if (speed == 0x13)
		return link_speeds[6];
	else if (speed < 6)
		return link_speeds[speed];
	else
		return link_speeds[LS_UNKNOWN];
}

static void
@@ -671,7 +667,7 @@ qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb)

		ql_dbg(ql_dbg_async, vha, 0x500a,
		    "LOOP UP detected (%s Gbps).\n",
		    qla2x00_get_link_speed_str(ha));
		    qla2x00_get_link_speed_str(ha, ha->link_data_rate));

		vha->flags.management_server_logged_in = 0;
		qla2x00_post_aen_work(vha, FCH_EVT_LINKUP, ha->link_data_rate);
@@ -860,7 +856,7 @@ qla2x00_async_event(scsi_qla_host_t *vha, struct rsp_que *rsp, uint16_t *mb)
		    mb[1], mb[2], mb[3]);
		ql_log(ql_log_warn, vha, 0x505f,
		    "Link is operational (%s Gbps).\n",
		    qla2x00_get_link_speed_str(ha));
		    qla2x00_get_link_speed_str(ha, ha->link_data_rate));

		/*
		 * Mark all devices as missing so we will login again.