Lines Matching defs:bfad

19 bfad_iocmd_ioc_enable(struct bfad_s *bfad, void *cmd)
24 spin_lock_irqsave(&bfad->bfad_lock, flags);
26 if (!bfa_ioc_is_disabled(&bfad->bfa.ioc)) {
27 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
32 init_completion(&bfad->enable_comp);
33 bfa_iocfc_enable(&bfad->bfa);
35 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
36 wait_for_completion(&bfad->enable_comp);
42 bfad_iocmd_ioc_disable(struct bfad_s *bfad, void *cmd)
47 spin_lock_irqsave(&bfad->bfad_lock, flags);
48 if (bfa_ioc_is_disabled(&bfad->bfa.ioc)) {
49 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
54 if (bfad->disable_active) {
55 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
59 bfad->disable_active = BFA_TRUE;
60 init_completion(&bfad->disable_comp);
61 bfa_iocfc_disable(&bfad->bfa);
62 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
64 wait_for_completion(&bfad->disable_comp);
65 bfad->disable_active = BFA_FALSE;
72 bfad_iocmd_ioc_get_info(struct bfad_s *bfad, void *cmd)
80 spin_lock_irqsave(&bfad->bfad_lock, flags);
81 bfa_fcport_get_attr(&bfad->bfa, &pattr);
84 iocmd->ioc_type = bfa_get_type(&bfad->bfa);
85 iocmd->mac = bfa_get_mac(&bfad->bfa);
86 iocmd->factory_mac = bfa_get_mfg_mac(&bfad->bfa);
87 bfa_get_adapter_serial_num(&bfad->bfa, iocmd->serialnum);
90 iocmd->bfad_num = bfad->inst_no;
91 im_port = bfad->pport.im_port;
93 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
95 strcpy(iocmd->name, bfad->adapter_name);
96 strcpy(iocmd->port_name, bfad->port_name);
97 strcpy(iocmd->hwpath, bfad->pci_name);
100 strcpy(iocmd->adapter_hwpath, bfad->pci_name);
111 bfad_iocmd_ioc_get_attr(struct bfad_s *bfad, void *cmd)
116 spin_lock_irqsave(&bfad->bfad_lock, flags);
117 bfa_ioc_get_attr(&bfad->bfa.ioc, &iocmd->ioc_attr);
118 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
130 memcpy(bfad->pci_attr.chip_rev, iocmd->ioc_attr.pci_attr.chip_rev,
131 sizeof(bfad->pci_attr.chip_rev));
132 memcpy(&iocmd->ioc_attr.pci_attr, &bfad->pci_attr,
140 bfad_iocmd_ioc_get_stats(struct bfad_s *bfad, void *cmd)
144 bfa_ioc_get_stats(&bfad->bfa, &iocmd->ioc_stats);
150 bfad_iocmd_ioc_get_fwstats(struct bfad_s *bfad, void *cmd,
166 spin_lock_irqsave(&bfad->bfad_lock, flags);
167 iocmd->status = bfa_ioc_fw_stats_get(&bfad->bfa.ioc, iocmd_bufptr);
168 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
171 bfa_trc(bfad, iocmd->status);
175 bfa_trc(bfad, 0x6666);
180 bfad_iocmd_ioc_reset_stats(struct bfad_s *bfad, void *cmd, unsigned int v_cmd)
186 bfa_ioc_clear_stats(&bfad->bfa);
189 spin_lock_irqsave(&bfad->bfad_lock, flags);
190 iocmd->status = bfa_ioc_fw_stats_clear(&bfad->bfa.ioc);
191 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
198 bfad_iocmd_ioc_set_name(struct bfad_s *bfad, void *cmd, unsigned int v_cmd)
203 strcpy(bfad->adapter_name, iocmd->name);
205 strcpy(bfad->port_name, iocmd->name);
212 bfad_iocmd_iocfc_get_attr(struct bfad_s *bfad, void *cmd)
217 bfa_iocfc_get_attr(&bfad->bfa, &iocmd->iocfc_attr);
223 bfad_iocmd_ioc_fw_sig_inv(struct bfad_s *bfad, void *cmd)
228 spin_lock_irqsave(&bfad->bfad_lock, flags);
229 iocmd->status = bfa_ioc_fwsig_invalidate(&bfad->bfa.ioc);
230 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
235 bfad_iocmd_iocfc_set_intr(struct bfad_s *bfad, void *cmd)
240 spin_lock_irqsave(&bfad->bfad_lock, flags);
241 iocmd->status = bfa_iocfc_israttr_set(&bfad->bfa, &iocmd->attr);
242 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
248 bfad_iocmd_port_enable(struct bfad_s *bfad, void *cmd)
255 spin_lock_irqsave(&bfad->bfad_lock, flags);
256 iocmd->status = bfa_port_enable(&bfad->bfa.modules.port,
258 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
260 bfa_trc(bfad, iocmd->status);
269 bfad_iocmd_port_disable(struct bfad_s *bfad, void *cmd)
276 spin_lock_irqsave(&bfad->bfad_lock, flags);
277 iocmd->status = bfa_port_disable(&bfad->bfa.modules.port,
279 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
282 bfa_trc(bfad, iocmd->status);
291 bfad_iocmd_port_get_attr(struct bfad_s *bfad, void *cmd)
297 spin_lock_irqsave(&bfad->bfad_lock, flags);
298 bfa_fcport_get_attr(&bfad->bfa, &iocmd->attr);
299 bfa_fcs_lport_get_attr(&bfad->bfa_fcs.fabric.bport, &port_attr);
300 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
319 bfad_iocmd_port_get_stats(struct bfad_s *bfad, void *cmd,
337 spin_lock_irqsave(&bfad->bfad_lock, flags);
338 iocmd->status = bfa_port_get_stats(&bfad->bfa.modules.port,
340 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
342 bfa_trc(bfad, iocmd->status);
353 bfad_iocmd_port_reset_stats(struct bfad_s *bfad, void *cmd)
360 spin_lock_irqsave(&bfad->bfad_lock, flags);
361 iocmd->status = bfa_port_clear_stats(&bfad->bfa.modules.port,
363 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
365 bfa_trc(bfad, iocmd->status);
374 bfad_iocmd_set_port_cfg(struct bfad_s *bfad, void *iocmd, unsigned int v_cmd)
379 spin_lock_irqsave(&bfad->bfad_lock, flags);
381 cmd->status = bfa_fcport_cfg_topology(&bfad->bfa, cmd->param);
383 cmd->status = bfa_fcport_cfg_speed(&bfad->bfa, cmd->param);
385 cmd->status = bfa_fcport_cfg_hardalpa(&bfad->bfa, cmd->param);
387 cmd->status = bfa_fcport_clr_hardalpa(&bfad->bfa);
388 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
394 bfad_iocmd_port_cfg_maxfrsize(struct bfad_s *bfad, void *cmd)
400 spin_lock_irqsave(&bfad->bfad_lock, flags);
401 iocmd->status = bfa_fcport_cfg_maxfrsize(&bfad->bfa, iocmd->maxfrsize);
402 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
408 bfad_iocmd_port_cfg_bbcr(struct bfad_s *bfad, unsigned int cmd, void *pcmd)
415 spin_lock_irqsave(&bfad->bfad_lock, flags);
417 rc = bfa_fcport_cfg_bbcr(&bfad->bfa, BFA_TRUE, iocmd->bb_scn);
419 rc = bfa_fcport_cfg_bbcr(&bfad->bfa, BFA_FALSE, 0);
421 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
424 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
431 bfad_iocmd_port_get_bbcr_attr(struct bfad_s *bfad, void *pcmd)
436 spin_lock_irqsave(&bfad->bfad_lock, flags);
438 bfa_fcport_get_bbcr_attr(&bfad->bfa, &iocmd->attr);
439 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
446 bfad_iocmd_lport_get_attr(struct bfad_s *bfad, void *cmd)
452 spin_lock_irqsave(&bfad->bfad_lock, flags);
453 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs,
456 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
462 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
469 bfad_iocmd_lport_get_stats(struct bfad_s *bfad, void *cmd)
476 spin_lock_irqsave(&bfad->bfad_lock, flags);
477 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs,
480 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
486 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
493 bfad_iocmd_lport_reset_stats(struct bfad_s *bfad, void *cmd)
498 struct bfa_fcpim_s *fcpim = BFA_FCPIM(&bfad->bfa);
503 spin_lock_irqsave(&bfad->bfad_lock, flags);
504 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs,
507 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
520 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
527 bfad_iocmd_lport_get_iostats(struct bfad_s *bfad, void *cmd)
534 spin_lock_irqsave(&bfad->bfad_lock, flags);
535 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs,
538 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
543 bfa_fcpim_port_iostats(&bfad->bfa, &iocmd->iostats,
545 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
552 bfad_iocmd_lport_get_rports(struct bfad_s *bfad, void *cmd,
574 spin_lock_irqsave(&bfad->bfad_lock, flags);
575 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs,
578 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
579 bfa_trc(bfad, 0);
587 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
594 bfad_iocmd_rport_get_attr(struct bfad_s *bfad, void *cmd)
601 spin_lock_irqsave(&bfad->bfad_lock, flags);
602 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs,
605 bfa_trc(bfad, 0);
606 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
617 bfa_trc(bfad, 0);
618 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
624 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
631 bfad_iocmd_rport_get_addr(struct bfad_s *bfad, void *cmd)
640 spin_lock_irqsave(&bfad->bfad_lock, flags);
641 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs,
644 bfa_trc(bfad, 0);
645 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
652 bfa_trc(bfad, 0);
653 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
663 bfa_trc(bfad, 0);
664 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
670 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
680 bfad_iocmd_rport_get_stats(struct bfad_s *bfad, void *cmd)
688 spin_lock_irqsave(&bfad->bfad_lock, flags);
689 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs,
692 bfa_trc(bfad, 0);
693 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
700 bfa_trc(bfad, 0);
701 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
714 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
721 bfad_iocmd_rport_clr_stats(struct bfad_s *bfad, void *cmd)
730 spin_lock_irqsave(&bfad->bfad_lock, flags);
731 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs,
734 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
741 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
750 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
757 bfad_iocmd_rport_set_speed(struct bfad_s *bfad, void *cmd)
765 spin_lock_irqsave(&bfad->bfad_lock, flags);
766 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs,
769 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
776 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
786 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
793 bfad_iocmd_vport_get_attr(struct bfad_s *bfad, void *cmd)
799 spin_lock_irqsave(&bfad->bfad_lock, flags);
800 fcs_vport = bfa_fcs_vport_lookup(&bfad->bfa_fcs,
803 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
809 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
816 bfad_iocmd_vport_get_stats(struct bfad_s *bfad, void *cmd)
823 spin_lock_irqsave(&bfad->bfad_lock, flags);
824 fcs_vport = bfa_fcs_vport_lookup(&bfad->bfa_fcs,
827 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
837 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
844 bfad_iocmd_vport_clr_stats(struct bfad_s *bfad, void *cmd)
851 spin_lock_irqsave(&bfad->bfad_lock, flags);
852 fcs_vport = bfa_fcs_vport_lookup(&bfad->bfa_fcs,
855 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
862 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
869 bfad_iocmd_fabric_get_lports(struct bfad_s *bfad, void *cmd,
894 spin_lock_irqsave(&bfad->bfad_lock, flags);
895 fcs_vf = bfa_fcs_vf_lookup(&bfad->bfa_fcs, iocmd->vf_id);
897 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
902 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
911 bfad_iocmd_qos_set_bw(struct bfad_s *bfad, void *pcmd)
916 spin_lock_irqsave(&bfad->bfad_lock, flags);
917 iocmd->status = bfa_fcport_set_qos_bw(&bfad->bfa, &iocmd->qos_bw);
918 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
924 bfad_iocmd_ratelim(struct bfad_s *bfad, unsigned int cmd, void *pcmd)
927 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa);
930 spin_lock_irqsave(&bfad->bfad_lock, flags);
947 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
953 bfad_iocmd_ratelim_speed(struct bfad_s *bfad, unsigned int cmd, void *pcmd)
956 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa);
959 spin_lock_irqsave(&bfad->bfad_lock, flags);
965 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
976 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
982 bfad_iocmd_cfg_fcpim(struct bfad_s *bfad, void *cmd)
987 spin_lock_irqsave(&bfad->bfad_lock, flags);
988 bfa_fcpim_path_tov_set(&bfad->bfa, iocmd->param);
989 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
995 bfad_iocmd_fcpim_get_modstats(struct bfad_s *bfad, void *cmd)
999 struct bfa_fcpim_s *fcpim = BFA_FCPIM(&bfad->bfa);
1004 spin_lock_irqsave(&bfad->bfad_lock, flags);
1011 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1017 bfad_iocmd_fcpim_clr_modstats(struct bfad_s *bfad, void *cmd)
1021 struct bfa_fcpim_s *fcpim = BFA_FCPIM(&bfad->bfa);
1026 spin_lock_irqsave(&bfad->bfad_lock, flags);
1033 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1039 bfad_iocmd_fcpim_get_del_itn_stats(struct bfad_s *bfad, void *cmd)
1043 struct bfa_fcpim_s *fcpim = BFA_FCPIM(&bfad->bfa);
1046 spin_lock_irqsave(&bfad->bfad_lock, flags);
1049 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1056 bfad_iocmd_itnim_get_attr(struct bfad_s *bfad, void *cmd)
1062 spin_lock_irqsave(&bfad->bfad_lock, flags);
1063 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs,
1070 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1075 bfad_iocmd_itnim_get_iostats(struct bfad_s *bfad, void *cmd)
1083 spin_lock_irqsave(&bfad->bfad_lock, flags);
1084 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs,
1088 bfa_trc(bfad, 0);
1101 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1106 bfad_iocmd_itnim_reset_stats(struct bfad_s *bfad, void *cmd)
1114 spin_lock_irqsave(&bfad->bfad_lock, flags);
1115 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs,
1129 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1135 bfad_iocmd_itnim_get_itnstats(struct bfad_s *bfad, void *cmd)
1143 spin_lock_irqsave(&bfad->bfad_lock, flags);
1144 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs,
1148 bfa_trc(bfad, 0);
1159 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1164 bfad_iocmd_fcport_enable(struct bfad_s *bfad, void *cmd)
1169 spin_lock_irqsave(&bfad->bfad_lock, flags);
1170 iocmd->status = bfa_fcport_enable(&bfad->bfa);
1171 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1177 bfad_iocmd_fcport_disable(struct bfad_s *bfad, void *cmd)
1182 spin_lock_irqsave(&bfad->bfad_lock, flags);
1183 iocmd->status = bfa_fcport_disable(&bfad->bfa);
1184 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1190 bfad_iocmd_ioc_get_pcifn_cfg(struct bfad_s *bfad, void *cmd)
1197 spin_lock_irqsave(&bfad->bfad_lock, flags);
1198 iocmd->status = bfa_ablk_query(&bfad->bfa.modules.ablk,
1201 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1212 bfad_iocmd_pcifn_create(struct bfad_s *bfad, void *cmd)
1219 spin_lock_irqsave(&bfad->bfad_lock, flags);
1220 iocmd->status = bfa_ablk_pf_create(&bfad->bfa.modules.ablk,
1224 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1235 bfad_iocmd_pcifn_delete(struct bfad_s *bfad, void *cmd)
1242 spin_lock_irqsave(&bfad->bfad_lock, flags);
1243 iocmd->status = bfa_ablk_pf_delete(&bfad->bfa.modules.ablk,
1246 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1257 bfad_iocmd_pcifn_bw(struct bfad_s *bfad, void *cmd)
1264 spin_lock_irqsave(&bfad->bfad_lock, flags);
1265 iocmd->status = bfa_ablk_pf_update(&bfad->bfa.modules.ablk,
1268 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1269 bfa_trc(bfad, iocmd->status);
1275 bfa_trc(bfad, iocmd->status);
1281 bfad_iocmd_adapter_cfg_mode(struct bfad_s *bfad, void *cmd)
1289 spin_lock_irqsave(&bfad->bfad_lock, flags);
1290 iocmd->status = bfa_ablk_adapter_config(&bfad->bfa.modules.ablk,
1293 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1304 bfad_iocmd_port_cfg_mode(struct bfad_s *bfad, void *cmd)
1312 spin_lock_irqsave(&bfad->bfad_lock, flags);
1313 iocmd->status = bfa_ablk_port_config(&bfad->bfa.modules.ablk,
1317 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1328 bfad_iocmd_ablk_optrom(struct bfad_s *bfad, unsigned int cmd, void *pcmd)
1335 spin_lock_irqsave(&bfad->bfad_lock, flags);
1337 iocmd->status = bfa_ablk_optrom_en(&bfad->bfa.modules.ablk,
1340 iocmd->status = bfa_ablk_optrom_dis(&bfad->bfa.modules.ablk,
1342 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1354 bfad_iocmd_faa_query(struct bfad_s *bfad, void *cmd)
1362 spin_lock_irqsave(&bfad->bfad_lock, flags);
1363 iocmd->status = bfa_faa_query(&bfad->bfa, &iocmd->faa_attr,
1365 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1377 bfad_iocmd_cee_attr(struct bfad_s *bfad, void *cmd, unsigned int payload_len)
1397 spin_lock_irqsave(&bfad->bfad_lock, flags);
1398 iocmd->status = bfa_cee_get_attr(&bfad->bfa.modules.cee, iocmd_bufptr,
1400 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1403 bfa_trc(bfad, 0x5555);
1413 bfad_iocmd_cee_get_stats(struct bfad_s *bfad, void *cmd,
1434 spin_lock_irqsave(&bfad->bfad_lock, flags);
1435 iocmd->status = bfa_cee_get_stats(&bfad->bfa.modules.cee, iocmd_bufptr,
1437 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1440 bfa_trc(bfad, 0x5555);
1450 bfad_iocmd_cee_reset_stats(struct bfad_s *bfad, void *cmd)
1455 spin_lock_irqsave(&bfad->bfad_lock, flags);
1456 iocmd->status = bfa_cee_reset_stats(&bfad->bfa.modules.cee, NULL, NULL);
1457 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1459 bfa_trc(bfad, 0x5555);
1464 bfad_iocmd_sfp_media(struct bfad_s *bfad, void *cmd)
1471 spin_lock_irqsave(&bfad->bfad_lock, flags);
1472 iocmd->status = bfa_sfp_media(BFA_SFP_MOD(&bfad->bfa), &iocmd->media,
1474 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1475 bfa_trc(bfad, iocmd->status);
1486 bfad_iocmd_sfp_speed(struct bfad_s *bfad, void *cmd)
1493 spin_lock_irqsave(&bfad->bfad_lock, flags);
1494 iocmd->status = bfa_sfp_speed(BFA_SFP_MOD(&bfad->bfa), iocmd->speed,
1496 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1497 bfa_trc(bfad, iocmd->status);
1507 bfad_iocmd_flash_get_attr(struct bfad_s *bfad, void *cmd)
1515 spin_lock_irqsave(&bfad->bfad_lock, flags);
1516 iocmd->status = bfa_flash_get_attr(BFA_FLASH(&bfad->bfa), &iocmd->attr,
1518 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1528 bfad_iocmd_flash_erase_part(struct bfad_s *bfad, void *cmd)
1535 spin_lock_irqsave(&bfad->bfad_lock, flags);
1536 iocmd->status = bfa_flash_erase_part(BFA_FLASH(&bfad->bfa), iocmd->type,
1538 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1548 bfad_iocmd_flash_update_part(struct bfad_s *bfad, void *cmd,
1566 spin_lock_irqsave(&bfad->bfad_lock, flags);
1567 iocmd->status = bfa_flash_update_part(BFA_FLASH(&bfad->bfa),
1570 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1580 bfad_iocmd_flash_read_part(struct bfad_s *bfad, void *cmd,
1598 spin_lock_irqsave(&bfad->bfad_lock, flags);
1599 iocmd->status = bfa_flash_read_part(BFA_FLASH(&bfad->bfa), iocmd->type,
1602 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1612 bfad_iocmd_diag_temp(struct bfad_s *bfad, void *cmd)
1620 spin_lock_irqsave(&bfad->bfad_lock, flags);
1621 iocmd->status = bfa_diag_tsensor_query(BFA_DIAG_MOD(&bfad->bfa),
1623 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1624 bfa_trc(bfad, iocmd->status);
1634 bfad_iocmd_diag_memtest(struct bfad_s *bfad, void *cmd)
1642 spin_lock_irqsave(&bfad->bfad_lock, flags);
1643 iocmd->status = bfa_diag_memtest(BFA_DIAG_MOD(&bfad->bfa),
1646 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1647 bfa_trc(bfad, iocmd->status);
1657 bfad_iocmd_diag_loopback(struct bfad_s *bfad, void *cmd)
1665 spin_lock_irqsave(&bfad->bfad_lock, flags);
1666 iocmd->status = bfa_fcdiag_loopback(&bfad->bfa, iocmd->opmode,
1669 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1670 bfa_trc(bfad, iocmd->status);
1680 bfad_iocmd_diag_fwping(struct bfad_s *bfad, void *cmd)
1688 spin_lock_irqsave(&bfad->bfad_lock, flags);
1689 iocmd->status = bfa_diag_fwping(BFA_DIAG_MOD(&bfad->bfa), iocmd->cnt,
1692 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1693 bfa_trc(bfad, iocmd->status);
1696 bfa_trc(bfad, 0x77771);
1704 bfad_iocmd_diag_queuetest(struct bfad_s *bfad, void *cmd)
1711 spin_lock_irqsave(&bfad->bfad_lock, flags);
1712 iocmd->status = bfa_fcdiag_queuetest(&bfad->bfa, iocmd->force,
1715 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1725 bfad_iocmd_diag_sfp(struct bfad_s *bfad, void *cmd)
1733 spin_lock_irqsave(&bfad->bfad_lock, flags);
1734 iocmd->status = bfa_sfp_show(BFA_SFP_MOD(&bfad->bfa), &iocmd->sfp,
1736 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1737 bfa_trc(bfad, iocmd->status);
1742 bfa_trc(bfad, iocmd->status);
1748 bfad_iocmd_diag_led(struct bfad_s *bfad, void *cmd)
1753 spin_lock_irqsave(&bfad->bfad_lock, flags);
1754 iocmd->status = bfa_diag_ledtest(BFA_DIAG_MOD(&bfad->bfa),
1756 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1761 bfad_iocmd_diag_beacon_lport(struct bfad_s *bfad, void *cmd)
1767 spin_lock_irqsave(&bfad->bfad_lock, flags);
1768 iocmd->status = bfa_diag_beacon_port(BFA_DIAG_MOD(&bfad->bfa),
1771 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1776 bfad_iocmd_diag_lb_stat(struct bfad_s *bfad, void *cmd)
1782 spin_lock_irqsave(&bfad->bfad_lock, flags);
1783 iocmd->status = bfa_fcdiag_lb_is_running(&bfad->bfa);
1784 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1785 bfa_trc(bfad, iocmd->status);
1791 bfad_iocmd_diag_dport_enable(struct bfad_s *bfad, void *pcmd)
1799 spin_lock_irqsave(&bfad->bfad_lock, flags);
1800 iocmd->status = bfa_dport_enable(&bfad->bfa, iocmd->lpcnt,
1802 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1804 bfa_trc(bfad, iocmd->status);
1813 bfad_iocmd_diag_dport_disable(struct bfad_s *bfad, void *pcmd)
1820 spin_lock_irqsave(&bfad->bfad_lock, flags);
1821 iocmd->status = bfa_dport_disable(&bfad->bfa, bfad_hcb_comp, &fcomp);
1822 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1824 bfa_trc(bfad, iocmd->status);
1833 bfad_iocmd_diag_dport_start(struct bfad_s *bfad, void *pcmd)
1841 spin_lock_irqsave(&bfad->bfad_lock, flags);
1842 iocmd->status = bfa_dport_start(&bfad->bfa, iocmd->lpcnt,
1845 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1848 bfa_trc(bfad, iocmd->status);
1858 bfad_iocmd_diag_dport_show(struct bfad_s *bfad, void *pcmd)
1864 spin_lock_irqsave(&bfad->bfad_lock, flags);
1865 iocmd->status = bfa_dport_show(&bfad->bfa, &iocmd->result);
1866 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1873 bfad_iocmd_phy_get_attr(struct bfad_s *bfad, void *cmd)
1881 spin_lock_irqsave(&bfad->bfad_lock, flags);
1882 iocmd->status = bfa_phy_get_attr(BFA_PHY(&bfad->bfa), iocmd->instance,
1884 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1894 bfad_iocmd_phy_get_stats(struct bfad_s *bfad, void *cmd)
1902 spin_lock_irqsave(&bfad->bfad_lock, flags);
1903 iocmd->status = bfa_phy_get_stats(BFA_PHY(&bfad->bfa), iocmd->instance,
1905 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1915 bfad_iocmd_phy_read(struct bfad_s *bfad, void *cmd, unsigned int payload_len)
1931 spin_lock_irqsave(&bfad->bfad_lock, flags);
1932 iocmd->status = bfa_phy_read(BFA_PHY(&bfad->bfa),
1935 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1947 bfad_iocmd_vhba_query(struct bfad_s *bfad, void *cmd)
1954 spin_lock_irqsave(&bfad->bfad_lock, flags);
1955 attr->pwwn = bfad->bfa.ioc.attr->pwwn;
1956 attr->nwwn = bfad->bfa.ioc.attr->nwwn;
1957 attr->plog_enabled = (bfa_boolean_t)bfad->bfa.plog->plog_enabled;
1958 attr->io_profile = bfa_fcpim_get_io_profile(&bfad->bfa);
1959 attr->path_tov = bfa_fcpim_path_tov_get(&bfad->bfa);
1961 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1966 bfad_iocmd_phy_update(struct bfad_s *bfad, void *cmd, unsigned int payload_len)
1982 spin_lock_irqsave(&bfad->bfad_lock, flags);
1983 iocmd->status = bfa_phy_update(BFA_PHY(&bfad->bfa),
1986 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
1996 bfad_iocmd_porglog_get(struct bfad_s *bfad, void *cmd)
2002 bfa_trc(bfad, sizeof(struct bfa_plog_s));
2009 memcpy(iocmd_bufptr, (u8 *) &bfad->plog_buf, sizeof(struct bfa_plog_s));
2016 bfad_iocmd_debug_fw_core(struct bfad_s *bfad, void *cmd,
2033 bfa_trc(bfad, BFA_DEBUG_FW_CORE_CHUNK_SZ);
2039 spin_lock_irqsave(&bfad->bfad_lock, flags);
2041 iocmd->status = bfa_ioc_debug_fwcore(&bfad->bfa.ioc, iocmd_bufptr,
2044 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2050 bfad_iocmd_debug_ctl(struct bfad_s *bfad, void *cmd, unsigned int v_cmd)
2056 spin_lock_irqsave(&bfad->bfad_lock, flags);
2057 bfad->bfa.ioc.dbg_fwsave_once = BFA_TRUE;
2058 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2060 bfad->plog_buf.head = bfad->plog_buf.tail = 0;
2062 bfa_trc_init(bfad->trcmod);
2064 bfa_trc_stop(bfad->trcmod);
2071 bfad_iocmd_porglog_ctl(struct bfad_s *bfad, void *cmd)
2076 bfad->plog_buf.plog_enabled = 1;
2078 bfad->plog_buf.plog_enabled = 0;
2085 bfad_iocmd_fcpim_cfg_profile(struct bfad_s *bfad, void *cmd, unsigned int v_cmd)
2091 spin_lock_irqsave(&bfad->bfad_lock, flags);
2093 iocmd->status = bfa_fcpim_profile_on(&bfad->bfa, ktime_get_real_seconds());
2095 iocmd->status = bfa_fcpim_profile_off(&bfad->bfa);
2096 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2102 bfad_iocmd_itnim_get_ioprofile(struct bfad_s *bfad, void *cmd)
2110 spin_lock_irqsave(&bfad->bfad_lock, flags);
2111 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs,
2124 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2129 bfad_iocmd_fcport_get_stats(struct bfad_s *bfad, void *cmd)
2139 spin_lock_irqsave(&bfad->bfad_lock, flags);
2140 iocmd->status = bfa_fcport_get_stats(&bfad->bfa, &cb_qe);
2141 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2143 bfa_trc(bfad, iocmd->status);
2153 bfad_iocmd_fcport_reset_stats(struct bfad_s *bfad, void *cmd)
2163 spin_lock_irqsave(&bfad->bfad_lock, flags);
2164 iocmd->status = bfa_fcport_clear_stats(&bfad->bfa, &cb_qe);
2165 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2167 bfa_trc(bfad, iocmd->status);
2177 bfad_iocmd_boot_cfg(struct bfad_s *bfad, void *cmd)
2184 spin_lock_irqsave(&bfad->bfad_lock, flags);
2185 iocmd->status = bfa_flash_update_part(BFA_FLASH(&bfad->bfa),
2186 BFA_FLASH_PART_BOOT, bfad->bfa.ioc.port_id,
2189 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2199 bfad_iocmd_boot_query(struct bfad_s *bfad, void *cmd)
2206 spin_lock_irqsave(&bfad->bfad_lock, flags);
2207 iocmd->status = bfa_flash_read_part(BFA_FLASH(&bfad->bfa),
2208 BFA_FLASH_PART_BOOT, bfad->bfa.ioc.port_id,
2211 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2221 bfad_iocmd_preboot_query(struct bfad_s *bfad, void *cmd)
2224 struct bfi_iocfc_cfgrsp_s *cfgrsp = bfad->bfa.iocfc.cfgrsp;
2228 spin_lock_irqsave(&bfad->bfad_lock, flags);
2234 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2240 bfad_iocmd_ethboot_cfg(struct bfad_s *bfad, void *cmd)
2247 spin_lock_irqsave(&bfad->bfad_lock, flags);
2248 iocmd->status = bfa_flash_update_part(BFA_FLASH(&bfad->bfa),
2250 bfad->bfa.ioc.port_id, &iocmd->cfg,
2253 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2263 bfad_iocmd_ethboot_query(struct bfad_s *bfad, void *cmd)
2270 spin_lock_irqsave(&bfad->bfad_lock, flags);
2271 iocmd->status = bfa_flash_read_part(BFA_FLASH(&bfad->bfa),
2273 bfad->bfa.ioc.port_id, &iocmd->cfg,
2276 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2286 bfad_iocmd_cfg_trunk(struct bfad_s *bfad, void *cmd, unsigned int v_cmd)
2289 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa);
2293 spin_lock_irqsave(&bfad->bfad_lock, flags);
2295 if (bfa_fcport_is_dport(&bfad->bfa)) {
2296 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2306 bfa_fcport_disable(&bfad->bfa);
2310 bfa_fcport_disable(&bfad->bfa);
2314 if (!bfa_fcport_is_disabled(&bfad->bfa))
2315 bfa_fcport_enable(&bfad->bfa);
2320 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2326 bfad_iocmd_trunk_get_attr(struct bfad_s *bfad, void *cmd)
2329 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa);
2333 spin_lock_irqsave(&bfad->bfad_lock, flags);
2340 iocmd->attr.port_id = bfa_lps_get_base_pid(&bfad->bfa);
2343 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2349 bfad_iocmd_qos(struct bfad_s *bfad, void *cmd, unsigned int v_cmd)
2352 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa);
2355 spin_lock_irqsave(&bfad->bfad_lock, flags);
2356 if (bfa_ioc_get_type(&bfad->bfa.ioc) == BFA_IOC_TYPE_FC) {
2371 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2377 bfad_iocmd_qos_get_attr(struct bfad_s *bfad, void *cmd)
2380 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa);
2383 spin_lock_irqsave(&bfad->bfad_lock, flags);
2397 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2403 bfad_iocmd_qos_get_vc_attr(struct bfad_s *bfad, void *cmd)
2407 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa);
2412 spin_lock_irqsave(&bfad->bfad_lock, flags);
2428 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2435 bfad_iocmd_qos_get_stats(struct bfad_s *bfad, void *cmd)
2442 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa);
2447 spin_lock_irqsave(&bfad->bfad_lock, flags);
2448 WARN_ON(!bfa_ioc_get_fcmode(&bfad->bfa.ioc));
2453 iocmd->status = bfa_fcport_get_stats(&bfad->bfa, &cb_qe);
2454 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2456 bfa_trc(bfad, iocmd->status);
2466 bfad_iocmd_qos_reset_stats(struct bfad_s *bfad, void *cmd)
2472 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(&bfad->bfa);
2477 spin_lock_irqsave(&bfad->bfad_lock, flags);
2478 WARN_ON(!bfa_ioc_get_fcmode(&bfad->bfa.ioc));
2483 iocmd->status = bfa_fcport_clear_stats(&bfad->bfa, &cb_qe);
2484 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2486 bfa_trc(bfad, iocmd->status);
2496 bfad_iocmd_vf_get_stats(struct bfad_s *bfad, void *cmd)
2503 spin_lock_irqsave(&bfad->bfad_lock, flags);
2504 fcs_vf = bfa_fcs_vf_lookup(&bfad->bfa_fcs, iocmd->vf_id);
2506 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2512 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2519 bfad_iocmd_vf_clr_stats(struct bfad_s *bfad, void *cmd)
2526 spin_lock_irqsave(&bfad->bfad_lock, flags);
2527 fcs_vf = bfa_fcs_vf_lookup(&bfad->bfa_fcs, iocmd->vf_id);
2529 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2534 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2571 bfad_iocmd_lunmask_reset_lunscan_mode(struct bfad_s *bfad, int lunmask_cfg)
2573 struct bfad_im_port_s *pport_im = bfad->pport.im_port;
2580 list_for_each_entry(vport, &bfad->vport_list, list_entry)
2585 bfad_iocmd_lunmask(struct bfad_s *bfad, void *pcmd, unsigned int v_cmd)
2590 spin_lock_irqsave(&bfad->bfad_lock, flags);
2592 iocmd->status = bfa_fcpim_lunmask_update(&bfad->bfa, BFA_TRUE);
2595 bfad_iocmd_lunmask_reset_lunscan_mode(bfad, BFA_TRUE);
2597 iocmd->status = bfa_fcpim_lunmask_update(&bfad->bfa, BFA_FALSE);
2600 bfad_iocmd_lunmask_reset_lunscan_mode(bfad, BFA_FALSE);
2602 iocmd->status = bfa_fcpim_lunmask_clear(&bfad->bfa);
2603 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2608 bfad_iocmd_fcpim_lunmask_query(struct bfad_s *bfad, void *cmd)
2615 spin_lock_irqsave(&bfad->bfad_lock, flags);
2616 iocmd->status = bfa_fcpim_lunmask_query(&bfad->bfa, lun_mask);
2617 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2622 bfad_iocmd_fcpim_cfg_lunmask(struct bfad_s *bfad, void *cmd, unsigned int v_cmd)
2628 spin_lock_irqsave(&bfad->bfad_lock, flags);
2630 iocmd->status = bfa_fcpim_lunmask_add(&bfad->bfa, iocmd->vf_id,
2633 iocmd->status = bfa_fcpim_lunmask_delete(&bfad->bfa,
2636 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2641 bfad_iocmd_fcpim_throttle_query(struct bfad_s *bfad, void *cmd)
2647 spin_lock_irqsave(&bfad->bfad_lock, flags);
2648 iocmd->status = bfa_fcpim_throttle_get(&bfad->bfa,
2650 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2656 bfad_iocmd_fcpim_throttle_set(struct bfad_s *bfad, void *cmd)
2662 spin_lock_irqsave(&bfad->bfad_lock, flags);
2663 iocmd->status = bfa_fcpim_throttle_set(&bfad->bfa,
2665 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2671 bfad_iocmd_tfru_read(struct bfad_s *bfad, void *cmd)
2679 spin_lock_irqsave(&bfad->bfad_lock, flags);
2680 iocmd->status = bfa_tfru_read(BFA_FRU(&bfad->bfa),
2683 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2693 bfad_iocmd_tfru_write(struct bfad_s *bfad, void *cmd)
2701 spin_lock_irqsave(&bfad->bfad_lock, flags);
2702 iocmd->status = bfa_tfru_write(BFA_FRU(&bfad->bfa),
2705 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2715 bfad_iocmd_fruvpd_read(struct bfad_s *bfad, void *cmd)
2723 spin_lock_irqsave(&bfad->bfad_lock, flags);
2724 iocmd->status = bfa_fruvpd_read(BFA_FRU(&bfad->bfa),
2727 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2737 bfad_iocmd_fruvpd_update(struct bfad_s *bfad, void *cmd)
2745 spin_lock_irqsave(&bfad->bfad_lock, flags);
2746 iocmd->status = bfa_fruvpd_update(BFA_FRU(&bfad->bfa),
2749 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2759 bfad_iocmd_fruvpd_get_max_size(struct bfad_s *bfad, void *cmd)
2765 spin_lock_irqsave(&bfad->bfad_lock, flags);
2766 iocmd->status = bfa_fruvpd_get_max_size(BFA_FRU(&bfad->bfa),
2768 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
2774 bfad_iocmd_handler(struct bfad_s *bfad, unsigned int cmd, void *iocmd,
2781 rc = bfad_iocmd_ioc_enable(bfad, iocmd);
2784 rc = bfad_iocmd_ioc_disable(bfad, iocmd);
2787 rc = bfad_iocmd_ioc_get_info(bfad, iocmd);
2790 rc = bfad_iocmd_ioc_get_attr(bfad, iocmd);
2793 rc = bfad_iocmd_ioc_get_stats(bfad, iocmd);
2796 rc = bfad_iocmd_ioc_get_fwstats(bfad, iocmd, payload_len);
2800 rc = bfad_iocmd_ioc_reset_stats(bfad, iocmd, cmd);
2804 rc = bfad_iocmd_ioc_set_name(bfad, iocmd, cmd);
2807 rc = bfad_iocmd_iocfc_get_attr(bfad, iocmd);
2810 rc = bfad_iocmd_iocfc_set_intr(bfad, iocmd);
2813 rc = bfad_iocmd_port_enable(bfad, iocmd);
2816 rc = bfad_iocmd_port_disable(bfad, iocmd);
2819 rc = bfad_iocmd_port_get_attr(bfad, iocmd);
2822 rc = bfad_iocmd_port_get_stats(bfad, iocmd, payload_len);
2825 rc = bfad_iocmd_port_reset_stats(bfad, iocmd);
2831 rc = bfad_iocmd_set_port_cfg(bfad, iocmd, cmd);
2834 rc = bfad_iocmd_port_cfg_maxfrsize(bfad, iocmd);
2838 rc = bfad_iocmd_port_cfg_bbcr(bfad, cmd, iocmd);
2841 rc = bfad_iocmd_port_get_bbcr_attr(bfad, iocmd);
2844 rc = bfad_iocmd_lport_get_attr(bfad, iocmd);
2847 rc = bfad_iocmd_lport_get_stats(bfad, iocmd);
2850 rc = bfad_iocmd_lport_reset_stats(bfad, iocmd);
2853 rc = bfad_iocmd_lport_get_iostats(bfad, iocmd);
2856 rc = bfad_iocmd_lport_get_rports(bfad, iocmd, payload_len);
2859 rc = bfad_iocmd_rport_get_attr(bfad, iocmd);
2862 rc = bfad_iocmd_rport_get_addr(bfad, iocmd);
2865 rc = bfad_iocmd_rport_get_stats(bfad, iocmd);
2868 rc = bfad_iocmd_rport_clr_stats(bfad, iocmd);
2871 rc = bfad_iocmd_rport_set_speed(bfad, iocmd);
2874 rc = bfad_iocmd_vport_get_attr(bfad, iocmd);
2877 rc = bfad_iocmd_vport_get_stats(bfad, iocmd);
2880 rc = bfad_iocmd_vport_clr_stats(bfad, iocmd);
2883 rc = bfad_iocmd_fabric_get_lports(bfad, iocmd, payload_len);
2887 rc = bfad_iocmd_ratelim(bfad, cmd, iocmd);
2890 rc = bfad_iocmd_ratelim_speed(bfad, cmd, iocmd);
2893 rc = bfad_iocmd_cfg_fcpim(bfad, iocmd);
2896 rc = bfad_iocmd_fcpim_get_modstats(bfad, iocmd);
2899 rc = bfad_iocmd_fcpim_clr_modstats(bfad, iocmd);
2902 rc = bfad_iocmd_fcpim_get_del_itn_stats(bfad, iocmd);
2905 rc = bfad_iocmd_itnim_get_attr(bfad, iocmd);
2908 rc = bfad_iocmd_itnim_get_iostats(bfad, iocmd);
2911 rc = bfad_iocmd_itnim_reset_stats(bfad, iocmd);
2914 rc = bfad_iocmd_itnim_get_itnstats(bfad, iocmd);
2917 rc = bfad_iocmd_fcport_enable(bfad, iocmd);
2920 rc = bfad_iocmd_fcport_disable(bfad, iocmd);
2923 rc = bfad_iocmd_ioc_get_pcifn_cfg(bfad, iocmd);
2926 rc = bfad_iocmd_ioc_fw_sig_inv(bfad, iocmd);
2929 rc = bfad_iocmd_pcifn_create(bfad, iocmd);
2932 rc = bfad_iocmd_pcifn_delete(bfad, iocmd);
2935 rc = bfad_iocmd_pcifn_bw(bfad, iocmd);
2938 rc = bfad_iocmd_adapter_cfg_mode(bfad, iocmd);
2941 rc = bfad_iocmd_port_cfg_mode(bfad, iocmd);
2945 rc = bfad_iocmd_ablk_optrom(bfad, cmd, iocmd);
2948 rc = bfad_iocmd_faa_query(bfad, iocmd);
2951 rc = bfad_iocmd_cee_attr(bfad, iocmd, payload_len);
2954 rc = bfad_iocmd_cee_get_stats(bfad, iocmd, payload_len);
2957 rc = bfad_iocmd_cee_reset_stats(bfad, iocmd);
2960 rc = bfad_iocmd_sfp_media(bfad, iocmd);
2963 rc = bfad_iocmd_sfp_speed(bfad, iocmd);
2966 rc = bfad_iocmd_flash_get_attr(bfad, iocmd);
2969 rc = bfad_iocmd_flash_erase_part(bfad, iocmd);
2972 rc = bfad_iocmd_flash_update_part(bfad, iocmd, payload_len);
2975 rc = bfad_iocmd_flash_read_part(bfad, iocmd, payload_len);
2978 rc = bfad_iocmd_diag_temp(bfad, iocmd);
2981 rc = bfad_iocmd_diag_memtest(bfad, iocmd);
2984 rc = bfad_iocmd_diag_loopback(bfad, iocmd);
2987 rc = bfad_iocmd_diag_fwping(bfad, iocmd);
2990 rc = bfad_iocmd_diag_queuetest(bfad, iocmd);
2993 rc = bfad_iocmd_diag_sfp(bfad, iocmd);
2996 rc = bfad_iocmd_diag_led(bfad, iocmd);
2999 rc = bfad_iocmd_diag_beacon_lport(bfad, iocmd);
3002 rc = bfad_iocmd_diag_lb_stat(bfad, iocmd);
3005 rc = bfad_iocmd_diag_dport_enable(bfad, iocmd);
3008 rc = bfad_iocmd_diag_dport_disable(bfad, iocmd);
3011 rc = bfad_iocmd_diag_dport_show(bfad, iocmd);
3014 rc = bfad_iocmd_diag_dport_start(bfad, iocmd);
3017 rc = bfad_iocmd_phy_get_attr(bfad, iocmd);
3020 rc = bfad_iocmd_phy_get_stats(bfad, iocmd);
3023 rc = bfad_iocmd_phy_update(bfad, iocmd, payload_len);
3026 rc = bfad_iocmd_phy_read(bfad, iocmd, payload_len);
3029 rc = bfad_iocmd_vhba_query(bfad, iocmd);
3032 rc = bfad_iocmd_porglog_get(bfad, iocmd);
3035 rc = bfad_iocmd_debug_fw_core(bfad, iocmd, payload_len);
3041 rc = bfad_iocmd_debug_ctl(bfad, iocmd, cmd);
3044 rc = bfad_iocmd_porglog_ctl(bfad, iocmd);
3048 rc = bfad_iocmd_fcpim_cfg_profile(bfad, iocmd, cmd);
3051 rc = bfad_iocmd_itnim_get_ioprofile(bfad, iocmd);
3054 rc = bfad_iocmd_fcport_get_stats(bfad, iocmd);
3057 rc = bfad_iocmd_fcport_reset_stats(bfad, iocmd);
3060 rc = bfad_iocmd_boot_cfg(bfad, iocmd);
3063 rc = bfad_iocmd_boot_query(bfad, iocmd);
3066 rc = bfad_iocmd_preboot_query(bfad, iocmd);
3069 rc = bfad_iocmd_ethboot_cfg(bfad, iocmd);
3072 rc = bfad_iocmd_ethboot_query(bfad, iocmd);
3076 rc = bfad_iocmd_cfg_trunk(bfad, iocmd, cmd);
3079 rc = bfad_iocmd_trunk_get_attr(bfad, iocmd);
3083 rc = bfad_iocmd_qos(bfad, iocmd, cmd);
3086 rc = bfad_iocmd_qos_get_attr(bfad, iocmd);
3089 rc = bfad_iocmd_qos_get_vc_attr(bfad, iocmd);
3092 rc = bfad_iocmd_qos_get_stats(bfad, iocmd);
3095 rc = bfad_iocmd_qos_reset_stats(bfad, iocmd);
3098 rc = bfad_iocmd_qos_set_bw(bfad, iocmd);
3101 rc = bfad_iocmd_vf_get_stats(bfad, iocmd);
3104 rc = bfad_iocmd_vf_clr_stats(bfad, iocmd);
3109 rc = bfad_iocmd_lunmask(bfad, iocmd, cmd);
3112 rc = bfad_iocmd_fcpim_lunmask_query(bfad, iocmd);
3116 rc = bfad_iocmd_fcpim_cfg_lunmask(bfad, iocmd, cmd);
3119 rc = bfad_iocmd_fcpim_throttle_query(bfad, iocmd);
3122 rc = bfad_iocmd_fcpim_throttle_set(bfad, iocmd);
3126 rc = bfad_iocmd_tfru_read(bfad, iocmd);
3129 rc = bfad_iocmd_tfru_write(bfad, iocmd);
3133 rc = bfad_iocmd_fruvpd_read(bfad, iocmd);
3136 rc = bfad_iocmd_fruvpd_update(bfad, iocmd);
3139 rc = bfad_iocmd_fruvpd_get_max_size(bfad, iocmd);
3156 struct bfad_s *bfad = im_port->bfad;
3173 rc = bfad_iocmd_handler(bfad, vendor_cmd, payload_kbuf,
3266 bfad_fcxp_map_sg(struct bfad_s *bfad, void *payload_kbuf,
3285 buf_info->virt = dma_alloc_coherent(&bfad->pcidev->dev,
3310 bfad_fcxp_free_mem(struct bfad_s *bfad, struct bfad_buf_info *buf_base,
3319 dma_free_coherent(&bfad->pcidev->dev,
3332 struct bfad_s *bfad = drv_fcxp->port->bfad;
3336 spin_lock_irqsave(&bfad->bfad_lock, flags);
3339 hal_fcxp = bfa_fcxp_req_rsp_alloc(drv_fcxp, &bfad->bfa,
3347 bfa_trc(bfad, 0);
3348 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
3354 lp_tag = bfa_lps_get_tag_from_pid(&bfad->bfa, bsg_fcpt->fchs.s_id);
3359 &bsg_fcpt->fchs, bfad_send_fcpt_cb, bfad,
3362 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
3373 struct bfad_s *bfad = im_port->bfad;
3420 spin_lock_irqsave(&bfad->bfad_lock, flags);
3421 fcs_port = bfa_fcs_lookup_port(&bfad->bfa_fcs, bsg_fcpt->vf_id,
3425 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
3432 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
3438 if (!drv_fcxp->port->bfad)
3439 drv_fcxp->port->bfad = bfad;
3454 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
3461 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
3465 spin_unlock_irqrestore(&bfad->bfad_lock, flags);
3471 bfad->pci_name);
3479 bfad->pci_name);
3489 drv_fcxp->reqbuf_info = bfad_fcxp_map_sg(bfad, req_kbuf,
3494 bfad->pci_name);
3505 drv_fcxp->rspbuf_info = bfad_fcxp_map_sg(bfad, rsp_kbuf,
3510 bfad->pci_name);
3552 bfad_fcxp_free_mem(bfad, drv_fcxp->rspbuf_info,
3554 bfad_fcxp_free_mem(bfad, drv_fcxp->reqbuf_info,