[SCSI] qla2xxx: Add host port-type FC transport attribute.
authorandrew.vasquez@qlogic.com <andrew.vasquez@qlogic.com>
Wed, 1 Feb 2006 00:04:56 +0000 (16:04 -0800)
committer <jejb@mulgrave.il.steeleye.com> <>
Sat, 4 Feb 2006 22:10:28 +0000 (16:10 -0600)
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/qla2xxx/qla_attr.c

index e03140f..5501632 100644 (file)
@@ -446,6 +446,29 @@ qla2x00_get_host_speed(struct Scsi_Host *shost)
 }
 
 static void
+qla2x00_get_host_port_type(struct Scsi_Host *shost)
+{
+       scsi_qla_host_t *ha = to_qla_host(shost);
+       uint32_t port_type = FC_PORTTYPE_UNKNOWN;
+
+       switch (ha->current_topology) {
+       case ISP_CFG_NL:
+               port_type = FC_PORTTYPE_LPORT;
+               break;
+       case ISP_CFG_FL:
+               port_type = FC_PORTTYPE_NLPORT;
+               break;
+       case ISP_CFG_N:
+               port_type = FC_PORTTYPE_PTP;
+               break;
+       case ISP_CFG_F:
+               port_type = FC_PORTTYPE_NPORT;
+               break;
+       }
+       fc_host_port_type(shost) = port_type;
+}
+
+static void
 qla2x00_get_starget_node_name(struct scsi_target *starget)
 {
        struct Scsi_Host *host = dev_to_shost(starget->dev.parent);
@@ -542,6 +565,8 @@ struct fc_function_template qla2xxx_transport_functions = {
        .show_host_port_id = 1,
        .get_host_speed = qla2x00_get_host_speed,
        .show_host_speed = 1,
+       .get_host_port_type = qla2x00_get_host_port_type,
+       .show_host_port_type = 1,
 
        .dd_fcrport_size = sizeof(struct fc_port *),
        .show_rport_supported_classes = 1,