mirror of
https://github.com/torvalds/linux.git
synced 2024-12-03 17:41:22 +00:00
[SCSI] qla2xxx: Add port-speed FC transport attribute.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
53ea68ecea
commit
04414013bb
@ -425,6 +425,26 @@ qla2x00_get_host_port_id(struct Scsi_Host *shost)
|
||||
ha->d_id.b.area << 8 | ha->d_id.b.al_pa;
|
||||
}
|
||||
|
||||
static void
|
||||
qla2x00_get_host_speed(struct Scsi_Host *shost)
|
||||
{
|
||||
scsi_qla_host_t *ha = to_qla_host(shost);
|
||||
uint32_t speed = 0;
|
||||
|
||||
switch (ha->link_data_rate) {
|
||||
case LDR_1GB:
|
||||
speed = 1;
|
||||
break;
|
||||
case LDR_2GB:
|
||||
speed = 2;
|
||||
break;
|
||||
case LDR_4GB:
|
||||
speed = 4;
|
||||
break;
|
||||
}
|
||||
fc_host_speed(shost) = speed;
|
||||
}
|
||||
|
||||
static void
|
||||
qla2x00_get_starget_node_name(struct scsi_target *starget)
|
||||
{
|
||||
@ -520,6 +540,8 @@ struct fc_function_template qla2xxx_transport_functions = {
|
||||
|
||||
.get_host_port_id = qla2x00_get_host_port_id,
|
||||
.show_host_port_id = 1,
|
||||
.get_host_speed = qla2x00_get_host_speed,
|
||||
.show_host_speed = 1,
|
||||
|
||||
.dd_fcrport_size = sizeof(struct fc_port *),
|
||||
.show_rport_supported_classes = 1,
|
||||
|
@ -2331,6 +2331,10 @@ typedef struct scsi_qla_host {
|
||||
uint16_t min_external_loopid; /* First external loop Id */
|
||||
|
||||
uint16_t link_data_rate; /* F/W operating speed */
|
||||
#define LDR_1GB 0
|
||||
#define LDR_2GB 1
|
||||
#define LDR_4GB 3
|
||||
#define LDR_UNKNOWN 0xFFFF
|
||||
|
||||
uint8_t current_topology;
|
||||
uint8_t prev_topology;
|
||||
|
@ -402,9 +402,9 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb)
|
||||
break;
|
||||
|
||||
case MBA_LOOP_UP: /* Loop Up Event */
|
||||
ha->link_data_rate = 0;
|
||||
if (IS_QLA2100(ha) || IS_QLA2200(ha)) {
|
||||
link_speed = link_speeds[0];
|
||||
ha->link_data_rate = LDR_1GB;
|
||||
} else {
|
||||
link_speed = link_speeds[LS_UNKNOWN];
|
||||
if (mb[1] < 5)
|
||||
@ -436,7 +436,7 @@ qla2x00_async_event(scsi_qla_host_t *ha, uint16_t *mb)
|
||||
}
|
||||
|
||||
ha->flags.management_server_logged_in = 0;
|
||||
ha->link_data_rate = 0;
|
||||
ha->link_data_rate = LDR_UNKNOWN;
|
||||
if (ql2xfdmienable)
|
||||
set_bit(REGISTER_FDMI_NEEDED, &ha->dpc_flags);
|
||||
|
||||
|
@ -1312,6 +1312,7 @@ int qla2x00_probe_one(struct pci_dev *pdev, struct qla_board_info *brd_info)
|
||||
ha->ports = MAX_BUSES;
|
||||
ha->init_cb_size = sizeof(init_cb_t);
|
||||
ha->mgmt_svr_loop_id = MANAGEMENT_SERVER;
|
||||
ha->link_data_rate = LDR_UNKNOWN;
|
||||
|
||||
/* Assign ISP specific operations. */
|
||||
ha->isp_ops.pci_config = qla2100_pci_config;
|
||||
|
Loading…
Reference in New Issue
Block a user