29 bfad_im_get_starget_port_id(
struct scsi_target *starget)
38 shost = dev_to_shost(starget->
dev.parent);
45 fc_id = bfa_fcs_itnim_get_fcid(&itnim->
fcs_itnim);
48 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
55 bfad_im_get_starget_node_name(
struct scsi_target *starget)
64 shost = dev_to_shost(starget->
dev.parent);
71 node_name = bfa_fcs_itnim_get_nwwn(&itnim->
fcs_itnim);
74 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
81 bfad_im_get_starget_port_name(
struct scsi_target *starget)
90 shost = dev_to_shost(starget->
dev.parent);
97 port_name = bfa_fcs_itnim_get_pwwn(&itnim->
fcs_itnim);
100 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
107 bfad_im_get_host_port_id(
struct Scsi_Host *shost)
121 bfad_im_get_host_port_type(
struct Scsi_Host *shost)
130 switch (port_attr.port_type) {
153 bfad_im_get_host_port_state(
struct Scsi_Host *shost)
162 switch (
attr.port_state) {
190 bfad_im_get_host_active_fc4s(
struct Scsi_Host *shost)
209 bfad_im_get_host_speed(
struct Scsi_Host *shost)
217 switch (
attr.speed) {
246 bfad_im_get_host_fabric_name(
struct Scsi_Host *shost)
251 wwn_t fabric_nwwn = 0;
263 bfad_im_get_stats(
struct Scsi_Host *shost)
279 init_completion(&fcomp.comp);
284 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
291 hstats->seconds_since_last_reset = fcstats->fc.secs_reset;
292 hstats->tx_frames = fcstats->fc.tx_frames;
293 hstats->tx_words = fcstats->fc.tx_words;
294 hstats->rx_frames = fcstats->fc.rx_frames;
295 hstats->rx_words = fcstats->fc.rx_words;
296 hstats->lip_count = fcstats->fc.lip_count;
297 hstats->nos_count = fcstats->fc.nos_count;
298 hstats->error_frames = fcstats->fc.error_frames;
299 hstats->dumped_frames = fcstats->fc.dropped_frames;
300 hstats->link_failure_count = fcstats->fc.link_failures;
301 hstats->loss_of_sync_count = fcstats->fc.loss_of_syncs;
302 hstats->loss_of_signal_count = fcstats->fc.loss_of_signals;
303 hstats->prim_seq_protocol_err_count = fcstats->fc.primseq_errs;
304 hstats->invalid_crc_count = fcstats->fc.invalid_crcs;
314 bfad_im_reset_stats(
struct Scsi_Host *shost)
323 init_completion(&fcomp.comp);
327 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
345 struct bfad_s *bfad = itnim->
im->bfad;
350 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
361 struct bfad_s *bfad = itnim->
im->bfad;
368 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
396 vp->fcs_vport.lport.port_cfg.pwwn) {
398 vp->fcs_vport.lport.port_cfg.preboot_vp;
402 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
413 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
414 if (fcs_vport ==
NULL)
421 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
426 vshost = vport->
drv_port.im_port->shost;
447 vport->
drv_port.im_port->fc_vport = fc_vport;
472 init_completion(&fcomp.comp);
476 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
488 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
500 bfad_im_vport_delete(
struct fc_vport *fc_vport)
521 port = im_port->
port;
523 vshost = vport->
drv_port.im_port->shost;
528 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
530 if (fcs_vport ==
NULL)
540 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
558 bfad_im_vport_disable(
struct fc_vport *fc_vport,
bool disable)
569 vshost = vport->
drv_port.im_port->shost;
574 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
576 if (fcs_vport ==
NULL)
607 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
609 if (fcs_vport ==
NULL)
613 if (
strlen(sym_name) > 0) {
614 strcpy(fcs_vport->
lport.port_cfg.sym_name.symname, sym_name);
618 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
624 .get_starget_port_id = bfad_im_get_starget_port_id,
625 .show_starget_port_id = 1,
626 .get_starget_node_name = bfad_im_get_starget_node_name,
627 .show_starget_node_name = 1,
628 .get_starget_port_name = bfad_im_get_starget_port_name,
629 .show_starget_port_name = 1,
632 .get_host_port_id = bfad_im_get_host_port_id,
633 .show_host_port_id = 1,
636 .show_host_node_name = 1,
637 .show_host_port_name = 1,
638 .show_host_supported_classes = 1,
639 .show_host_supported_fc4s = 1,
640 .show_host_supported_speeds = 1,
641 .show_host_maxframe_size = 1,
644 .show_host_port_type = 1,
645 .get_host_port_type = bfad_im_get_host_port_type,
646 .show_host_port_state = 1,
647 .get_host_port_state = bfad_im_get_host_port_state,
648 .show_host_active_fc4s = 1,
649 .get_host_active_fc4s = bfad_im_get_host_active_fc4s,
650 .show_host_speed = 1,
651 .get_host_speed = bfad_im_get_host_speed,
652 .show_host_fabric_name = 1,
653 .get_host_fabric_name = bfad_im_get_host_fabric_name,
655 .show_host_symbolic_name = 1,
658 .get_fc_host_stats = bfad_im_get_stats,
659 .reset_fc_host_stats = bfad_im_reset_stats,
665 .show_rport_maxframe_size = 1,
666 .show_rport_supported_classes = 1,
667 .show_rport_dev_loss_tmo = 1,
668 .get_rport_dev_loss_tmo = bfad_im_get_rport_loss_tmo,
669 .set_rport_dev_loss_tmo = bfad_im_set_rport_loss_tmo,
671 .vport_create = bfad_im_vport_create,
672 .vport_delete = bfad_im_vport_delete,
673 .vport_disable = bfad_im_vport_disable,
682 .get_starget_port_id = bfad_im_get_starget_port_id,
683 .show_starget_port_id = 1,
684 .get_starget_node_name = bfad_im_get_starget_node_name,
685 .show_starget_node_name = 1,
686 .get_starget_port_name = bfad_im_get_starget_port_name,
687 .show_starget_port_name = 1,
690 .get_host_port_id = bfad_im_get_host_port_id,
691 .show_host_port_id = 1,
694 .show_host_node_name = 1,
695 .show_host_port_name = 1,
696 .show_host_supported_classes = 1,
697 .show_host_supported_fc4s = 1,
698 .show_host_supported_speeds = 1,
699 .show_host_maxframe_size = 1,
702 .show_host_port_type = 1,
703 .get_host_port_type = bfad_im_get_host_port_type,
704 .show_host_port_state = 1,
705 .get_host_port_state = bfad_im_get_host_port_state,
706 .show_host_active_fc4s = 1,
707 .get_host_active_fc4s = bfad_im_get_host_active_fc4s,
708 .show_host_speed = 1,
709 .get_host_speed = bfad_im_get_host_speed,
710 .show_host_fabric_name = 1,
711 .get_host_fabric_name = bfad_im_get_host_fabric_name,
713 .show_host_symbolic_name = 1,
716 .get_fc_host_stats = bfad_im_get_stats,
717 .reset_fc_host_stats = bfad_im_reset_stats,
723 .show_rport_maxframe_size = 1,
724 .show_rport_supported_classes = 1,
725 .show_rport_dev_loss_tmo = 1,
726 .get_rport_dev_loss_tmo = bfad_im_get_rport_loss_tmo,
727 .set_rport_dev_loss_tmo = bfad_im_set_rport_loss_tmo,
777 "Brocade 4Gbps PCIe dual port FC HBA");
780 "Brocade 8Gbps PCIe dual port FC HBA");
783 "Brocade 4Gbps PCIe dual port FC HBA for HP");
786 "Brocade 8Gbps PCIe dual port FC HBA for HP");
789 "Brocade 10Gbps single port CNA");
792 "Brocade 10Gbps dual port CNA");
795 "Brocade 10Gbps CNA for IBM Blade Center");
798 "Brocade 4Gbps PCIe single port FC HBA");
801 "Brocade 8Gbps PCIe single port FC HBA");
804 "Brocade 4Gbps PCIe single port FC HBA for HP");
807 "Brocade 8Gbps PCIe single port FC HBA for HP");
810 "Brocade 8Gbps FC HBA for HP Bladesystem C-class");
813 "Brocade 10Gbps CNA for Dell M-Series Blade Servers");
817 "Brocade 10Gbps single port CNA");
820 "Brocade 16Gbps PCIe single port FC HBA");
823 "Brocade 10Gbps dual port CNA");
826 "Brocade 16Gbps PCIe dual port FC HBA");
830 "Brocade 16Gbps PCIe single port FC HBA for IBM");
833 "Brocade 16Gbps PCIe dual port FC HBA for IBM");
867 strncpy(symname, port_attr.port_cfg.sym_name.symname,
894 bfad_im_optionrom_version_show(
struct device *dev,
942 bfad_im_num_of_discovered_ports_show(
struct device *dev,
961 spin_unlock_irqrestore(&bfad->
bfad_lock, flags);
968 bfad_im_serial_num_show,
NULL);
971 bfad_im_model_desc_show,
NULL);
974 bfad_im_symbolic_name_show,
NULL);
976 bfad_im_hw_version_show,
NULL);
978 bfad_im_drv_version_show,
NULL);
980 bfad_im_optionrom_version_show,
NULL);
982 bfad_im_fw_version_show,
NULL);
984 bfad_im_num_of_ports_show,
NULL);
987 bfad_im_num_of_discovered_ports_show,
NULL);
990 &dev_attr_serial_number,
992 &dev_attr_model_description,
994 &dev_attr_symbolic_name,
995 &dev_attr_hardware_version,
996 &dev_attr_driver_version,
997 &dev_attr_option_rom_version,
998 &dev_attr_firmware_version,
999 &dev_attr_number_of_ports,
1000 &dev_attr_driver_name,
1001 &dev_attr_number_of_discovered_ports,
1006 &dev_attr_serial_number,
1008 &dev_attr_model_description,
1009 &dev_attr_node_name,
1010 &dev_attr_symbolic_name,
1011 &dev_attr_hardware_version,
1012 &dev_attr_driver_version,
1013 &dev_attr_option_rom_version,
1014 &dev_attr_firmware_version,
1015 &dev_attr_number_of_ports,
1016 &dev_attr_driver_name,
1017 &dev_attr_number_of_discovered_ports,