Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs-2.6
[pandora-kernel.git] / drivers / scsi / bfa / bfad_attr.c
index a94ea42..9d95844 100644 (file)
@@ -218,6 +218,9 @@ bfad_im_get_host_speed(struct Scsi_Host *shost)
        case BFA_PORT_SPEED_10GBPS:
                fc_host_speed(shost) = FC_PORTSPEED_10GBIT;
                break;
+       case BFA_PORT_SPEED_16GBPS:
+               fc_host_speed(shost) = FC_PORTSPEED_16GBIT;
+               break;
        case BFA_PORT_SPEED_8GBPS:
                fc_host_speed(shost) = FC_PORTSPEED_8GBIT;
                break;
@@ -580,6 +583,8 @@ struct fc_function_template bfad_im_fc_function_template = {
        .vport_create = bfad_im_vport_create,
        .vport_delete = bfad_im_vport_delete,
        .vport_disable = bfad_im_vport_disable,
+       .bsg_request = bfad_im_bsg_request,
+       .bsg_timeout = bfad_im_bsg_timeout,
 };
 
 struct fc_function_template bfad_im_vport_fc_function_template = {
@@ -674,8 +679,10 @@ bfad_im_model_desc_show(struct device *dev, struct device_attribute *attr,
        struct bfad_s *bfad = im_port->bfad;
        char model[BFA_ADAPTER_MODEL_NAME_LEN];
        char model_descr[BFA_ADAPTER_MODEL_DESCR_LEN];
+       int nports = 0;
 
        bfa_get_adapter_model(&bfad->bfa, model);
+       nports = bfa_get_nports(&bfad->bfa);
        if (!strcmp(model, "Brocade-425"))
                snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
                        "Brocade 4Gbps PCIe dual port FC HBA");
@@ -684,10 +691,10 @@ bfad_im_model_desc_show(struct device *dev, struct device_attribute *attr,
                        "Brocade 8Gbps PCIe dual port FC HBA");
        else if (!strcmp(model, "Brocade-42B"))
                snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
-                       "HP 4Gbps PCIe dual port FC HBA");
+                       "Brocade 4Gbps PCIe dual port FC HBA for HP");
        else if (!strcmp(model, "Brocade-82B"))
                snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
-                       "HP 8Gbps PCIe dual port FC HBA");
+                       "Brocade 8Gbps PCIe dual port FC HBA for HP");
        else if (!strcmp(model, "Brocade-1010"))
                snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
                        "Brocade 10Gbps single port CNA");
@@ -696,7 +703,7 @@ bfad_im_model_desc_show(struct device *dev, struct device_attribute *attr,
                        "Brocade 10Gbps dual port CNA");
        else if (!strcmp(model, "Brocade-1007"))
                snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
-                       "Brocade 10Gbps CNA");
+                       "Brocade 10Gbps CNA for IBM Blade Center");
        else if (!strcmp(model, "Brocade-415"))
                snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
                        "Brocade 4Gbps PCIe single port FC HBA");
@@ -705,17 +712,45 @@ bfad_im_model_desc_show(struct device *dev, struct device_attribute *attr,
                        "Brocade 8Gbps PCIe single port FC HBA");
        else if (!strcmp(model, "Brocade-41B"))
                snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
-                       "HP 4Gbps PCIe single port FC HBA");
+                       "Brocade 4Gbps PCIe single port FC HBA for HP");
        else if (!strcmp(model, "Brocade-81B"))
                snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
-                       "HP 8Gbps PCIe single port FC HBA");
+                       "Brocade 8Gbps PCIe single port FC HBA for HP");
        else if (!strcmp(model, "Brocade-804"))
                snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
-                       "HP Bladesystem C-class 8Gbps FC HBA");
-       else if (!strcmp(model, "Brocade-902"))
+                       "Brocade 8Gbps FC HBA for HP Bladesystem C-class");
+       else if (!strcmp(model, "Brocade-902") ||
+                !strcmp(model, "Brocade-1741"))
                snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
-                       "Brocade 10Gbps CNA");
-       else
+                       "Brocade 10Gbps CNA for Dell M-Series Blade Servers");
+       else if (strstr(model, "Brocade-1560")) {
+               if (nports == 1)
+                       snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
+                               "Brocade 16Gbps PCIe single port FC HBA");
+               else
+                       snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
+                               "Brocade 16Gbps PCIe dual port FC HBA");
+       } else if (strstr(model, "Brocade-1710")) {
+               if (nports == 1)
+                       snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
+                               "Brocade 10Gbps single port CNA");
+               else
+                       snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
+                               "Brocade 10Gbps dual port CNA");
+       } else if (strstr(model, "Brocade-1860")) {
+               if (nports == 1 && bfa_ioc_is_cna(&bfad->bfa.ioc))
+                       snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
+                               "Brocade 10Gbps single port CNA");
+               else if (nports == 1 && !bfa_ioc_is_cna(&bfad->bfa.ioc))
+                       snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
+                               "Brocade 16Gbps PCIe single port FC HBA");
+               else if (nports == 2 && bfa_ioc_is_cna(&bfad->bfa.ioc))
+                       snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
+                               "Brocade 10Gbps dual port CNA");
+               else if (nports == 2 && !bfa_ioc_is_cna(&bfad->bfa.ioc))
+                       snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
+                               "Brocade 16Gbps PCIe dual port FC HBA");
+       } else
                snprintf(model_descr, BFA_ADAPTER_MODEL_DESCR_LEN,
                        "Invalid Model");