[SCSI] bfa: fix comments for c files

This patch addresses the comments from Randy Dunlap (Randy.Dunlap@oracle.com)
regarding comment blocks that begining with "/**". bfa driver comments
currently do not follow kernel-doc convention, we hence replace all
/** with /* and **/ with */.

Signed-off-by: Jing Huang <huangj@brocade.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>

authored by

Jing Huang and committed by
James Bottomley
5fbe25c7 acdc79a6

+943 -1003
+56 -56
drivers/scsi/bfa/bfa_core.c
··· 21 21 22 22 BFA_TRC_FILE(HAL, CORE); 23 23 24 - /** 24 + /* 25 25 * BFA IOC FC related definitions 26 26 */ 27 27 28 - /** 28 + /* 29 29 * IOC local definitions 30 30 */ 31 31 #define BFA_IOCFC_TOV 5000 /* msecs */ ··· 54 54 #define DEF_CFG_NUM_SBOOT_TGTS 16 55 55 #define DEF_CFG_NUM_SBOOT_LUNS 16 56 56 57 - /** 57 + /* 58 58 * forward declaration for IOC FC functions 59 59 */ 60 60 static void bfa_iocfc_enable_cbfn(void *bfa_arg, enum bfa_status status); ··· 63 63 static void bfa_iocfc_reset_cbfn(void *bfa_arg); 64 64 static struct bfa_ioc_cbfn_s bfa_iocfc_cbfn; 65 65 66 - /** 66 + /* 67 67 * BFA Interrupt handling functions 68 68 */ 69 69 static void ··· 86 86 87 87 waitq = bfa_reqq(bfa, qid); 88 88 list_for_each_safe(qe, qen, waitq) { 89 - /** 89 + /* 90 90 * Callback only as long as there is room in request queue 91 91 */ 92 92 if (bfa_reqq_full(bfa, qid)) ··· 104 104 bfa_intx(bfa); 105 105 } 106 106 107 - /** 107 + /* 108 108 * hal_intr_api 109 109 */ 110 110 bfa_boolean_t ··· 117 117 if (!intr) 118 118 return BFA_FALSE; 119 119 120 - /** 120 + /* 121 121 * RME completion queue interrupt 122 122 */ 123 123 qintr = intr & __HFN_INT_RME_MASK; ··· 131 131 if (!intr) 132 132 return BFA_TRUE; 133 133 134 - /** 134 + /* 135 135 * CPE completion queue interrupt 136 136 */ 137 137 qintr = intr & __HFN_INT_CPE_MASK; ··· 211 211 212 212 bfa->iocfc.hwif.hw_reqq_ack(bfa, qid); 213 213 214 - /** 214 + /* 215 215 * Resume any pending requests in the corresponding reqq. 216 216 */ 217 217 waitq = bfa_reqq(bfa, qid); ··· 259 259 } 260 260 } 261 261 262 - /** 262 + /* 263 263 * update CI 264 264 */ 265 265 bfa_rspq_ci(bfa, qid) = pi; 266 266 writel(pi, bfa->iocfc.bfa_regs.rme_q_ci[qid]); 267 267 mmiowb(); 268 268 269 - /** 269 + /* 270 270 * Resume any pending requests in the corresponding reqq. 271 271 */ 272 272 waitq = bfa_reqq(bfa, qid); ··· 289 289 290 290 if (intr) { 291 291 if (intr & __HFN_INT_LL_HALT) { 292 - /** 292 + /* 293 293 * If LL_HALT bit is set then FW Init Halt LL Port 294 294 * Register needs to be cleared as well so Interrupt 295 295 * Status Register will be cleared. ··· 300 300 } 301 301 302 302 if (intr & __HFN_INT_ERR_PSS) { 303 - /** 303 + /* 304 304 * ERR_PSS bit needs to be cleared as well in case 305 305 * interrups are shared so driver's interrupt handler is 306 306 * still called eventhough it is already masked out. ··· 323 323 bfa_isrs[mc] = isr_func; 324 324 } 325 325 326 - /** 326 + /* 327 327 * BFA IOC FC related functions 328 328 */ 329 329 330 - /** 330 + /* 331 331 * hal_ioc_pvt BFA IOC private functions 332 332 */ 333 333 ··· 366 366 BFA_CACHELINE_SZ); 367 367 } 368 368 369 - /** 369 + /* 370 370 * Use the Mailbox interface to send BFI_IOCFC_H2I_CFG_REQ 371 371 */ 372 372 static void ··· 384 384 385 385 bfa_iocfc_reset_queues(bfa); 386 386 387 - /** 387 + /* 388 388 * initialize IOC configuration info 389 389 */ 390 390 cfg_info->endian_sig = BFI_IOC_ENDIAN_SIG; 391 391 cfg_info->num_cqs = cfg->fwcfg.num_cqs; 392 392 393 393 bfa_dma_be_addr_set(cfg_info->cfgrsp_addr, iocfc->cfgrsp_dma.pa); 394 - /** 394 + /* 395 395 * dma map REQ and RSP circular queues and shadow pointers 396 396 */ 397 397 for (i = 0; i < cfg->fwcfg.num_cqs; i++) { ··· 410 410 cpu_to_be16(cfg->drvcfg.num_rspq_elems); 411 411 } 412 412 413 - /** 413 + /* 414 414 * Enable interrupt coalescing if it is driver init path 415 415 * and not ioc disable/enable path. 416 416 */ ··· 419 419 420 420 iocfc->cfgdone = BFA_FALSE; 421 421 422 - /** 422 + /* 423 423 * dma map IOC configuration itself 424 424 */ 425 425 bfi_h2i_set(cfg_req.mh, BFI_MC_IOCFC, BFI_IOCFC_H2I_CFG_REQ, ··· 442 442 443 443 iocfc->cfg = *cfg; 444 444 445 - /** 445 + /* 446 446 * Initialize chip specific handlers. 447 447 */ 448 448 if (bfa_asic_id_ct(bfa_ioc_devid(&bfa->ioc))) { ··· 559 559 } 560 560 } 561 561 562 - /** 562 + /* 563 563 * Start BFA submodules. 564 564 */ 565 565 static void ··· 573 573 hal_mods[i]->start(bfa); 574 574 } 575 575 576 - /** 576 + /* 577 577 * Disable BFA submodules. 578 578 */ 579 579 static void ··· 623 623 complete(&bfad->disable_comp); 624 624 } 625 625 626 - /** 626 + /* 627 627 * Update BFA configuration from firmware configuration. 628 628 */ 629 629 static void ··· 642 642 643 643 iocfc->cfgdone = BFA_TRUE; 644 644 645 - /** 645 + /* 646 646 * Configuration is complete - initialize/start submodules 647 647 */ 648 648 bfa_fcport_init(bfa); ··· 665 665 } 666 666 } 667 667 668 - /** 668 + /* 669 669 * IOC enable request is complete 670 670 */ 671 671 static void ··· 684 684 bfa_iocfc_send_cfg(bfa); 685 685 } 686 686 687 - /** 687 + /* 688 688 * IOC disable request is complete 689 689 */ 690 690 static void ··· 705 705 } 706 706 } 707 707 708 - /** 708 + /* 709 709 * Notify sub-modules of hardware failure. 710 710 */ 711 711 static void ··· 723 723 bfa); 724 724 } 725 725 726 - /** 726 + /* 727 727 * Actions on chip-reset completion. 728 728 */ 729 729 static void ··· 735 735 bfa_isr_enable(bfa); 736 736 } 737 737 738 - /** 738 + /* 739 739 * hal_ioc_public 740 740 */ 741 741 742 - /** 742 + /* 743 743 * Query IOC memory requirement information. 744 744 */ 745 745 void ··· 754 754 *km_len += bfa_ioc_debug_trcsz(bfa_auto_recover); 755 755 } 756 756 757 - /** 757 + /* 758 758 * Query IOC memory requirement information. 759 759 */ 760 760 void ··· 772 772 ioc->trcmod = bfa->trcmod; 773 773 bfa_ioc_attach(&bfa->ioc, bfa, &bfa_iocfc_cbfn, &bfa->timer_mod); 774 774 775 - /** 775 + /* 776 776 * Set FC mode for BFA_PCI_DEVICE_ID_CT_FC. 777 777 */ 778 778 if (pcidev->device_id == BFA_PCI_DEVICE_ID_CT_FC) ··· 790 790 INIT_LIST_HEAD(&bfa->reqq_waitq[i]); 791 791 } 792 792 793 - /** 793 + /* 794 794 * Query IOC memory requirement information. 795 795 */ 796 796 void ··· 799 799 bfa_ioc_detach(&bfa->ioc); 800 800 } 801 801 802 - /** 802 + /* 803 803 * Query IOC memory requirement information. 804 804 */ 805 805 void ··· 809 809 bfa_ioc_enable(&bfa->ioc); 810 810 } 811 811 812 - /** 812 + /* 813 813 * IOC start called from bfa_start(). Called to start IOC operations 814 814 * at driver instantiation for this instance. 815 815 */ ··· 820 820 bfa_iocfc_start_submod(bfa); 821 821 } 822 822 823 - /** 823 + /* 824 824 * IOC stop called from bfa_stop(). Called only when driver is unloaded 825 825 * for this instance. 826 826 */ ··· 924 924 iocfc->cfginfo->sense_buf_len = (BFI_IOIM_SNSLEN - 1); 925 925 bfa_dma_be_addr_set(iocfc->cfginfo->ioim_snsbase, snsbase_pa); 926 926 } 927 - /** 927 + /* 928 928 * Enable IOC after it is disabled. 929 929 */ 930 930 void ··· 953 953 return bfa_ioc_is_operational(&bfa->ioc) && bfa->iocfc.cfgdone; 954 954 } 955 955 956 - /** 956 + /* 957 957 * Return boot target port wwns -- read from boot information in flash. 958 958 */ 959 959 void ··· 998 998 return cfgrsp->pbc_cfg.nvports; 999 999 } 1000 1000 1001 - /** 1001 + /* 1002 1002 * hal_api 1003 1003 */ 1004 1004 1005 - /** 1005 + /* 1006 1006 * Use this function query the memory requirement of the BFA library. 1007 1007 * This function needs to be called before bfa_attach() to get the 1008 1008 * memory required of the BFA layer for a given driver configuration. ··· 1055 1055 meminfo->meminfo[BFA_MEM_TYPE_DMA - 1].mem_len = dm_len; 1056 1056 } 1057 1057 1058 - /** 1058 + /* 1059 1059 * Use this function to do attach the driver instance with the BFA 1060 1060 * library. This function will not trigger any HW initialization 1061 1061 * process (which will be done in bfa_init() call) ··· 1092 1092 1093 1093 bfa_assert((cfg != NULL) && (meminfo != NULL)); 1094 1094 1095 - /** 1095 + /* 1096 1096 * initialize all memory pointers for iterative allocation 1097 1097 */ 1098 1098 for (i = 0; i < BFA_MEM_TYPE_MAX; i++) { ··· 1109 1109 bfa_com_port_attach(bfa, meminfo); 1110 1110 } 1111 1111 1112 - /** 1112 + /* 1113 1113 * Use this function to delete a BFA IOC. IOC should be stopped (by 1114 1114 * calling bfa_stop()) before this function call. 1115 1115 * ··· 1146 1146 bfa->plog = plog; 1147 1147 } 1148 1148 1149 - /** 1149 + /* 1150 1150 * Initialize IOC. 1151 1151 * 1152 1152 * This function will return immediately, when the IOC initialization is ··· 1169 1169 bfa_iocfc_init(bfa); 1170 1170 } 1171 1171 1172 - /** 1172 + /* 1173 1173 * Use this function initiate the IOC configuration setup. This function 1174 1174 * will return immediately. 1175 1175 * ··· 1183 1183 bfa_iocfc_start(bfa); 1184 1184 } 1185 1185 1186 - /** 1186 + /* 1187 1187 * Use this function quiese the IOC. This function will return immediately, 1188 1188 * when the IOC is actually stopped, the bfad->comp will be set. 1189 1189 * ··· 1243 1243 bfa->fcs = BFA_TRUE; 1244 1244 } 1245 1245 1246 - /** 1246 + /* 1247 1247 * Periodic timer heart beat from driver 1248 1248 */ 1249 1249 void ··· 1252 1252 bfa_timer_beat(&bfa->timer_mod); 1253 1253 } 1254 1254 1255 - /** 1255 + /* 1256 1256 * Return the list of PCI vendor/device id lists supported by this 1257 1257 * BFA instance. 1258 1258 */ ··· 1270 1270 *pciids = __pciids; 1271 1271 } 1272 1272 1273 - /** 1273 + /* 1274 1274 * Use this function query the default struct bfa_iocfc_cfg_s value (compiled 1275 1275 * into BFA layer). The OS driver can then turn back and overwrite entries that 1276 1276 * have been configured by the user. ··· 1328 1328 bfa_ioc_get_attr(&bfa->ioc, ioc_attr); 1329 1329 } 1330 1330 1331 - /** 1331 + /* 1332 1332 * Retrieve firmware trace information on IOC failure. 1333 1333 */ 1334 1334 bfa_status_t ··· 1337 1337 return bfa_ioc_debug_fwsave(&bfa->ioc, trcdata, trclen); 1338 1338 } 1339 1339 1340 - /** 1340 + /* 1341 1341 * Clear the saved firmware trace information of an IOC. 1342 1342 */ 1343 1343 void ··· 1346 1346 bfa_ioc_debug_fwsave_clear(&bfa->ioc); 1347 1347 } 1348 1348 1349 - /** 1349 + /* 1350 1350 * Fetch firmware trace data. 1351 1351 * 1352 1352 * @param[in] bfa BFA instance ··· 1362 1362 return bfa_ioc_debug_fwtrc(&bfa->ioc, trcdata, trclen); 1363 1363 } 1364 1364 1365 - /** 1365 + /* 1366 1366 * Dump firmware memory. 1367 1367 * 1368 1368 * @param[in] bfa BFA instance ··· 1378 1378 { 1379 1379 return bfa_ioc_debug_fwcore(&bfa->ioc, buf, offset, buflen); 1380 1380 } 1381 - /** 1381 + /* 1382 1382 * Reset hw semaphore & usage cnt regs and initialize. 1383 1383 */ 1384 1384 void ··· 1388 1388 bfa_ioc_pll_init(&bfa->ioc); 1389 1389 } 1390 1390 1391 - /** 1391 + /* 1392 1392 * Fetch firmware statistics data. 1393 1393 * 1394 1394 * @param[in] bfa BFA instance
+3 -3
drivers/scsi/bfa/bfa_drv.c
··· 17 17 18 18 #include "bfa_modules.h" 19 19 20 - /** 20 + /* 21 21 * BFA module list terminated by NULL 22 22 */ 23 23 struct bfa_module_s *hal_mods[] = { ··· 31 31 NULL 32 32 }; 33 33 34 - /** 34 + /* 35 35 * Message handlers for various modules. 36 36 */ 37 37 bfa_isr_func_t bfa_isrs[BFI_MC_MAX] = { ··· 70 70 }; 71 71 72 72 73 - /** 73 + /* 74 74 * Message handlers for mailbox command classes 75 75 */ 76 76 bfa_ioc_mbox_mcfunc_t bfa_mbox_isrs[BFI_MC_MAX] = {
+1 -1
drivers/scsi/bfa/bfa_fcbuild.c
··· 150 150 fchs->s_id = (s_id); 151 151 fchs->ox_id = cpu_to_be16(ox_id); 152 152 153 - /** 153 + /* 154 154 * @todo no need to set ox_id for request 155 155 * no need to set rx_id for response 156 156 */
+150 -150
drivers/scsi/bfa/bfa_fcpim.c
··· 26 26 (__l->__stats += __r->__stats) 27 27 28 28 29 - /** 29 + /* 30 30 * BFA ITNIM Related definitions 31 31 */ 32 32 static void bfa_itnim_update_del_itn_stats(struct bfa_itnim_s *itnim); ··· 72 72 } \ 73 73 } while (0) 74 74 75 - /** 75 + /* 76 76 * bfa_itnim_sm BFA itnim state machine 77 77 */ 78 78 ··· 89 89 BFA_ITNIM_SM_QRESUME = 9, /* queue space available */ 90 90 }; 91 91 92 - /** 92 + /* 93 93 * BFA IOIM related definitions 94 94 */ 95 95 #define bfa_ioim_move_to_comp_q(__ioim) do { \ ··· 107 107 if ((__fcpim)->profile_start) \ 108 108 (__fcpim)->profile_start(__ioim); \ 109 109 } while (0) 110 - /** 110 + /* 111 111 * hal_ioim_sm 112 112 */ 113 113 114 - /** 114 + /* 115 115 * IO state machine events 116 116 */ 117 117 enum bfa_ioim_event { ··· 136 136 }; 137 137 138 138 139 - /** 139 + /* 140 140 * BFA TSKIM related definitions 141 141 */ 142 142 143 - /** 143 + /* 144 144 * task management completion handling 145 145 */ 146 146 #define bfa_tskim_qcomp(__tskim, __cbfn) do { \ ··· 165 165 BFA_TSKIM_SM_CLEANUP_DONE = 9, /* TM abort completion */ 166 166 }; 167 167 168 - /** 168 + /* 169 169 * forward declaration for BFA ITNIM functions 170 170 */ 171 171 static void bfa_itnim_iocdisable_cleanup(struct bfa_itnim_s *itnim); ··· 183 183 static void bfa_itnim_iotov_stop(struct bfa_itnim_s *itnim); 184 184 static void bfa_itnim_iotov_delete(struct bfa_itnim_s *itnim); 185 185 186 - /** 186 + /* 187 187 * forward declaration of ITNIM state machine 188 188 */ 189 189 static void bfa_itnim_sm_uninit(struct bfa_itnim_s *itnim, ··· 217 217 static void bfa_itnim_sm_deleting_qfull(struct bfa_itnim_s *itnim, 218 218 enum bfa_itnim_event event); 219 219 220 - /** 220 + /* 221 221 * forward declaration for BFA IOIM functions 222 222 */ 223 223 static bfa_boolean_t bfa_ioim_send_ioreq(struct bfa_ioim_s *ioim); ··· 233 233 static bfa_boolean_t bfa_ioim_is_abortable(struct bfa_ioim_s *ioim); 234 234 235 235 236 - /** 236 + /* 237 237 * forward declaration of BFA IO state machine 238 238 */ 239 239 static void bfa_ioim_sm_uninit(struct bfa_ioim_s *ioim, ··· 261 261 static void bfa_ioim_sm_cmnd_retry(struct bfa_ioim_s *ioim, 262 262 enum bfa_ioim_event event); 263 263 264 - /** 264 + /* 265 265 * forward declaration for BFA TSKIM functions 266 266 */ 267 267 static void __bfa_cb_tskim_done(void *cbarg, bfa_boolean_t complete); ··· 276 276 static void bfa_tskim_iocdisable_ios(struct bfa_tskim_s *tskim); 277 277 278 278 279 - /** 279 + /* 280 280 * forward declaration of BFA TSKIM state machine 281 281 */ 282 282 static void bfa_tskim_sm_uninit(struct bfa_tskim_s *tskim, ··· 294 294 static void bfa_tskim_sm_hcb(struct bfa_tskim_s *tskim, 295 295 enum bfa_tskim_event event); 296 296 297 - /** 297 + /* 298 298 * hal_fcpim_mod BFA FCP Initiator Mode module 299 299 */ 300 300 301 - /** 301 + /* 302 302 * Compute and return memory needed by FCP(im) module. 303 303 */ 304 304 static void ··· 307 307 { 308 308 bfa_itnim_meminfo(cfg, km_len, dm_len); 309 309 310 - /** 310 + /* 311 311 * IO memory 312 312 */ 313 313 if (cfg->fwcfg.num_ioim_reqs < BFA_IOIM_MIN) ··· 320 320 321 321 *dm_len += cfg->fwcfg.num_ioim_reqs * BFI_IOIM_SNSLEN; 322 322 323 - /** 323 + /* 324 324 * task management command memory 325 325 */ 326 326 if (cfg->fwcfg.num_tskim_reqs < BFA_TSKIM_MIN) ··· 604 604 605 605 606 606 607 - /** 607 + /* 608 608 * BFA ITNIM module state machine functions 609 609 */ 610 610 611 - /** 611 + /* 612 612 * Beginning/unallocated state - no events expected. 613 613 */ 614 614 static void ··· 629 629 } 630 630 } 631 631 632 - /** 632 + /* 633 633 * Beginning state, only online event expected. 634 634 */ 635 635 static void ··· 660 660 } 661 661 } 662 662 663 - /** 663 + /* 664 664 * Waiting for itnim create response from firmware. 665 665 */ 666 666 static void ··· 732 732 } 733 733 } 734 734 735 - /** 735 + /* 736 736 * Waiting for itnim create response from firmware, a delete is pending. 737 737 */ 738 738 static void ··· 760 760 } 761 761 } 762 762 763 - /** 763 + /* 764 764 * Online state - normal parking state. 765 765 */ 766 766 static void ··· 802 802 } 803 803 } 804 804 805 - /** 805 + /* 806 806 * Second level error recovery need. 807 807 */ 808 808 static void ··· 833 833 } 834 834 } 835 835 836 - /** 836 + /* 837 837 * Going offline. Waiting for active IO cleanup. 838 838 */ 839 839 static void ··· 870 870 } 871 871 } 872 872 873 - /** 873 + /* 874 874 * Deleting itnim. Waiting for active IO cleanup. 875 875 */ 876 876 static void ··· 898 898 } 899 899 } 900 900 901 - /** 901 + /* 902 902 * Rport offline. Fimrware itnim is being deleted - awaiting f/w response. 903 903 */ 904 904 static void ··· 955 955 } 956 956 } 957 957 958 - /** 958 + /* 959 959 * Offline state. 960 960 */ 961 961 static void ··· 987 987 } 988 988 } 989 989 990 - /** 990 + /* 991 991 * IOC h/w failed state. 992 992 */ 993 993 static void ··· 1023 1023 } 1024 1024 } 1025 1025 1026 - /** 1026 + /* 1027 1027 * Itnim is deleted, waiting for firmware response to delete. 1028 1028 */ 1029 1029 static void ··· 1068 1068 } 1069 1069 } 1070 1070 1071 - /** 1071 + /* 1072 1072 * Initiate cleanup of all IOs on an IOC failure. 1073 1073 */ 1074 1074 static void ··· 1088 1088 bfa_ioim_iocdisable(ioim); 1089 1089 } 1090 1090 1091 - /** 1091 + /* 1092 1092 * For IO request in pending queue, we pretend an early timeout. 1093 1093 */ 1094 1094 list_for_each_safe(qe, qen, &itnim->pending_q) { ··· 1102 1102 } 1103 1103 } 1104 1104 1105 - /** 1105 + /* 1106 1106 * IO cleanup completion 1107 1107 */ 1108 1108 static void ··· 1114 1114 bfa_sm_send_event(itnim, BFA_ITNIM_SM_CLEANUP); 1115 1115 } 1116 1116 1117 - /** 1117 + /* 1118 1118 * Initiate cleanup of all IOs. 1119 1119 */ 1120 1120 static void ··· 1129 1129 list_for_each_safe(qe, qen, &itnim->io_q) { 1130 1130 ioim = (struct bfa_ioim_s *) qe; 1131 1131 1132 - /** 1132 + /* 1133 1133 * Move IO to a cleanup queue from active queue so that a later 1134 1134 * TM will not pickup this IO. 1135 1135 */ ··· 1176 1176 bfa_cb_itnim_sler(itnim->ditn); 1177 1177 } 1178 1178 1179 - /** 1179 + /* 1180 1180 * Call to resume any I/O requests waiting for room in request queue. 1181 1181 */ 1182 1182 static void ··· 1190 1190 1191 1191 1192 1192 1193 - /** 1193 + /* 1194 1194 * bfa_itnim_public 1195 1195 */ 1196 1196 ··· 1210 1210 bfa_itnim_meminfo(struct bfa_iocfc_cfg_s *cfg, u32 *km_len, 1211 1211 u32 *dm_len) 1212 1212 { 1213 - /** 1213 + /* 1214 1214 * ITN memory 1215 1215 */ 1216 1216 *km_len += cfg->fwcfg.num_rports * sizeof(struct bfa_itnim_s); ··· 1264 1264 1265 1265 itnim->msg_no++; 1266 1266 1267 - /** 1267 + /* 1268 1268 * check for room in queue to send request now 1269 1269 */ 1270 1270 m = bfa_reqq_next(itnim->bfa, itnim->reqq); ··· 1281 1281 m->msg_no = itnim->msg_no; 1282 1282 bfa_stats(itnim, fw_create); 1283 1283 1284 - /** 1284 + /* 1285 1285 * queue I/O message to firmware 1286 1286 */ 1287 1287 bfa_reqq_produce(itnim->bfa, itnim->reqq); ··· 1293 1293 { 1294 1294 struct bfi_itnim_delete_req_s *m; 1295 1295 1296 - /** 1296 + /* 1297 1297 * check for room in queue to send request now 1298 1298 */ 1299 1299 m = bfa_reqq_next(itnim->bfa, itnim->reqq); ··· 1307 1307 m->fw_handle = itnim->rport->fw_handle; 1308 1308 bfa_stats(itnim, fw_delete); 1309 1309 1310 - /** 1310 + /* 1311 1311 * queue I/O message to firmware 1312 1312 */ 1313 1313 bfa_reqq_produce(itnim->bfa, itnim->reqq); 1314 1314 return BFA_TRUE; 1315 1315 } 1316 1316 1317 - /** 1317 + /* 1318 1318 * Cleanup all pending failed inflight requests. 1319 1319 */ 1320 1320 static void ··· 1329 1329 } 1330 1330 } 1331 1331 1332 - /** 1332 + /* 1333 1333 * Start all pending IO requests. 1334 1334 */ 1335 1335 static void ··· 1339 1339 1340 1340 bfa_itnim_iotov_stop(itnim); 1341 1341 1342 - /** 1342 + /* 1343 1343 * Abort all inflight IO requests in the queue 1344 1344 */ 1345 1345 bfa_itnim_delayed_comp(itnim, BFA_FALSE); 1346 1346 1347 - /** 1347 + /* 1348 1348 * Start all pending IO requests. 1349 1349 */ 1350 1350 while (!list_empty(&itnim->pending_q)) { ··· 1354 1354 } 1355 1355 } 1356 1356 1357 - /** 1357 + /* 1358 1358 * Fail all pending IO requests 1359 1359 */ 1360 1360 static void ··· 1362 1362 { 1363 1363 struct bfa_ioim_s *ioim; 1364 1364 1365 - /** 1365 + /* 1366 1366 * Fail all inflight IO requests in the queue 1367 1367 */ 1368 1368 bfa_itnim_delayed_comp(itnim, BFA_TRUE); 1369 1369 1370 - /** 1370 + /* 1371 1371 * Fail any pending IO requests. 1372 1372 */ 1373 1373 while (!list_empty(&itnim->pending_q)) { ··· 1377 1377 } 1378 1378 } 1379 1379 1380 - /** 1380 + /* 1381 1381 * IO TOV timer callback. Fail any pending IO requests. 1382 1382 */ 1383 1383 static void ··· 1392 1392 bfa_cb_itnim_tov(itnim->ditn); 1393 1393 } 1394 1394 1395 - /** 1395 + /* 1396 1396 * Start IO TOV timer for failing back pending IO requests in offline state. 1397 1397 */ 1398 1398 static void ··· 1407 1407 } 1408 1408 } 1409 1409 1410 - /** 1410 + /* 1411 1411 * Stop IO TOV timer. 1412 1412 */ 1413 1413 static void ··· 1419 1419 } 1420 1420 } 1421 1421 1422 - /** 1422 + /* 1423 1423 * Stop IO TOV timer. 1424 1424 */ 1425 1425 static void ··· 1459 1459 1460 1460 1461 1461 1462 - /** 1462 + /* 1463 1463 * bfa_itnim_public 1464 1464 */ 1465 1465 1466 - /** 1466 + /* 1467 1467 * Itnim interrupt processing. 1468 1468 */ 1469 1469 void ··· 1509 1509 1510 1510 1511 1511 1512 - /** 1512 + /* 1513 1513 * bfa_itnim_api 1514 1514 */ 1515 1515 ··· 1552 1552 bfa_sm_send_event(itnim, BFA_ITNIM_SM_OFFLINE); 1553 1553 } 1554 1554 1555 - /** 1555 + /* 1556 1556 * Return true if itnim is considered offline for holding off IO request. 1557 1557 * IO is not held if itnim is being deleted. 1558 1558 */ ··· 1603 1603 itnim->ioprofile.io_latency.min[j] = ~0; 1604 1604 } 1605 1605 1606 - /** 1606 + /* 1607 1607 * BFA IO module state machine functions 1608 1608 */ 1609 1609 1610 - /** 1610 + /* 1611 1611 * IO is not started (unallocated). 1612 1612 */ 1613 1613 static void ··· 1657 1657 break; 1658 1658 1659 1659 case BFA_IOIM_SM_ABORT: 1660 - /** 1660 + /* 1661 1661 * IO in pending queue can get abort requests. Complete abort 1662 1662 * requests immediately. 1663 1663 */ ··· 1672 1672 } 1673 1673 } 1674 1674 1675 - /** 1675 + /* 1676 1676 * IO is waiting for SG pages. 1677 1677 */ 1678 1678 static void ··· 1719 1719 } 1720 1720 } 1721 1721 1722 - /** 1722 + /* 1723 1723 * IO is active. 1724 1724 */ 1725 1725 static void ··· 1803 1803 } 1804 1804 } 1805 1805 1806 - /** 1806 + /* 1807 1807 * IO is retried with new tag. 1808 1808 */ 1809 1809 static void ··· 1844 1844 break; 1845 1845 1846 1846 case BFA_IOIM_SM_ABORT: 1847 - /** in this state IO abort is done. 1847 + /* in this state IO abort is done. 1848 1848 * Waiting for IO tag resource free. 1849 1849 */ 1850 1850 bfa_sm_set_state(ioim, bfa_ioim_sm_hcb_free); ··· 1857 1857 } 1858 1858 } 1859 1859 1860 - /** 1860 + /* 1861 1861 * IO is being aborted, waiting for completion from firmware. 1862 1862 */ 1863 1863 static void ··· 1919 1919 } 1920 1920 } 1921 1921 1922 - /** 1922 + /* 1923 1923 * IO is being cleaned up (implicit abort), waiting for completion from 1924 1924 * firmware. 1925 1925 */ ··· 1937 1937 break; 1938 1938 1939 1939 case BFA_IOIM_SM_ABORT: 1940 - /** 1940 + /* 1941 1941 * IO is already being aborted implicitly 1942 1942 */ 1943 1943 ioim->io_cbfn = __bfa_cb_ioim_abort; ··· 1969 1969 break; 1970 1970 1971 1971 case BFA_IOIM_SM_CLEANUP: 1972 - /** 1972 + /* 1973 1973 * IO can be in cleanup state already due to TM command. 1974 1974 * 2nd cleanup request comes from ITN offline event. 1975 1975 */ ··· 1980 1980 } 1981 1981 } 1982 1982 1983 - /** 1983 + /* 1984 1984 * IO is waiting for room in request CQ 1985 1985 */ 1986 1986 static void ··· 2024 2024 } 2025 2025 } 2026 2026 2027 - /** 2027 + /* 2028 2028 * Active IO is being aborted, waiting for room in request CQ. 2029 2029 */ 2030 2030 static void ··· 2075 2075 } 2076 2076 } 2077 2077 2078 - /** 2078 + /* 2079 2079 * Active IO is being cleaned up, waiting for room in request CQ. 2080 2080 */ 2081 2081 static void ··· 2091 2091 break; 2092 2092 2093 2093 case BFA_IOIM_SM_ABORT: 2094 - /** 2094 + /* 2095 2095 * IO is alraedy being cleaned up implicitly 2096 2096 */ 2097 2097 ioim->io_cbfn = __bfa_cb_ioim_abort; ··· 2125 2125 } 2126 2126 } 2127 2127 2128 - /** 2128 + /* 2129 2129 * IO bfa callback is pending. 2130 2130 */ 2131 2131 static void ··· 2152 2152 } 2153 2153 } 2154 2154 2155 - /** 2155 + /* 2156 2156 * IO bfa callback is pending. IO resource cannot be freed. 2157 2157 */ 2158 2158 static void ··· 2185 2185 } 2186 2186 } 2187 2187 2188 - /** 2188 + /* 2189 2189 * IO is completed, waiting resource free from firmware. 2190 2190 */ 2191 2191 static void ··· 2214 2214 2215 2215 2216 2216 2217 - /** 2217 + /* 2218 2218 * hal_ioim_private 2219 2219 */ 2220 2220 ··· 2247 2247 2248 2248 m = (struct bfi_ioim_rsp_s *) &ioim->iosp->comp_rspmsg; 2249 2249 if (m->io_status == BFI_IOIM_STS_OK) { 2250 - /** 2250 + /* 2251 2251 * setup sense information, if present 2252 2252 */ 2253 2253 if ((m->scsi_status == SCSI_STATUS_CHECK_CONDITION) && ··· 2256 2256 snsinfo = ioim->iosp->snsinfo; 2257 2257 } 2258 2258 2259 - /** 2259 + /* 2260 2260 * setup residue value correctly for normal completions 2261 2261 */ 2262 2262 if (m->resid_flags == FCP_RESID_UNDER) { ··· 2327 2327 bfa_sm_send_event(ioim, BFA_IOIM_SM_SGALLOCED); 2328 2328 } 2329 2329 2330 - /** 2330 + /* 2331 2331 * Send I/O request to firmware. 2332 2332 */ 2333 2333 static bfa_boolean_t ··· 2343 2343 struct scatterlist *sg; 2344 2344 struct scsi_cmnd *cmnd = (struct scsi_cmnd *) ioim->dio; 2345 2345 2346 - /** 2346 + /* 2347 2347 * check for room in queue to send request now 2348 2348 */ 2349 2349 m = bfa_reqq_next(ioim->bfa, ioim->reqq); ··· 2354 2354 return BFA_FALSE; 2355 2355 } 2356 2356 2357 - /** 2357 + /* 2358 2358 * build i/o request message next 2359 2359 */ 2360 2360 m->io_tag = cpu_to_be16(ioim->iotag); 2361 2361 m->rport_hdl = ioim->itnim->rport->fw_handle; 2362 2362 m->io_timeout = bfa_cb_ioim_get_timeout(ioim->dio); 2363 2363 2364 - /** 2364 + /* 2365 2365 * build inline IO SG element here 2366 2366 */ 2367 2367 sge = &m->sges[0]; ··· 2387 2387 sge->flags = BFI_SGE_PGDLEN; 2388 2388 bfa_sge_to_be(sge); 2389 2389 2390 - /** 2390 + /* 2391 2391 * set up I/O command parameters 2392 2392 */ 2393 2393 m->cmnd = cmnd_z0; ··· 2397 2397 fcp_dl = bfa_cb_ioim_get_size(ioim->dio); 2398 2398 m->cmnd.fcp_dl = cpu_to_be32(fcp_dl); 2399 2399 2400 - /** 2400 + /* 2401 2401 * set up I/O message header 2402 2402 */ 2403 2403 switch (m->cmnd.iodir) { ··· 2426 2426 m->cmnd.priority = bfa_cb_ioim_get_priority(ioim->dio); 2427 2427 m->cmnd.taskattr = bfa_cb_ioim_get_taskattr(ioim->dio); 2428 2428 2429 - /** 2429 + /* 2430 2430 * Handle large CDB (>16 bytes). 2431 2431 */ 2432 2432 m->cmnd.addl_cdb_len = (bfa_cb_ioim_get_cdblen(ioim->dio) - ··· 2440 2440 } 2441 2441 #endif 2442 2442 2443 - /** 2443 + /* 2444 2444 * queue I/O message to firmware 2445 2445 */ 2446 2446 bfa_reqq_produce(ioim->bfa, ioim->reqq); 2447 2447 return BFA_TRUE; 2448 2448 } 2449 2449 2450 - /** 2450 + /* 2451 2451 * Setup any additional SG pages needed.Inline SG element is setup 2452 2452 * at queuing time. 2453 2453 */ ··· 2458 2458 2459 2459 bfa_assert(ioim->nsges > BFI_SGE_INLINE); 2460 2460 2461 - /** 2461 + /* 2462 2462 * allocate SG pages needed 2463 2463 */ 2464 2464 nsgpgs = BFA_SGPG_NPAGE(ioim->nsges); ··· 2507 2507 sge->sg_len = sg_dma_len(sg); 2508 2508 pgcumsz += sge->sg_len; 2509 2509 2510 - /** 2510 + /* 2511 2511 * set flags 2512 2512 */ 2513 2513 if (i < (nsges - 1)) ··· 2522 2522 2523 2523 sgpg = (struct bfa_sgpg_s *) bfa_q_next(sgpg); 2524 2524 2525 - /** 2525 + /* 2526 2526 * set the link element of each page 2527 2527 */ 2528 2528 if (sgeid == ioim->nsges) { ··· 2539 2539 } while (sgeid < ioim->nsges); 2540 2540 } 2541 2541 2542 - /** 2542 + /* 2543 2543 * Send I/O abort request to firmware. 2544 2544 */ 2545 2545 static bfa_boolean_t ··· 2548 2548 struct bfi_ioim_abort_req_s *m; 2549 2549 enum bfi_ioim_h2i msgop; 2550 2550 2551 - /** 2551 + /* 2552 2552 * check for room in queue to send request now 2553 2553 */ 2554 2554 m = bfa_reqq_next(ioim->bfa, ioim->reqq); 2555 2555 if (!m) 2556 2556 return BFA_FALSE; 2557 2557 2558 - /** 2558 + /* 2559 2559 * build i/o request message next 2560 2560 */ 2561 2561 if (ioim->iosp->abort_explicit) ··· 2567 2567 m->io_tag = cpu_to_be16(ioim->iotag); 2568 2568 m->abort_tag = ++ioim->abort_tag; 2569 2569 2570 - /** 2570 + /* 2571 2571 * queue I/O message to firmware 2572 2572 */ 2573 2573 bfa_reqq_produce(ioim->bfa, ioim->reqq); 2574 2574 return BFA_TRUE; 2575 2575 } 2576 2576 2577 - /** 2577 + /* 2578 2578 * Call to resume any I/O requests waiting for room in request queue. 2579 2579 */ 2580 2580 static void ··· 2590 2590 static void 2591 2591 bfa_ioim_notify_cleanup(struct bfa_ioim_s *ioim) 2592 2592 { 2593 - /** 2593 + /* 2594 2594 * Move IO from itnim queue to fcpim global queue since itnim will be 2595 2595 * freed. 2596 2596 */ ··· 2623 2623 return BFA_TRUE; 2624 2624 } 2625 2625 2626 - /** 2626 + /* 2627 2627 * or after the link comes back. 2628 2628 */ 2629 2629 void 2630 2630 bfa_ioim_delayed_comp(struct bfa_ioim_s *ioim, bfa_boolean_t iotov) 2631 2631 { 2632 - /** 2632 + /* 2633 2633 * If path tov timer expired, failback with PATHTOV status - these 2634 2634 * IO requests are not normally retried by IO stack. 2635 2635 * ··· 2644 2644 } 2645 2645 bfa_cb_queue(ioim->bfa, &ioim->hcb_qe, ioim->io_cbfn, ioim); 2646 2646 2647 - /** 2647 + /* 2648 2648 * Move IO to fcpim global queue since itnim will be 2649 2649 * freed. 2650 2650 */ ··· 2654 2654 2655 2655 2656 2656 2657 - /** 2657 + /* 2658 2658 * hal_ioim_friend 2659 2659 */ 2660 2660 2661 - /** 2661 + /* 2662 2662 * Memory allocation and initialization. 2663 2663 */ 2664 2664 void ··· 2670 2670 u8 *snsinfo; 2671 2671 u32 snsbufsz; 2672 2672 2673 - /** 2673 + /* 2674 2674 * claim memory first 2675 2675 */ 2676 2676 ioim = (struct bfa_ioim_s *) bfa_meminfo_kva(minfo); ··· 2681 2681 fcpim->ioim_sp_arr = iosp; 2682 2682 bfa_meminfo_kva(minfo) = (u8 *) (iosp + fcpim->num_ioim_reqs); 2683 2683 2684 - /** 2684 + /* 2685 2685 * Claim DMA memory for per IO sense data. 2686 2686 */ 2687 2687 snsbufsz = fcpim->num_ioim_reqs * BFI_IOIM_SNSLEN; ··· 2693 2693 snsinfo = fcpim->snsbase.kva; 2694 2694 bfa_iocfc_set_snsbase(fcpim->bfa, fcpim->snsbase.pa); 2695 2695 2696 - /** 2696 + /* 2697 2697 * Initialize ioim free queues 2698 2698 */ 2699 2699 INIT_LIST_HEAD(&fcpim->ioim_free_q); ··· 2722 2722 } 2723 2723 } 2724 2724 2725 - /** 2725 + /* 2726 2726 * Driver detach time call. 2727 2727 */ 2728 2728 void ··· 2858 2858 io_lat->max[index] : val; 2859 2859 io_lat->avg[index] += val; 2860 2860 } 2861 - /** 2861 + /* 2862 2862 * Called by itnim to clean up IO while going offline. 2863 2863 */ 2864 2864 void ··· 2881 2881 bfa_sm_send_event(ioim, BFA_IOIM_SM_CLEANUP); 2882 2882 } 2883 2883 2884 - /** 2884 + /* 2885 2885 * IOC failure handling. 2886 2886 */ 2887 2887 void ··· 2892 2892 bfa_sm_send_event(ioim, BFA_IOIM_SM_HWFAIL); 2893 2893 } 2894 2894 2895 - /** 2895 + /* 2896 2896 * IO offline TOV popped. Fail the pending IO. 2897 2897 */ 2898 2898 void ··· 2904 2904 2905 2905 2906 2906 2907 - /** 2907 + /* 2908 2908 * hal_ioim_api 2909 2909 */ 2910 2910 2911 - /** 2911 + /* 2912 2912 * Allocate IOIM resource for initiator mode I/O request. 2913 2913 */ 2914 2914 struct bfa_ioim_s * ··· 2918 2918 struct bfa_fcpim_mod_s *fcpim = BFA_FCPIM_MOD(bfa); 2919 2919 struct bfa_ioim_s *ioim; 2920 2920 2921 - /** 2921 + /* 2922 2922 * alocate IOIM resource 2923 2923 */ 2924 2924 bfa_q_deq(&fcpim->ioim_free_q, &ioim); ··· 2969 2969 2970 2970 bfa_ioim_cb_profile_start(ioim->fcpim, ioim); 2971 2971 2972 - /** 2972 + /* 2973 2973 * Obtain the queue over which this request has to be issued 2974 2974 */ 2975 2975 ioim->reqq = bfa_fcpim_ioredirect_enabled(ioim->bfa) ? ··· 2979 2979 bfa_sm_send_event(ioim, BFA_IOIM_SM_START); 2980 2980 } 2981 2981 2982 - /** 2982 + /* 2983 2983 * Driver I/O abort request. 2984 2984 */ 2985 2985 bfa_status_t ··· 2998 2998 } 2999 2999 3000 3000 3001 - /** 3001 + /* 3002 3002 * BFA TSKIM state machine functions 3003 3003 */ 3004 3004 3005 - /** 3005 + /* 3006 3006 * Task management command beginning state. 3007 3007 */ 3008 3008 static void ··· 3015 3015 bfa_sm_set_state(tskim, bfa_tskim_sm_active); 3016 3016 bfa_tskim_gather_ios(tskim); 3017 3017 3018 - /** 3018 + /* 3019 3019 * If device is offline, do not send TM on wire. Just cleanup 3020 3020 * any pending IO requests and complete TM request. 3021 3021 */ ··· 3039 3039 } 3040 3040 } 3041 3041 3042 - /** 3042 + /* 3043 3043 * brief 3044 3044 * TM command is active, awaiting completion from firmware to 3045 3045 * cleanup IO requests in TM scope. ··· 3076 3076 } 3077 3077 } 3078 3078 3079 - /** 3079 + /* 3080 3080 * An active TM is being cleaned up since ITN is offline. Awaiting cleanup 3081 3081 * completion event from firmware. 3082 3082 */ ··· 3087 3087 3088 3088 switch (event) { 3089 3089 case BFA_TSKIM_SM_DONE: 3090 - /** 3090 + /* 3091 3091 * Ignore and wait for ABORT completion from firmware. 3092 3092 */ 3093 3093 break; ··· 3120 3120 break; 3121 3121 3122 3122 case BFA_TSKIM_SM_CLEANUP: 3123 - /** 3123 + /* 3124 3124 * Ignore, TM command completed on wire. 3125 3125 * Notify TM conmpletion on IO cleanup completion. 3126 3126 */ ··· 3137 3137 } 3138 3138 } 3139 3139 3140 - /** 3140 + /* 3141 3141 * Task management command is waiting for room in request CQ 3142 3142 */ 3143 3143 static void ··· 3152 3152 break; 3153 3153 3154 3154 case BFA_TSKIM_SM_CLEANUP: 3155 - /** 3155 + /* 3156 3156 * No need to send TM on wire since ITN is offline. 3157 3157 */ 3158 3158 bfa_sm_set_state(tskim, bfa_tskim_sm_iocleanup); ··· 3172 3172 } 3173 3173 } 3174 3174 3175 - /** 3175 + /* 3176 3176 * Task management command is active, awaiting for room in request CQ 3177 3177 * to send clean up request. 3178 3178 */ ··· 3185 3185 switch (event) { 3186 3186 case BFA_TSKIM_SM_DONE: 3187 3187 bfa_reqq_wcancel(&tskim->reqq_wait); 3188 - /** 3188 + /* 3189 3189 * 3190 3190 * Fall through !!! 3191 3191 */ ··· 3207 3207 } 3208 3208 } 3209 3209 3210 - /** 3210 + /* 3211 3211 * BFA callback is pending 3212 3212 */ 3213 3213 static void ··· 3235 3235 3236 3236 3237 3237 3238 - /** 3238 + /* 3239 3239 * hal_tskim_private 3240 3240 */ 3241 3241 ··· 3288 3288 return BFA_FALSE; 3289 3289 } 3290 3290 3291 - /** 3291 + /* 3292 3292 * Gather affected IO requests and task management commands. 3293 3293 */ 3294 3294 static void ··· 3300 3300 3301 3301 INIT_LIST_HEAD(&tskim->io_q); 3302 3302 3303 - /** 3303 + /* 3304 3304 * Gather any active IO requests first. 3305 3305 */ 3306 3306 list_for_each_safe(qe, qen, &itnim->io_q) { ··· 3312 3312 } 3313 3313 } 3314 3314 3315 - /** 3315 + /* 3316 3316 * Failback any pending IO requests immediately. 3317 3317 */ 3318 3318 list_for_each_safe(qe, qen, &itnim->pending_q) { ··· 3326 3326 } 3327 3327 } 3328 3328 3329 - /** 3329 + /* 3330 3330 * IO cleanup completion 3331 3331 */ 3332 3332 static void ··· 3338 3338 bfa_sm_send_event(tskim, BFA_TSKIM_SM_IOS_DONE); 3339 3339 } 3340 3340 3341 - /** 3341 + /* 3342 3342 * Gather affected IO requests and task management commands. 3343 3343 */ 3344 3344 static void ··· 3358 3358 bfa_wc_wait(&tskim->wc); 3359 3359 } 3360 3360 3361 - /** 3361 + /* 3362 3362 * Send task management request to firmware. 3363 3363 */ 3364 3364 static bfa_boolean_t ··· 3367 3367 struct bfa_itnim_s *itnim = tskim->itnim; 3368 3368 struct bfi_tskim_req_s *m; 3369 3369 3370 - /** 3370 + /* 3371 3371 * check for room in queue to send request now 3372 3372 */ 3373 3373 m = bfa_reqq_next(tskim->bfa, itnim->reqq); 3374 3374 if (!m) 3375 3375 return BFA_FALSE; 3376 3376 3377 - /** 3377 + /* 3378 3378 * build i/o request message next 3379 3379 */ 3380 3380 bfi_h2i_set(m->mh, BFI_MC_TSKIM, BFI_TSKIM_H2I_TM_REQ, ··· 3386 3386 m->lun = tskim->lun; 3387 3387 m->tm_flags = tskim->tm_cmnd; 3388 3388 3389 - /** 3389 + /* 3390 3390 * queue I/O message to firmware 3391 3391 */ 3392 3392 bfa_reqq_produce(tskim->bfa, itnim->reqq); 3393 3393 return BFA_TRUE; 3394 3394 } 3395 3395 3396 - /** 3396 + /* 3397 3397 * Send abort request to cleanup an active TM to firmware. 3398 3398 */ 3399 3399 static bfa_boolean_t ··· 3402 3402 struct bfa_itnim_s *itnim = tskim->itnim; 3403 3403 struct bfi_tskim_abortreq_s *m; 3404 3404 3405 - /** 3405 + /* 3406 3406 * check for room in queue to send request now 3407 3407 */ 3408 3408 m = bfa_reqq_next(tskim->bfa, itnim->reqq); 3409 3409 if (!m) 3410 3410 return BFA_FALSE; 3411 3411 3412 - /** 3412 + /* 3413 3413 * build i/o request message next 3414 3414 */ 3415 3415 bfi_h2i_set(m->mh, BFI_MC_TSKIM, BFI_TSKIM_H2I_ABORT_REQ, ··· 3417 3417 3418 3418 m->tsk_tag = cpu_to_be16(tskim->tsk_tag); 3419 3419 3420 - /** 3420 + /* 3421 3421 * queue I/O message to firmware 3422 3422 */ 3423 3423 bfa_reqq_produce(tskim->bfa, itnim->reqq); 3424 3424 return BFA_TRUE; 3425 3425 } 3426 3426 3427 - /** 3427 + /* 3428 3428 * Call to resume task management cmnd waiting for room in request queue. 3429 3429 */ 3430 3430 static void ··· 3436 3436 bfa_sm_send_event(tskim, BFA_TSKIM_SM_QRESUME); 3437 3437 } 3438 3438 3439 - /** 3439 + /* 3440 3440 * Cleanup IOs associated with a task mangement command on IOC failures. 3441 3441 */ 3442 3442 static void ··· 3453 3453 3454 3454 3455 3455 3456 - /** 3456 + /* 3457 3457 * hal_tskim_friend 3458 3458 */ 3459 3459 3460 - /** 3460 + /* 3461 3461 * Notification on completions from related ioim. 3462 3462 */ 3463 3463 void ··· 3466 3466 bfa_wc_down(&tskim->wc); 3467 3467 } 3468 3468 3469 - /** 3469 + /* 3470 3470 * Handle IOC h/w failure notification from itnim. 3471 3471 */ 3472 3472 void ··· 3477 3477 bfa_sm_send_event(tskim, BFA_TSKIM_SM_HWFAIL); 3478 3478 } 3479 3479 3480 - /** 3480 + /* 3481 3481 * Cleanup TM command and associated IOs as part of ITNIM offline. 3482 3482 */ 3483 3483 void ··· 3488 3488 bfa_sm_send_event(tskim, BFA_TSKIM_SM_CLEANUP); 3489 3489 } 3490 3490 3491 - /** 3491 + /* 3492 3492 * Memory allocation and initialization. 3493 3493 */ 3494 3494 void ··· 3524 3524 void 3525 3525 bfa_tskim_detach(struct bfa_fcpim_mod_s *fcpim) 3526 3526 { 3527 - /** 3527 + /* 3528 3528 * @todo 3529 3529 */ 3530 3530 } ··· 3542 3542 3543 3543 tskim->tsk_status = rsp->tsk_status; 3544 3544 3545 - /** 3545 + /* 3546 3546 * Firmware sends BFI_TSKIM_STS_ABORTED status for abort 3547 3547 * requests. All other statuses are for normal completions. 3548 3548 */ ··· 3557 3557 3558 3558 3559 3559 3560 - /** 3560 + /* 3561 3561 * hal_tskim_api 3562 3562 */ 3563 3563 ··· 3584 3584 list_add_tail(&tskim->qe, &tskim->fcpim->tskim_free_q); 3585 3585 } 3586 3586 3587 - /** 3587 + /* 3588 3588 * Start a task management command. 3589 3589 * 3590 3590 * @param[in] tskim BFA task management command instance
+67 -67
drivers/scsi/bfa/bfa_fcs.c
··· 15 15 * General Public License for more details. 16 16 */ 17 17 18 - /** 18 + /* 19 19 * bfa_fcs.c BFA FCS main 20 20 */ 21 21 ··· 25 25 26 26 BFA_TRC_FILE(FCS, FCS); 27 27 28 - /** 28 + /* 29 29 * FCS sub-modules 30 30 */ 31 31 struct bfa_fcs_mod_s { ··· 43 43 bfa_fcs_fabric_modexit }, 44 44 }; 45 45 46 - /** 46 + /* 47 47 * fcs_api BFA FCS API 48 48 */ 49 49 ··· 58 58 59 59 60 60 61 - /** 61 + /* 62 62 * fcs_api BFA FCS API 63 63 */ 64 64 65 - /** 65 + /* 66 66 * fcs attach -- called once to initialize data structures at driver attach time 67 67 */ 68 68 void ··· 86 86 } 87 87 } 88 88 89 - /** 89 + /* 90 90 * fcs initialization, called once after bfa initialization is complete 91 91 */ 92 92 void ··· 110 110 } 111 111 } 112 112 113 - /** 113 + /* 114 114 * Start FCS operations. 115 115 */ 116 116 void ··· 119 119 bfa_fcs_fabric_modstart(fcs); 120 120 } 121 121 122 - /** 122 + /* 123 123 * brief 124 124 * FCS driver details initialization. 125 125 * ··· 138 138 bfa_fcs_fabric_psymb_init(&fcs->fabric); 139 139 } 140 140 141 - /** 141 + /* 142 142 * brief 143 143 * FCS FDMI Driver Parameter Initialization 144 144 * ··· 154 154 fcs->fdmi_enabled = fdmi_enable; 155 155 156 156 } 157 - /** 157 + /* 158 158 * brief 159 159 * FCS instance cleanup and exit. 160 160 * ··· 196 196 bfa_wc_down(&fcs->wc); 197 197 } 198 198 199 - /** 199 + /* 200 200 * Fabric module implementation. 201 201 */ 202 202 ··· 232 232 u32 rsp_len, 233 233 u32 resid_len, 234 234 struct fchs_s *rspfchs); 235 - /** 235 + /* 236 236 * fcs_fabric_sm fabric state machine functions 237 237 */ 238 238 239 - /** 239 + /* 240 240 * Fabric state machine events 241 241 */ 242 242 enum bfa_fcs_fabric_event { ··· 286 286 enum bfa_fcs_fabric_event event); 287 287 static void bfa_fcs_fabric_sm_deleting(struct bfa_fcs_fabric_s *fabric, 288 288 enum bfa_fcs_fabric_event event); 289 - /** 289 + /* 290 290 * Beginning state before fabric creation. 291 291 */ 292 292 static void ··· 312 312 } 313 313 } 314 314 315 - /** 315 + /* 316 316 * Beginning state before fabric creation. 317 317 */ 318 318 static void ··· 345 345 } 346 346 } 347 347 348 - /** 348 + /* 349 349 * Link is down, awaiting LINK UP event from port. This is also the 350 350 * first state at fabric creation. 351 351 */ ··· 375 375 } 376 376 } 377 377 378 - /** 378 + /* 379 379 * FLOGI is in progress, awaiting FLOGI reply. 380 380 */ 381 381 static void ··· 468 468 } 469 469 } 470 470 471 - /** 471 + /* 472 472 * Authentication is in progress, awaiting authentication results. 473 473 */ 474 474 static void ··· 508 508 } 509 509 } 510 510 511 - /** 511 + /* 512 512 * Authentication failed 513 513 */ 514 514 static void ··· 534 534 } 535 535 } 536 536 537 - /** 537 + /* 538 538 * Port is in loopback mode. 539 539 */ 540 540 static void ··· 560 560 } 561 561 } 562 562 563 - /** 563 + /* 564 564 * There is no attached fabric - private loop or NPort-to-NPort topology. 565 565 */ 566 566 static void ··· 593 593 } 594 594 } 595 595 596 - /** 596 + /* 597 597 * Fabric is online - normal operating state. 598 598 */ 599 599 static void ··· 628 628 } 629 629 } 630 630 631 - /** 631 + /* 632 632 * Exchanging virtual fabric parameters. 633 633 */ 634 634 static void ··· 652 652 } 653 653 } 654 654 655 - /** 655 + /* 656 656 * EVFP exchange complete and VFT tagging is enabled. 657 657 */ 658 658 static void ··· 663 663 bfa_trc(fabric->fcs, event); 664 664 } 665 665 666 - /** 666 + /* 667 667 * Port is isolated after EVFP exchange due to VF_ID mismatch (N and F). 668 668 */ 669 669 static void ··· 684 684 fabric->event_arg.swp_vfid); 685 685 } 686 686 687 - /** 687 + /* 688 688 * Fabric is being deleted, awaiting vport delete completions. 689 689 */ 690 690 static void ··· 714 714 715 715 716 716 717 - /** 717 + /* 718 718 * fcs_fabric_private fabric private functions 719 719 */ 720 720 ··· 728 728 port_cfg->pwwn = bfa_ioc_get_pwwn(&fabric->fcs->bfa->ioc); 729 729 } 730 730 731 - /** 731 + /* 732 732 * Port Symbolic Name Creation for base port. 733 733 */ 734 734 void ··· 789 789 port_cfg->sym_name.symname[BFA_SYMNAME_MAXLEN - 1] = 0; 790 790 } 791 791 792 - /** 792 + /* 793 793 * bfa lps login completion callback 794 794 */ 795 795 void ··· 867 867 bfa_trc(fabric->fcs, fabric->is_npiv); 868 868 bfa_trc(fabric->fcs, fabric->is_auth); 869 869 } 870 - /** 870 + /* 871 871 * Allocate and send FLOGI. 872 872 */ 873 873 static void ··· 897 897 bfa_fcs_fabric_set_opertype(fabric); 898 898 fabric->stats.fabric_onlines++; 899 899 900 - /** 900 + /* 901 901 * notify online event to base and then virtual ports 902 902 */ 903 903 bfa_fcs_lport_online(&fabric->bport); ··· 917 917 bfa_trc(fabric->fcs, fabric->fabric_name); 918 918 fabric->stats.fabric_offlines++; 919 919 920 - /** 920 + /* 921 921 * notify offline event first to vports and then base port. 922 922 */ 923 923 list_for_each_safe(qe, qen, &fabric->vport_q) { ··· 939 939 bfa_sm_send_event(fabric, BFA_FCS_FABRIC_SM_DELAYED); 940 940 } 941 941 942 - /** 942 + /* 943 943 * Delete all vports and wait for vport delete completions. 944 944 */ 945 945 static void ··· 965 965 bfa_sm_send_event(fabric, BFA_FCS_FABRIC_SM_DELCOMP); 966 966 } 967 967 968 - /** 968 + /* 969 969 * fcs_fabric_public fabric public functions 970 970 */ 971 971 972 - /** 972 + /* 973 973 * Attach time initialization. 974 974 */ 975 975 void ··· 980 980 fabric = &fcs->fabric; 981 981 memset(fabric, 0, sizeof(struct bfa_fcs_fabric_s)); 982 982 983 - /** 983 + /* 984 984 * Initialize base fabric. 985 985 */ 986 986 fabric->fcs = fcs; ··· 989 989 fabric->lps = bfa_lps_alloc(fcs->bfa); 990 990 bfa_assert(fabric->lps); 991 991 992 - /** 992 + /* 993 993 * Initialize fabric delete completion handler. Fabric deletion is 994 994 * complete when the last vport delete is complete. 995 995 */ ··· 1007 1007 bfa_trc(fcs, 0); 1008 1008 } 1009 1009 1010 - /** 1010 + /* 1011 1011 * Module cleanup 1012 1012 */ 1013 1013 void ··· 1017 1017 1018 1018 bfa_trc(fcs, 0); 1019 1019 1020 - /** 1020 + /* 1021 1021 * Cleanup base fabric. 1022 1022 */ 1023 1023 fabric = &fcs->fabric; ··· 1025 1025 bfa_sm_send_event(fabric, BFA_FCS_FABRIC_SM_DELETE); 1026 1026 } 1027 1027 1028 - /** 1028 + /* 1029 1029 * Fabric module start -- kick starts FCS actions 1030 1030 */ 1031 1031 void ··· 1038 1038 bfa_sm_send_event(fabric, BFA_FCS_FABRIC_SM_START); 1039 1039 } 1040 1040 1041 - /** 1041 + /* 1042 1042 * Suspend fabric activity as part of driver suspend. 1043 1043 */ 1044 1044 void ··· 1064 1064 return fabric->oper_type; 1065 1065 } 1066 1066 1067 - /** 1067 + /* 1068 1068 * Link up notification from BFA physical port module. 1069 1069 */ 1070 1070 void ··· 1074 1074 bfa_sm_send_event(fabric, BFA_FCS_FABRIC_SM_LINK_UP); 1075 1075 } 1076 1076 1077 - /** 1077 + /* 1078 1078 * Link down notification from BFA physical port module. 1079 1079 */ 1080 1080 void ··· 1084 1084 bfa_sm_send_event(fabric, BFA_FCS_FABRIC_SM_LINK_DOWN); 1085 1085 } 1086 1086 1087 - /** 1087 + /* 1088 1088 * A child vport is being created in the fabric. 1089 1089 * 1090 1090 * Call from vport module at vport creation. A list of base port and vports ··· 1099 1099 bfa_fcs_fabric_addvport(struct bfa_fcs_fabric_s *fabric, 1100 1100 struct bfa_fcs_vport_s *vport) 1101 1101 { 1102 - /** 1102 + /* 1103 1103 * - add vport to fabric's vport_q 1104 1104 */ 1105 1105 bfa_trc(fabric->fcs, fabric->vf_id); ··· 1109 1109 bfa_wc_up(&fabric->wc); 1110 1110 } 1111 1111 1112 - /** 1112 + /* 1113 1113 * A child vport is being deleted from fabric. 1114 1114 * 1115 1115 * Vport is being deleted. ··· 1123 1123 bfa_wc_down(&fabric->wc); 1124 1124 } 1125 1125 1126 - /** 1126 + /* 1127 1127 * Base port is deleted. 1128 1128 */ 1129 1129 void ··· 1133 1133 } 1134 1134 1135 1135 1136 - /** 1136 + /* 1137 1137 * Check if fabric is online. 1138 1138 * 1139 1139 * param[in] fabric - Fabric instance. This can be a base fabric or vf. ··· 1146 1146 return bfa_sm_cmp_state(fabric, bfa_fcs_fabric_sm_online); 1147 1147 } 1148 1148 1149 - /** 1149 + /* 1150 1150 * brief 1151 1151 * 1152 1152 */ ··· 1158 1158 return BFA_STATUS_OK; 1159 1159 } 1160 1160 1161 - /** 1161 + /* 1162 1162 * Lookup for a vport withing a fabric given its pwwn 1163 1163 */ 1164 1164 struct bfa_fcs_vport_s * ··· 1176 1176 return NULL; 1177 1177 } 1178 1178 1179 - /** 1179 + /* 1180 1180 * In a given fabric, return the number of lports. 1181 1181 * 1182 1182 * param[in] fabric - Fabric instance. This can be a base fabric or vf. ··· 1214 1214 1215 1215 return oui; 1216 1216 } 1217 - /** 1217 + /* 1218 1218 * Unsolicited frame receive handling. 1219 1219 */ 1220 1220 void ··· 1230 1230 bfa_trc(fabric->fcs, len); 1231 1231 bfa_trc(fabric->fcs, pid); 1232 1232 1233 - /** 1233 + /* 1234 1234 * Look for our own FLOGI frames being looped back. This means an 1235 1235 * external loopback cable is in place. Our own FLOGI frames are 1236 1236 * sometimes looped back when switch port gets temporarily bypassed. ··· 1242 1242 return; 1243 1243 } 1244 1244 1245 - /** 1245 + /* 1246 1246 * FLOGI/EVFP exchanges should be consumed by base fabric. 1247 1247 */ 1248 1248 if (fchs->d_id == bfa_os_hton3b(FC_FABRIC_PORT)) { ··· 1252 1252 } 1253 1253 1254 1254 if (fabric->bport.pid == pid) { 1255 - /** 1255 + /* 1256 1256 * All authentication frames should be routed to auth 1257 1257 */ 1258 1258 bfa_trc(fabric->fcs, els_cmd->els_code); ··· 1266 1266 return; 1267 1267 } 1268 1268 1269 - /** 1269 + /* 1270 1270 * look for a matching local port ID 1271 1271 */ 1272 1272 list_for_each(qe, &fabric->vport_q) { ··· 1280 1280 bfa_fcs_lport_uf_recv(&fabric->bport, fchs, len); 1281 1281 } 1282 1282 1283 - /** 1283 + /* 1284 1284 * Unsolicited frames to be processed by fabric. 1285 1285 */ 1286 1286 static void ··· 1304 1304 } 1305 1305 } 1306 1306 1307 - /** 1307 + /* 1308 1308 * Process incoming FLOGI 1309 1309 */ 1310 1310 static void ··· 1351 1351 struct fchs_s fchs; 1352 1352 1353 1353 fcxp = bfa_fcs_fcxp_alloc(fabric->fcs); 1354 - /** 1354 + /* 1355 1355 * Do not expect this failure -- expect remote node to retry 1356 1356 */ 1357 1357 if (!fcxp) ··· 1370 1370 FC_MAX_PDUSZ, 0); 1371 1371 } 1372 1372 1373 - /** 1373 + /* 1374 1374 * Flogi Acc completion callback. 1375 1375 */ 1376 1376 static void ··· 1417 1417 } 1418 1418 } 1419 1419 1420 - /** 1420 + /* 1421 1421 * Returns FCS vf structure for a given vf_id. 1422 1422 * 1423 1423 * param[in] vf_id - VF_ID ··· 1435 1435 return NULL; 1436 1436 } 1437 1437 1438 - /** 1438 + /* 1439 1439 * BFA FCS PPORT ( physical port) 1440 1440 */ 1441 1441 static void ··· 1465 1465 bfa_fcport_event_register(fcs->bfa, bfa_fcs_port_event_handler, fcs); 1466 1466 } 1467 1467 1468 - /** 1468 + /* 1469 1469 * BFA FCS UF ( Unsolicited Frames) 1470 1470 */ 1471 1471 1472 - /** 1472 + /* 1473 1473 * BFA callback for unsolicited frame receive handler. 1474 1474 * 1475 1475 * @param[in] cbarg callback arg for receive handler ··· 1486 1486 struct fc_vft_s *vft; 1487 1487 struct bfa_fcs_fabric_s *fabric; 1488 1488 1489 - /** 1489 + /* 1490 1490 * check for VFT header 1491 1491 */ 1492 1492 if (fchs->routing == FC_RTG_EXT_HDR && ··· 1498 1498 else 1499 1499 fabric = bfa_fcs_vf_lookup(fcs, (u16) vft->vf_id); 1500 1500 1501 - /** 1501 + /* 1502 1502 * drop frame if vfid is unknown 1503 1503 */ 1504 1504 if (!fabric) { ··· 1508 1508 return; 1509 1509 } 1510 1510 1511 - /** 1511 + /* 1512 1512 * skip vft header 1513 1513 */ 1514 1514 fchs = (struct fchs_s *) (vft + 1);
+15 -15
drivers/scsi/bfa/bfa_fcs_fcpim.c
··· 15 15 * General Public License for more details. 16 16 */ 17 17 18 - /** 18 + /* 19 19 * fcpim.c - FCP initiator mode i-t nexus state machine 20 20 */ 21 21 ··· 38 38 bfa_status_t req_status, u32 rsp_len, 39 39 u32 resid_len, struct fchs_s *rsp_fchs); 40 40 41 - /** 41 + /* 42 42 * fcs_itnim_sm FCS itnim state machine events 43 43 */ 44 44 ··· 84 84 {BFA_SM(bfa_fcs_itnim_sm_initiator), BFA_ITNIM_INITIATIOR}, 85 85 }; 86 86 87 - /** 87 + /* 88 88 * fcs_itnim_sm FCS itnim state machine 89 89 */ 90 90 ··· 494 494 495 495 496 496 497 - /** 497 + /* 498 498 * itnim_public FCS ITNIM public interfaces 499 499 */ 500 500 501 - /** 501 + /* 502 502 * Called by rport when a new rport is created. 503 503 * 504 504 * @param[in] rport - remote port. ··· 554 554 return itnim; 555 555 } 556 556 557 - /** 557 + /* 558 558 * Called by rport to delete the instance of FCPIM. 559 559 * 560 560 * @param[in] rport - remote port. ··· 566 566 bfa_sm_send_event(itnim, BFA_FCS_ITNIM_SM_DELETE); 567 567 } 568 568 569 - /** 569 + /* 570 570 * Notification from rport that PLOGI is complete to initiate FC-4 session. 571 571 */ 572 572 void ··· 586 586 } 587 587 } 588 588 589 - /** 589 + /* 590 590 * Called by rport to handle a remote device offline. 591 591 */ 592 592 void ··· 596 596 bfa_sm_send_event(itnim, BFA_FCS_ITNIM_SM_OFFLINE); 597 597 } 598 598 599 - /** 599 + /* 600 600 * Called by rport when remote port is known to be an initiator from 601 601 * PRLI received. 602 602 */ ··· 608 608 bfa_sm_send_event(itnim, BFA_FCS_ITNIM_SM_INITIATOR); 609 609 } 610 610 611 - /** 611 + /* 612 612 * Called by rport to check if the itnim is online. 613 613 */ 614 614 bfa_status_t ··· 625 625 } 626 626 } 627 627 628 - /** 628 + /* 629 629 * BFA completion callback for bfa_itnim_online(). 630 630 */ 631 631 void ··· 637 637 bfa_sm_send_event(itnim, BFA_FCS_ITNIM_SM_HCB_ONLINE); 638 638 } 639 639 640 - /** 640 + /* 641 641 * BFA completion callback for bfa_itnim_offline(). 642 642 */ 643 643 void ··· 649 649 bfa_sm_send_event(itnim, BFA_FCS_ITNIM_SM_HCB_OFFLINE); 650 650 } 651 651 652 - /** 652 + /* 653 653 * Mark the beginning of PATH TOV handling. IO completion callbacks 654 654 * are still pending. 655 655 */ ··· 661 661 bfa_trc(itnim->fcs, itnim->rport->pwwn); 662 662 } 663 663 664 - /** 664 + /* 665 665 * Mark the end of PATH TOV handling. All pending IOs are already cleaned up. 666 666 */ 667 667 void ··· 674 674 itnim_drv->state = ITNIM_STATE_TIMEOUT; 675 675 } 676 676 677 - /** 677 + /* 678 678 * BFA notification to FCS/driver for second level error recovery. 679 679 * 680 680 * Atleast one I/O request has timedout and target is unresponsive to
+154 -214
drivers/scsi/bfa/bfa_fcs_lport.c
··· 15 15 * General Public License for more details. 16 16 */ 17 17 18 - /** 19 - * bfa_fcs_lport.c BFA FCS port 20 - */ 21 - 22 18 #include "bfa_fcs.h" 23 19 #include "bfa_fcbuild.h" 24 20 #include "bfa_fc.h" 25 21 #include "bfad_drv.h" 26 22 27 23 BFA_TRC_FILE(FCS, PORT); 28 - 29 - /** 30 - * Forward declarations 31 - */ 32 24 33 25 static void bfa_fcs_lport_send_ls_rjt(struct bfa_fcs_lport_s *port, 34 26 struct fchs_s *rx_fchs, u8 reason_code, ··· 64 72 bfa_fcs_lport_n2n_offline}, 65 73 }; 66 74 67 - /** 75 + /* 68 76 * fcs_port_sm FCS logical port state machine 69 77 */ 70 78 ··· 232 240 } 233 241 } 234 242 235 - /** 243 + /* 236 244 * fcs_port_pvt 237 245 */ 238 246 ··· 264 272 FC_MAX_PDUSZ, 0); 265 273 } 266 274 267 - /** 275 + /* 268 276 * Process incoming plogi from a remote port. 269 277 */ 270 278 static void ··· 295 303 return; 296 304 } 297 305 298 - /** 306 + /* 299 307 * Direct Attach P2P mode : verify address assigned by the r-port. 300 308 */ 301 309 if ((!bfa_fcs_fabric_is_switched(port->fabric)) && ··· 311 319 port->pid = rx_fchs->d_id; 312 320 } 313 321 314 - /** 322 + /* 315 323 * First, check if we know the device by pwwn. 316 324 */ 317 325 rport = bfa_fcs_lport_get_rport_by_pwwn(port, plogi->port_name); 318 326 if (rport) { 319 - /** 327 + /* 320 328 * Direct Attach P2P mode : handle address assigned by r-port. 321 329 */ 322 330 if ((!bfa_fcs_fabric_is_switched(port->fabric)) && ··· 329 337 return; 330 338 } 331 339 332 - /** 340 + /* 333 341 * Next, lookup rport by PID. 334 342 */ 335 343 rport = bfa_fcs_lport_get_rport_by_pid(port, rx_fchs->s_id); 336 344 if (!rport) { 337 - /** 345 + /* 338 346 * Inbound PLOGI from a new device. 339 347 */ 340 348 bfa_fcs_rport_plogi_create(port, rx_fchs, plogi); 341 349 return; 342 350 } 343 351 344 - /** 352 + /* 345 353 * Rport is known only by PID. 346 354 */ 347 355 if (rport->pwwn) { 348 - /** 356 + /* 349 357 * This is a different device with the same pid. Old device 350 358 * disappeared. Send implicit LOGO to old device. 351 359 */ 352 360 bfa_assert(rport->pwwn != plogi->port_name); 353 361 bfa_fcs_rport_logo_imp(rport); 354 362 355 - /** 363 + /* 356 364 * Inbound PLOGI from a new device (with old PID). 357 365 */ 358 366 bfa_fcs_rport_plogi_create(port, rx_fchs, plogi); 359 367 return; 360 368 } 361 369 362 - /** 370 + /* 363 371 * PLOGI crossing each other. 364 372 */ 365 373 bfa_assert(rport->pwwn == WWN_NULL); ··· 590 598 591 599 592 600 593 - /** 601 + /* 594 602 * fcs_lport_api BFA FCS port API 595 603 */ 596 - /** 604 + /* 597 605 * Module initialization 598 606 */ 599 607 void ··· 602 610 603 611 } 604 612 605 - /** 613 + /* 606 614 * Module cleanup 607 615 */ 608 616 void ··· 611 619 bfa_fcs_modexit_comp(fcs); 612 620 } 613 621 614 - /** 622 + /* 615 623 * Unsolicited frame receive handling. 616 624 */ 617 625 void ··· 629 637 return; 630 638 } 631 639 632 - /** 640 + /* 633 641 * First, handle ELSs that donot require a login. 634 642 */ 635 643 /* ··· 665 673 bfa_fcs_lport_abts_acc(lport, fchs); 666 674 return; 667 675 } 668 - /** 676 + /* 669 677 * look for a matching remote port ID 670 678 */ 671 679 rport = bfa_fcs_lport_get_rport_by_pid(lport, pid); ··· 678 686 return; 679 687 } 680 688 681 - /** 689 + /* 682 690 * Only handles ELS frames for now. 683 691 */ 684 692 if (fchs->type != FC_TYPE_ELS) { ··· 694 702 } 695 703 696 704 if (els_cmd->els_code == FC_ELS_LOGO) { 697 - /** 705 + /* 698 706 * @todo Handle LOGO frames received. 699 707 */ 700 708 return; 701 709 } 702 710 703 711 if (els_cmd->els_code == FC_ELS_PRLI) { 704 - /** 712 + /* 705 713 * @todo Handle PRLI frames received. 706 714 */ 707 715 return; 708 716 } 709 717 710 - /** 718 + /* 711 719 * Unhandled ELS frames. Send a LS_RJT. 712 720 */ 713 721 bfa_fcs_lport_send_ls_rjt(lport, fchs, FC_LS_RJT_RSN_CMD_NOT_SUPP, ··· 715 723 716 724 } 717 725 718 - /** 726 + /* 719 727 * PID based Lookup for a R-Port in the Port R-Port Queue 720 728 */ 721 729 struct bfa_fcs_rport_s * ··· 734 742 return NULL; 735 743 } 736 744 737 - /** 745 + /* 738 746 * PWWN based Lookup for a R-Port in the Port R-Port Queue 739 747 */ 740 748 struct bfa_fcs_rport_s * ··· 753 761 return NULL; 754 762 } 755 763 756 - /** 764 + /* 757 765 * NWWN based Lookup for a R-Port in the Port R-Port Queue 758 766 */ 759 767 struct bfa_fcs_rport_s * ··· 772 780 return NULL; 773 781 } 774 782 775 - /** 783 + /* 776 784 * Called by rport module when new rports are discovered. 777 785 */ 778 786 void ··· 784 792 port->num_rports++; 785 793 } 786 794 787 - /** 795 + /* 788 796 * Called by rport module to when rports are deleted. 789 797 */ 790 798 void ··· 799 807 bfa_sm_send_event(port, BFA_FCS_PORT_SM_DELRPORT); 800 808 } 801 809 802 - /** 810 + /* 803 811 * Called by fabric for base port when fabric login is complete. 804 812 * Called by vport for virtual ports when FDISC is complete. 805 813 */ ··· 809 817 bfa_sm_send_event(port, BFA_FCS_PORT_SM_ONLINE); 810 818 } 811 819 812 - /** 820 + /* 813 821 * Called by fabric for base port when fabric goes offline. 814 822 * Called by vport for virtual ports when virtual port becomes offline. 815 823 */ ··· 819 827 bfa_sm_send_event(port, BFA_FCS_PORT_SM_OFFLINE); 820 828 } 821 829 822 - /** 830 + /* 823 831 * Called by fabric to delete base lport and associated resources. 824 832 * 825 833 * Called by vport to delete lport and associated resources. Should call ··· 831 839 bfa_sm_send_event(port, BFA_FCS_PORT_SM_DELETE); 832 840 } 833 841 834 - /** 842 + /* 835 843 * Return TRUE if port is online, else return FALSE 836 844 */ 837 845 bfa_boolean_t ··· 840 848 return bfa_sm_cmp_state(port, bfa_fcs_lport_sm_online); 841 849 } 842 850 843 - /** 851 + /* 844 852 * Attach time initialization of logical ports. 845 853 */ 846 854 void ··· 857 865 lport->num_rports = 0; 858 866 } 859 867 860 - /** 868 + /* 861 869 * Logical port initialization of base or virtual port. 862 870 * Called by fabric for base port or by vport for virtual ports. 863 871 */ ··· 886 894 bfa_sm_send_event(lport, BFA_FCS_PORT_SM_CREATE); 887 895 } 888 896 889 - /** 897 + /* 890 898 * fcs_lport_api 891 899 */ 892 900 ··· 926 934 } 927 935 } 928 936 929 - /** 937 + /* 930 938 * bfa_fcs_lport_fab port fab functions 931 939 */ 932 940 933 - /** 941 + /* 934 942 * Called by port to initialize fabric services of the base port. 935 943 */ 936 944 static void ··· 941 949 bfa_fcs_lport_ms_init(port); 942 950 } 943 951 944 - /** 952 + /* 945 953 * Called by port to notify transition to online state. 946 954 */ 947 955 static void ··· 951 959 bfa_fcs_lport_scn_online(port); 952 960 } 953 961 954 - /** 962 + /* 955 963 * Called by port to notify transition to offline state. 956 964 */ 957 965 static void ··· 962 970 bfa_fcs_lport_ms_offline(port); 963 971 } 964 972 965 - /** 973 + /* 966 974 * bfa_fcs_lport_n2n functions 967 975 */ 968 976 969 - /** 977 + /* 970 978 * Called by fcs/port to initialize N2N topology. 971 979 */ 972 980 static void ··· 974 982 { 975 983 } 976 984 977 - /** 985 + /* 978 986 * Called by fcs/port to notify transition to online state. 979 987 */ 980 988 static void ··· 998 1006 ((void *)&pcfg->pwwn, (void *)&n2n_port->rem_port_wwn, 999 1007 sizeof(wwn_t)) > 0) { 1000 1008 port->pid = N2N_LOCAL_PID; 1001 - /** 1009 + /* 1002 1010 * First, check if we know the device by pwwn. 1003 1011 */ 1004 1012 rport = bfa_fcs_lport_get_rport_by_pwwn(port, ··· 1027 1035 } 1028 1036 } 1029 1037 1030 - /** 1038 + /* 1031 1039 * Called by fcs/port to notify transition to offline state. 1032 1040 */ 1033 1041 static void ··· 1086 1094 struct bfa_fcs_fdmi_hba_attr_s *hba_attr); 1087 1095 static void bfa_fcs_fdmi_get_portattr(struct bfa_fcs_lport_fdmi_s *fdmi, 1088 1096 struct bfa_fcs_fdmi_port_attr_s *port_attr); 1089 - /** 1097 + /* 1090 1098 * fcs_fdmi_sm FCS FDMI state machine 1091 1099 */ 1092 1100 1093 - /** 1101 + /* 1094 1102 * FDMI State Machine events 1095 1103 */ 1096 1104 enum port_fdmi_event { ··· 1135 1143 static void bfa_fcs_lport_fdmi_sm_disabled( 1136 1144 struct bfa_fcs_lport_fdmi_s *fdmi, 1137 1145 enum port_fdmi_event event); 1138 - /** 1146 + /* 1139 1147 * Start in offline state - awaiting MS to send start. 1140 1148 */ 1141 1149 static void ··· 1502 1510 bfa_sm_fault(port->fcs, event); 1503 1511 } 1504 1512 } 1505 - /** 1513 + /* 1506 1514 * FDMI is disabled state. 1507 1515 */ 1508 1516 static void ··· 1517 1525 /* No op State. It can only be enabled at Driver Init. */ 1518 1526 } 1519 1527 1520 - /** 1528 + /* 1521 1529 * RHBA : Register HBA Attributes. 1522 1530 */ 1523 1531 static void ··· 1599 1607 curr_ptr += sizeof(attr->type) + sizeof(attr->len) + attr->len; 1600 1608 len += attr->len; 1601 1609 count++; 1602 - attr->len = 1603 - cpu_to_be16(attr->len + sizeof(attr->type) + 1610 + attr->len = cpu_to_be16(attr->len + sizeof(attr->type) + 1604 1611 sizeof(attr->len)); 1605 1612 1606 1613 /* ··· 1609 1618 attr->type = cpu_to_be16(FDMI_HBA_ATTRIB_MANUFACTURER); 1610 1619 attr->len = (u16) strlen(fcs_hba_attr->manufacturer); 1611 1620 memcpy(attr->value, fcs_hba_attr->manufacturer, attr->len); 1612 - attr->len = fc_roundup(attr->len, sizeof(u32)); /* variable 1613 - *fields need 1614 - *to be 4 byte 1615 - *aligned */ 1621 + attr->len = fc_roundup(attr->len, sizeof(u32)); 1616 1622 curr_ptr += sizeof(attr->type) + sizeof(attr->len) + attr->len; 1617 1623 len += attr->len; 1618 1624 count++; 1619 - attr->len = 1620 - cpu_to_be16(attr->len + sizeof(attr->type) + 1625 + attr->len = cpu_to_be16(attr->len + sizeof(attr->type) + 1621 1626 sizeof(attr->len)); 1622 1627 1623 1628 /* ··· 1623 1636 attr->type = cpu_to_be16(FDMI_HBA_ATTRIB_SERIALNUM); 1624 1637 attr->len = (u16) strlen(fcs_hba_attr->serial_num); 1625 1638 memcpy(attr->value, fcs_hba_attr->serial_num, attr->len); 1626 - attr->len = fc_roundup(attr->len, sizeof(u32)); /* variable 1627 - *fields need 1628 - *to be 4 byte 1629 - *aligned */ 1639 + attr->len = fc_roundup(attr->len, sizeof(u32)); 1630 1640 curr_ptr += sizeof(attr->type) + sizeof(attr->len) + attr->len; 1631 1641 len += attr->len; 1632 1642 count++; 1633 - attr->len = 1634 - cpu_to_be16(attr->len + sizeof(attr->type) + 1643 + attr->len = cpu_to_be16(attr->len + sizeof(attr->type) + 1635 1644 sizeof(attr->len)); 1636 1645 1637 1646 /* ··· 1637 1654 attr->type = cpu_to_be16(FDMI_HBA_ATTRIB_MODEL); 1638 1655 attr->len = (u16) strlen(fcs_hba_attr->model); 1639 1656 memcpy(attr->value, fcs_hba_attr->model, attr->len); 1640 - attr->len = fc_roundup(attr->len, sizeof(u32)); /* variable 1641 - *fields need 1642 - *to be 4 byte 1643 - *aligned */ 1657 + attr->len = fc_roundup(attr->len, sizeof(u32)); 1644 1658 curr_ptr += sizeof(attr->type) + sizeof(attr->len) + attr->len; 1645 1659 len += attr->len; 1646 1660 count++; 1647 - attr->len = 1648 - cpu_to_be16(attr->len + sizeof(attr->type) + 1661 + attr->len = cpu_to_be16(attr->len + sizeof(attr->type) + 1649 1662 sizeof(attr->len)); 1650 1663 1651 1664 /* ··· 1651 1672 attr->type = cpu_to_be16(FDMI_HBA_ATTRIB_MODEL_DESC); 1652 1673 attr->len = (u16) strlen(fcs_hba_attr->model_desc); 1653 1674 memcpy(attr->value, fcs_hba_attr->model_desc, attr->len); 1654 - attr->len = fc_roundup(attr->len, sizeof(u32)); /* variable 1655 - *fields need 1656 - *to be 4 byte 1657 - *aligned */ 1675 + attr->len = fc_roundup(attr->len, sizeof(u32)); 1658 1676 curr_ptr += sizeof(attr->type) + sizeof(attr->len) + attr->len; 1659 1677 len += attr->len; 1660 1678 count++; 1661 - attr->len = 1662 - cpu_to_be16(attr->len + sizeof(attr->type) + 1679 + attr->len = cpu_to_be16(attr->len + sizeof(attr->type) + 1663 1680 sizeof(attr->len)); 1664 1681 1665 1682 /* ··· 1666 1691 attr->type = cpu_to_be16(FDMI_HBA_ATTRIB_HW_VERSION); 1667 1692 attr->len = (u16) strlen(fcs_hba_attr->hw_version); 1668 1693 memcpy(attr->value, fcs_hba_attr->hw_version, attr->len); 1669 - attr->len = fc_roundup(attr->len, sizeof(u32)); /* variable 1670 - *fields need 1671 - *to be 4 byte 1672 - *aligned */ 1694 + attr->len = fc_roundup(attr->len, sizeof(u32)); 1673 1695 curr_ptr += sizeof(attr->type) + sizeof(attr->len) + attr->len; 1674 1696 len += attr->len; 1675 1697 count++; 1676 - attr->len = 1677 - cpu_to_be16(attr->len + sizeof(attr->type) + 1698 + attr->len = cpu_to_be16(attr->len + sizeof(attr->type) + 1678 1699 sizeof(attr->len)); 1679 1700 } 1680 1701 ··· 1681 1710 attr->type = cpu_to_be16(FDMI_HBA_ATTRIB_DRIVER_VERSION); 1682 1711 attr->len = (u16) strlen(fcs_hba_attr->driver_version); 1683 1712 memcpy(attr->value, fcs_hba_attr->driver_version, attr->len); 1684 - attr->len = fc_roundup(attr->len, sizeof(u32)); /* variable 1685 - *fields need 1686 - *to be 4 byte 1687 - *aligned */ 1713 + attr->len = fc_roundup(attr->len, sizeof(u32)); 1688 1714 curr_ptr += sizeof(attr->type) + sizeof(attr->len) + attr->len; 1689 1715 len += attr->len;; 1690 1716 count++; 1691 - attr->len = 1692 - cpu_to_be16(attr->len + sizeof(attr->type) + 1717 + attr->len = cpu_to_be16(attr->len + sizeof(attr->type) + 1693 1718 sizeof(attr->len)); 1694 1719 1695 1720 /* ··· 1696 1729 attr->type = cpu_to_be16(FDMI_HBA_ATTRIB_ROM_VERSION); 1697 1730 attr->len = (u16) strlen(fcs_hba_attr->option_rom_ver); 1698 1731 memcpy(attr->value, fcs_hba_attr->option_rom_ver, attr->len); 1699 - attr->len = fc_roundup(attr->len, sizeof(u32)); /* variable 1700 - *fields need 1701 - *to be 4 byte 1702 - *aligned */ 1732 + attr->len = fc_roundup(attr->len, sizeof(u32)); 1703 1733 curr_ptr += sizeof(attr->type) + sizeof(attr->len) + attr->len; 1704 1734 len += attr->len; 1705 1735 count++; 1706 - attr->len = 1707 - cpu_to_be16(attr->len + sizeof(attr->type) + 1736 + attr->len = cpu_to_be16(attr->len + sizeof(attr->type) + 1708 1737 sizeof(attr->len)); 1709 1738 } 1710 1739 ··· 1711 1748 attr->type = cpu_to_be16(FDMI_HBA_ATTRIB_FW_VERSION); 1712 1749 attr->len = (u16) strlen(fcs_hba_attr->driver_version); 1713 1750 memcpy(attr->value, fcs_hba_attr->driver_version, attr->len); 1714 - attr->len = fc_roundup(attr->len, sizeof(u32)); /* variable 1715 - *fields need 1716 - *to be 4 byte 1717 - *aligned */ 1751 + attr->len = fc_roundup(attr->len, sizeof(u32)); 1718 1752 curr_ptr += sizeof(attr->type) + sizeof(attr->len) + attr->len; 1719 1753 len += attr->len; 1720 1754 count++; 1721 - attr->len = 1722 - cpu_to_be16(attr->len + sizeof(attr->type) + 1755 + attr->len = cpu_to_be16(attr->len + sizeof(attr->type) + 1723 1756 sizeof(attr->len)); 1724 1757 1725 1758 /* ··· 1726 1767 attr->type = cpu_to_be16(FDMI_HBA_ATTRIB_OS_NAME); 1727 1768 attr->len = (u16) strlen(fcs_hba_attr->os_name); 1728 1769 memcpy(attr->value, fcs_hba_attr->os_name, attr->len); 1729 - attr->len = fc_roundup(attr->len, sizeof(u32)); /* variable 1730 - *fields need 1731 - *to be 4 byte 1732 - *aligned */ 1770 + attr->len = fc_roundup(attr->len, sizeof(u32)); 1733 1771 curr_ptr += sizeof(attr->type) + sizeof(attr->len) + attr->len; 1734 1772 len += attr->len; 1735 1773 count++; 1736 - attr->len = 1737 - cpu_to_be16(attr->len + sizeof(attr->type) + 1774 + attr->len = cpu_to_be16(attr->len + sizeof(attr->type) + 1738 1775 sizeof(attr->len)); 1739 1776 } 1740 1777 ··· 1743 1788 memcpy(attr->value, &fcs_hba_attr->max_ct_pyld, attr->len); 1744 1789 len += attr->len; 1745 1790 count++; 1746 - attr->len = 1747 - cpu_to_be16(attr->len + sizeof(attr->type) + 1791 + attr->len = cpu_to_be16(attr->len + sizeof(attr->type) + 1748 1792 sizeof(attr->len)); 1749 1793 1750 1794 /* 1751 1795 * Update size of payload 1752 1796 */ 1753 - len += ((sizeof(attr->type) + 1754 - sizeof(attr->len)) * count); 1797 + len += ((sizeof(attr->type) + sizeof(attr->len)) * count); 1755 1798 1756 1799 rhba->hba_attr_blk.attr_count = cpu_to_be32(count); 1757 1800 return len; ··· 1790 1837 bfa_sm_send_event(fdmi, FDMISM_EVENT_RSP_ERROR); 1791 1838 } 1792 1839 1793 - /** 1840 + /* 1794 1841 * RPRT : Register Port 1795 1842 */ 1796 1843 static void ··· 1832 1879 bfa_sm_send_event(fdmi, FDMISM_EVENT_RPRT_SENT); 1833 1880 } 1834 1881 1835 - /** 1882 + /* 1836 1883 * This routine builds Port Attribute Block that used in RPA, RPRT commands. 1837 1884 */ 1838 1885 static u16 ··· 1896 1943 curr_ptr += sizeof(attr->type) + sizeof(attr->len) + attr->len; 1897 1944 len += attr->len; 1898 1945 ++count; 1899 - attr->len = 1900 - cpu_to_be16(attr->len + sizeof(attr->type) + 1946 + attr->len = cpu_to_be16(attr->len + sizeof(attr->type) + 1901 1947 sizeof(attr->len)); 1902 1948 1903 1949 /* ··· 1909 1957 curr_ptr += sizeof(attr->type) + sizeof(attr->len) + attr->len; 1910 1958 len += attr->len; 1911 1959 ++count; 1912 - attr->len = 1913 - cpu_to_be16(attr->len + sizeof(attr->type) + 1960 + attr->len = cpu_to_be16(attr->len + sizeof(attr->type) + 1914 1961 sizeof(attr->len)); 1915 1962 1916 1963 /* ··· 1920 1969 attr->type = cpu_to_be16(FDMI_PORT_ATTRIB_DEV_NAME); 1921 1970 attr->len = (u16) strlen(fcs_port_attr.os_device_name); 1922 1971 memcpy(attr->value, fcs_port_attr.os_device_name, attr->len); 1923 - attr->len = fc_roundup(attr->len, sizeof(u32)); /* variable 1924 - *fields need 1925 - *to be 4 byte 1926 - *aligned */ 1972 + attr->len = fc_roundup(attr->len, sizeof(u32)); 1927 1973 curr_ptr += sizeof(attr->type) + sizeof(attr->len) + attr->len; 1928 1974 len += attr->len; 1929 1975 ++count; 1930 - attr->len = 1931 - cpu_to_be16(attr->len + sizeof(attr->type) + 1976 + attr->len = cpu_to_be16(attr->len + sizeof(attr->type) + 1932 1977 sizeof(attr->len)); 1933 1978 } 1934 1979 /* ··· 1935 1988 attr->type = cpu_to_be16(FDMI_PORT_ATTRIB_HOST_NAME); 1936 1989 attr->len = (u16) strlen(fcs_port_attr.host_name); 1937 1990 memcpy(attr->value, fcs_port_attr.host_name, attr->len); 1938 - attr->len = fc_roundup(attr->len, sizeof(u32)); /* variable 1939 - *fields need 1940 - *to be 4 byte 1941 - *aligned */ 1991 + attr->len = fc_roundup(attr->len, sizeof(u32)); 1942 1992 curr_ptr += sizeof(attr->type) + sizeof(attr->len) + attr->len; 1943 1993 len += attr->len; 1944 1994 ++count; 1945 - attr->len = 1946 - cpu_to_be16(attr->len + sizeof(attr->type) + 1995 + attr->len = cpu_to_be16(attr->len + sizeof(attr->type) + 1947 1996 sizeof(attr->len)); 1948 1997 } 1949 1998 ··· 1947 2004 * Update size of payload 1948 2005 */ 1949 2006 port_attrib->attr_count = cpu_to_be32(count); 1950 - len += ((sizeof(attr->type) + 1951 - sizeof(attr->len)) * count); 2007 + len += ((sizeof(attr->type) + sizeof(attr->len)) * count); 1952 2008 return len; 1953 2009 } 1954 2010 ··· 2004 2062 bfa_sm_send_event(fdmi, FDMISM_EVENT_RSP_ERROR); 2005 2063 } 2006 2064 2007 - /** 2065 + /* 2008 2066 * RPA : Register Port Attributes. 2009 2067 */ 2010 2068 static void ··· 2033 2091 len = fc_fdmi_reqhdr_build(&fchs, pyld, bfa_fcs_lport_get_fcid(port), 2034 2092 FDMI_RPA); 2035 2093 2036 - attr_len = 2037 - bfa_fcs_lport_fdmi_build_rpa_pyld(fdmi, 2038 - (u8 *) ((struct ct_hdr_s *) pyld 2039 - + 1)); 2094 + attr_len = bfa_fcs_lport_fdmi_build_rpa_pyld(fdmi, 2095 + (u8 *) ((struct ct_hdr_s *) pyld + 1)); 2040 2096 2041 2097 bfa_fcxp_send(fcxp, NULL, port->fabric->vf_id, port->lp_tag, BFA_FALSE, 2042 2098 FC_CLASS_3, len + attr_len, &fchs, ··· 2261 2321 u32 rsp_len, 2262 2322 u32 resid_len, 2263 2323 struct fchs_s *rsp_fchs); 2264 - /** 2324 + /* 2265 2325 * fcs_ms_sm FCS MS state machine 2266 2326 */ 2267 2327 2268 - /** 2328 + /* 2269 2329 * MS State Machine events 2270 2330 */ 2271 2331 enum port_ms_event { ··· 2300 2360 enum port_ms_event event); 2301 2361 static void bfa_fcs_lport_ms_sm_online(struct bfa_fcs_lport_ms_s *ms, 2302 2362 enum port_ms_event event); 2303 - /** 2363 + /* 2304 2364 * Start in offline state - awaiting NS to send start. 2305 2365 */ 2306 2366 static void ··· 2372 2432 */ 2373 2433 bfa_fcs_lport_fdmi_online(ms); 2374 2434 2375 - /** 2435 + /* 2376 2436 * if this is a Vport, go to online state. 2377 2437 */ 2378 2438 if (ms->port->vport) { ··· 2535 2595 bfa_sm_fault(ms->port->fcs, event); 2536 2596 } 2537 2597 } 2538 - /** 2598 + /* 2539 2599 * ms_pvt MS local functions 2540 2600 */ 2541 2601 ··· 2735 2795 bfa_sm_fault(ms->port->fcs, event); 2736 2796 } 2737 2797 } 2738 - /** 2798 + /* 2739 2799 * ms_pvt MS local functions 2740 2800 */ 2741 2801 ··· 2811 2871 bfa_sm_send_event(ms, MSSM_EVENT_RSP_ERROR); 2812 2872 } 2813 2873 2814 - /** 2874 + /* 2815 2875 * ms_pvt MS local functions 2816 2876 */ 2817 2877 ··· 2957 3017 bfa_sm_send_event(ms, MSSM_EVENT_PORT_FABRIC_RSCN); 2958 3018 } 2959 3019 2960 - /** 3020 + /* 2961 3021 * @page ns_sm_info VPORT NS State Machine 2962 3022 * 2963 3023 * @section ns_sm_interactions VPORT NS State Machine Interactions ··· 3020 3080 u32 *pid_buf, u32 n_pids); 3021 3081 3022 3082 static void bfa_fcs_lport_ns_boot_target_disc(bfa_fcs_lport_t *port); 3023 - /** 3083 + /* 3024 3084 * fcs_ns_sm FCS nameserver interface state machine 3025 3085 */ 3026 3086 3027 - /** 3087 + /* 3028 3088 * VPort NS State Machine events 3029 3089 */ 3030 3090 enum vport_ns_event { ··· 3079 3139 enum vport_ns_event event); 3080 3140 static void bfa_fcs_lport_ns_sm_online(struct bfa_fcs_lport_ns_s *ns, 3081 3141 enum vport_ns_event event); 3082 - /** 3142 + /* 3083 3143 * Start in offline state - awaiting linkup 3084 3144 */ 3085 3145 static void ··· 3568 3628 3569 3629 3570 3630 3571 - /** 3631 + /* 3572 3632 * ns_pvt Nameserver local functions 3573 3633 */ 3574 3634 ··· 3664 3724 } 3665 3725 } 3666 3726 3667 - /** 3727 + /* 3668 3728 * Register the symbolic port name. 3669 3729 */ 3670 3730 static void ··· 3695 3755 * for V-Port, form a Port Symbolic Name 3696 3756 */ 3697 3757 if (port->vport) { 3698 - /** 3758 + /* 3699 3759 * For Vports, we append the vport's port symbolic name 3700 3760 * to that of the base port. 3701 3761 */ ··· 3769 3829 bfa_sm_send_event(ns, NSSM_EVENT_RSP_ERROR); 3770 3830 } 3771 3831 3772 - /** 3832 + /* 3773 3833 * Register FC4-Types 3774 3834 */ 3775 3835 static void ··· 3841 3901 bfa_sm_send_event(ns, NSSM_EVENT_RSP_ERROR); 3842 3902 } 3843 3903 3844 - /** 3904 + /* 3845 3905 * Register FC4-Features : Should be done after RFT_ID 3846 3906 */ 3847 3907 static void ··· 3922 3982 } else 3923 3983 bfa_sm_send_event(ns, NSSM_EVENT_RSP_ERROR); 3924 3984 } 3925 - /** 3985 + /* 3926 3986 * Query Fabric for FC4-Types Devices. 3927 3987 * 3928 3988 * TBD : Need to use a local (FCS private) response buffer, since the response ··· 4042 4102 } 4043 4103 } 4044 4104 4045 - /** 4105 + /* 4046 4106 * This routine will be called by bfa_timer on timer timeouts. 4047 4107 * 4048 4108 * param[in] port - pointer to bfa_fcs_lport_t. ··· 4106 4166 } 4107 4167 } 4108 4168 4109 - /** 4169 + /* 4110 4170 * fcs_ns_public FCS nameserver public interfaces 4111 4171 */ 4112 4172 ··· 4167 4227 } 4168 4228 } 4169 4229 4170 - /** 4230 + /* 4171 4231 * FCS SCN 4172 4232 */ 4173 4233 ··· 4190 4250 struct fchs_s *rx_fchs); 4191 4251 static void bfa_fcs_lport_scn_timeout(void *arg); 4192 4252 4193 - /** 4253 + /* 4194 4254 * fcs_scm_sm FCS SCN state machine 4195 4255 */ 4196 4256 4197 - /** 4257 + /* 4198 4258 * VPort SCN State Machine events 4199 4259 */ 4200 4260 enum port_scn_event { ··· 4218 4278 static void bfa_fcs_lport_scn_sm_online(struct bfa_fcs_lport_scn_s *scn, 4219 4279 enum port_scn_event event); 4220 4280 4221 - /** 4281 + /* 4222 4282 * Starting state - awaiting link up. 4223 4283 */ 4224 4284 static void ··· 4322 4382 4323 4383 4324 4384 4325 - /** 4385 + /* 4326 4386 * fcs_scn_private FCS SCN private functions 4327 4387 */ 4328 4388 4329 - /** 4389 + /* 4330 4390 * This routine will be called to send a SCR command. 4331 4391 */ 4332 4392 static void ··· 4439 4499 FC_MAX_PDUSZ, 0); 4440 4500 } 4441 4501 4442 - /** 4502 + /* 4443 4503 * This routine will be called by bfa_timer on timer timeouts. 4444 4504 * 4445 4505 * param[in] vport - pointer to bfa_fcs_lport_t. ··· 4462 4522 4463 4523 4464 4524 4465 - /** 4525 + /* 4466 4526 * fcs_scn_public FCS state change notification public interfaces 4467 4527 */ 4468 4528 ··· 4503 4563 4504 4564 bfa_trc(port->fcs, rpid); 4505 4565 4506 - /** 4566 + /* 4507 4567 * If this is an unknown device, then it just came online. 4508 4568 * Otherwise let rport handle the RSCN event. 4509 4569 */ ··· 4519 4579 bfa_fcs_rport_scn(rport); 4520 4580 } 4521 4581 4522 - /** 4582 + /* 4523 4583 * rscn format based PID comparison 4524 4584 */ 4525 4585 #define __fc_pid_match(__c0, __c1, __fmt) \ ··· 4631 4691 } 4632 4692 } 4633 4693 4634 - /** 4635 - * If any of area, domain or fabric RSCN is received, do a fresh discovery 4636 - * to find new devices. 4694 + /* 4695 + * If any of area, domain or fabric RSCN is received, do a fresh 4696 + * discovery to find new devices. 4637 4697 */ 4638 4698 if (nsquery) 4639 4699 bfa_fcs_lport_ns_query(port); 4640 4700 } 4641 4701 4642 - /** 4702 + /* 4643 4703 * BFA FCS port 4644 4704 */ 4645 - /** 4705 + /* 4646 4706 * fcs_port_api BFA FCS port API 4647 4707 */ 4648 4708 struct bfa_fcs_lport_s * ··· 4886 4946 memset(&fcs_port->stats, 0, sizeof(struct bfa_lport_stats_s)); 4887 4947 } 4888 4948 4889 - /** 4949 + /* 4890 4950 * FCS virtual port state machine 4891 4951 */ 4892 4952 ··· 4907 4967 static void bfa_fcs_vport_do_logo(struct bfa_fcs_vport_s *vport); 4908 4968 static void bfa_fcs_vport_free(struct bfa_fcs_vport_s *vport); 4909 4969 4910 - /** 4970 + /* 4911 4971 * fcs_vport_sm FCS virtual port state machine 4912 4972 */ 4913 4973 4914 - /** 4974 + /* 4915 4975 * VPort State Machine events 4916 4976 */ 4917 4977 enum bfa_fcs_vport_event { ··· 4964 5024 {BFA_SM(bfa_fcs_vport_sm_error), BFA_FCS_VPORT_ERROR} 4965 5025 }; 4966 5026 4967 - /** 5027 + /* 4968 5028 * Beginning state. 4969 5029 */ 4970 5030 static void ··· 4985 5045 } 4986 5046 } 4987 5047 4988 - /** 5048 + /* 4989 5049 * Created state - a start event is required to start up the state machine. 4990 5050 */ 4991 5051 static void ··· 5002 5062 bfa_sm_set_state(vport, bfa_fcs_vport_sm_fdisc); 5003 5063 bfa_fcs_vport_do_fdisc(vport); 5004 5064 } else { 5005 - /** 5065 + /* 5006 5066 * Fabric is offline or not NPIV capable, stay in 5007 5067 * offline state. 5008 5068 */ ··· 5018 5078 5019 5079 case BFA_FCS_VPORT_SM_ONLINE: 5020 5080 case BFA_FCS_VPORT_SM_OFFLINE: 5021 - /** 5081 + /* 5022 5082 * Ignore ONLINE/OFFLINE events from fabric 5023 5083 * till vport is started. 5024 5084 */ ··· 5029 5089 } 5030 5090 } 5031 5091 5032 - /** 5092 + /* 5033 5093 * Offline state - awaiting ONLINE event from fabric SM. 5034 5094 */ 5035 5095 static void ··· 5067 5127 } 5068 5128 5069 5129 5070 - /** 5130 + /* 5071 5131 * FDISC is sent and awaiting reply from fabric. 5072 5132 */ 5073 5133 static void ··· 5114 5174 } 5115 5175 } 5116 5176 5117 - /** 5177 + /* 5118 5178 * FDISC attempt failed - a timer is active to retry FDISC. 5119 5179 */ 5120 5180 static void ··· 5148 5208 } 5149 5209 } 5150 5210 5151 - /** 5211 + /* 5152 5212 * Vport is online (FDISC is complete). 5153 5213 */ 5154 5214 static void ··· 5175 5235 } 5176 5236 } 5177 5237 5178 - /** 5238 + /* 5179 5239 * Vport is being deleted - awaiting lport delete completion to send 5180 5240 * LOGO to fabric. 5181 5241 */ ··· 5204 5264 } 5205 5265 } 5206 5266 5207 - /** 5267 + /* 5208 5268 * Error State. 5209 5269 * This state will be set when the Vport Creation fails due 5210 5270 * to errors like Dup WWN. In this state only operation allowed ··· 5228 5288 } 5229 5289 } 5230 5290 5231 - /** 5291 + /* 5232 5292 * Lport cleanup is in progress since vport is being deleted. Fabric is 5233 5293 * offline, so no LOGO is needed to complete vport deletion. 5234 5294 */ ··· 5253 5313 } 5254 5314 } 5255 5315 5256 - /** 5316 + /* 5257 5317 * LOGO is sent to fabric. Vport delete is in progress. Lport delete cleanup 5258 5318 * is done. 5259 5319 */ ··· 5287 5347 5288 5348 5289 5349 5290 - /** 5350 + /* 5291 5351 * fcs_vport_private FCS virtual port private functions 5292 5352 */ 5293 - /** 5353 + /* 5294 5354 * This routine will be called to send a FDISC command. 5295 5355 */ 5296 5356 static void ··· 5337 5397 } 5338 5398 } 5339 5399 5340 - /** 5400 + /* 5341 5401 * Called to send a logout to the fabric. Used when a V-Port is 5342 5402 * deleted/stopped. 5343 5403 */ ··· 5351 5411 } 5352 5412 5353 5413 5354 - /** 5414 + /* 5355 5415 * This routine will be called by bfa_timer on timer timeouts. 5356 5416 * 5357 5417 * param[in] vport - pointer to bfa_fcs_vport_t. ··· 5389 5449 5390 5450 5391 5451 5392 - /** 5452 + /* 5393 5453 * fcs_vport_public FCS virtual port public interfaces 5394 5454 */ 5395 5455 5396 - /** 5456 + /* 5397 5457 * Online notification from fabric SM. 5398 5458 */ 5399 5459 void ··· 5403 5463 bfa_sm_send_event(vport, BFA_FCS_VPORT_SM_ONLINE); 5404 5464 } 5405 5465 5406 - /** 5466 + /* 5407 5467 * Offline notification from fabric SM. 5408 5468 */ 5409 5469 void ··· 5413 5473 bfa_sm_send_event(vport, BFA_FCS_VPORT_SM_OFFLINE); 5414 5474 } 5415 5475 5416 - /** 5476 + /* 5417 5477 * Cleanup notification from fabric SM on link timer expiry. 5418 5478 */ 5419 5479 void ··· 5421 5481 { 5422 5482 vport->vport_stats.fab_cleanup++; 5423 5483 } 5424 - /** 5484 + /* 5425 5485 * delete notification from fabric SM. To be invoked from within FCS. 5426 5486 */ 5427 5487 void ··· 5430 5490 bfa_sm_send_event(vport, BFA_FCS_VPORT_SM_DELETE); 5431 5491 } 5432 5492 5433 - /** 5493 + /* 5434 5494 * Delete completion callback from associated lport 5435 5495 */ 5436 5496 void ··· 5441 5501 5442 5502 5443 5503 5444 - /** 5504 + /* 5445 5505 * fcs_vport_api Virtual port API 5446 5506 */ 5447 5507 5448 - /** 5508 + /* 5449 5509 * Use this function to instantiate a new FCS vport object. This 5450 5510 * function will not trigger any HW initialization process (which will be 5451 5511 * done in vport_start() call) ··· 5495 5555 return BFA_STATUS_OK; 5496 5556 } 5497 5557 5498 - /** 5558 + /* 5499 5559 * Use this function to instantiate a new FCS PBC vport object. This 5500 5560 * function will not trigger any HW initialization process (which will be 5501 5561 * done in vport_start() call) ··· 5525 5585 return rc; 5526 5586 } 5527 5587 5528 - /** 5588 + /* 5529 5589 * Use this function to findout if this is a pbc vport or not. 5530 5590 * 5531 5591 * @param[in] vport - pointer to bfa_fcs_vport_t. ··· 5543 5603 5544 5604 } 5545 5605 5546 - /** 5606 + /* 5547 5607 * Use this function initialize the vport. 5548 5608 * 5549 5609 * @param[in] vport - pointer to bfa_fcs_vport_t. ··· 5558 5618 return BFA_STATUS_OK; 5559 5619 } 5560 5620 5561 - /** 5621 + /* 5562 5622 * Use this function quiese the vport object. This function will return 5563 5623 * immediately, when the vport is actually stopped, the 5564 5624 * bfa_drv_vport_stop_cb() will be called. ··· 5575 5635 return BFA_STATUS_OK; 5576 5636 } 5577 5637 5578 - /** 5638 + /* 5579 5639 * Use this function to delete a vport object. Fabric object should 5580 5640 * be stopped before this function call. 5581 5641 * ··· 5597 5657 return BFA_STATUS_OK; 5598 5658 } 5599 5659 5600 - /** 5660 + /* 5601 5661 * Use this function to get vport's current status info. 5602 5662 * 5603 5663 * param[in] vport pointer to bfa_fcs_vport_t. ··· 5618 5678 attr->vport_state = bfa_sm_to_state(vport_sm_table, vport->sm); 5619 5679 } 5620 5680 5621 - /** 5681 + /* 5622 5682 * Use this function to get vport's statistics. 5623 5683 * 5624 5684 * param[in] vport pointer to bfa_fcs_vport_t. ··· 5633 5693 *stats = vport->vport_stats; 5634 5694 } 5635 5695 5636 - /** 5696 + /* 5637 5697 * Use this function to clear vport's statistics. 5638 5698 * 5639 5699 * param[in] vport pointer to bfa_fcs_vport_t. ··· 5646 5706 memset(&vport->vport_stats, 0, sizeof(struct bfa_vport_stats_s)); 5647 5707 } 5648 5708 5649 - /** 5709 + /* 5650 5710 * Lookup a virtual port. Excludes base port from lookup. 5651 5711 */ 5652 5712 struct bfa_fcs_vport_s * ··· 5668 5728 return vport; 5669 5729 } 5670 5730 5671 - /** 5731 + /* 5672 5732 * FDISC Response 5673 5733 */ 5674 5734 void ··· 5724 5784 } 5725 5785 } 5726 5786 5727 - /** 5787 + /* 5728 5788 * LOGO response 5729 5789 */ 5730 5790 void ··· 5734 5794 bfa_sm_send_event(vport, BFA_FCS_VPORT_SM_RSP_OK); 5735 5795 } 5736 5796 5737 - /** 5797 + /* 5738 5798 * Received clear virtual link 5739 5799 */ 5740 5800 void
+85 -85
drivers/scsi/bfa/bfa_fcs_rport.c
··· 15 15 * General Public License for more details. 16 16 */ 17 17 18 - /** 18 + /* 19 19 * rport.c Remote port implementation. 20 20 */ 21 21 ··· 75 75 static void bfa_fcs_rport_process_adisc(struct bfa_fcs_rport_s *rport, 76 76 struct fchs_s *rx_fchs, u16 len); 77 77 static void bfa_fcs_rport_send_prlo_acc(struct bfa_fcs_rport_s *rport); 78 - /** 78 + /* 79 79 * fcs_rport_sm FCS rport state machine events 80 80 */ 81 81 ··· 172 172 {BFA_SM(bfa_fcs_rport_sm_nsdisc_sent), BFA_RPORT_NSDISC}, 173 173 }; 174 174 175 - /** 175 + /* 176 176 * Beginning state. 177 177 */ 178 178 static void ··· 210 210 } 211 211 } 212 212 213 - /** 213 + /* 214 214 * PLOGI is being sent. 215 215 */ 216 216 static void ··· 262 262 } 263 263 } 264 264 265 - /** 265 + /* 266 266 * PLOGI is being sent. 267 267 */ 268 268 static void ··· 287 287 288 288 case RPSM_EVENT_PLOGI_RCVD: 289 289 case RPSM_EVENT_SCN: 290 - /** 290 + /* 291 291 * Ignore, SCN is possibly online notification. 292 292 */ 293 293 break; ··· 309 309 break; 310 310 311 311 case RPSM_EVENT_HCB_OFFLINE: 312 - /** 312 + /* 313 313 * Ignore BFA callback, on a PLOGI receive we call bfa offline. 314 314 */ 315 315 break; ··· 319 319 } 320 320 } 321 321 322 - /** 322 + /* 323 323 * PLOGI is sent. 324 324 */ 325 325 static void ··· 380 380 } 381 381 } 382 382 383 - /** 383 + /* 384 384 * PLOGI is sent. 385 385 */ 386 386 static void ··· 475 475 } 476 476 } 477 477 478 - /** 478 + /* 479 479 * PLOGI is complete. Awaiting BFA rport online callback. FC-4s 480 480 * are offline. 481 481 */ ··· 519 519 break; 520 520 521 521 case RPSM_EVENT_SCN: 522 - /** 522 + /* 523 523 * @todo 524 524 * Ignore SCN - PLOGI just completed, FC-4 login should detect 525 525 * device failures. ··· 531 531 } 532 532 } 533 533 534 - /** 534 + /* 535 535 * Rport is ONLINE. FC-4s active. 536 536 */ 537 537 static void ··· 580 580 } 581 581 } 582 582 583 - /** 583 + /* 584 584 * An SCN event is received in ONLINE state. NS query is being sent 585 585 * prior to ADISC authentication with rport. FC-4s are paused. 586 586 */ ··· 604 604 break; 605 605 606 606 case RPSM_EVENT_SCN: 607 - /** 607 + /* 608 608 * ignore SCN, wait for response to query itself 609 609 */ 610 610 break; ··· 638 638 } 639 639 } 640 640 641 - /** 641 + /* 642 642 * An SCN event is received in ONLINE state. NS query is sent to rport. 643 643 * FC-4s are paused. 644 644 */ ··· 697 697 } 698 698 } 699 699 700 - /** 700 + /* 701 701 * An SCN event is received in ONLINE state. ADISC is being sent for 702 702 * authenticating with rport. FC-4s are paused. 703 703 */ ··· 748 748 } 749 749 } 750 750 751 - /** 751 + /* 752 752 * An SCN event is received in ONLINE state. ADISC is to rport. 753 753 * FC-4s are paused. 754 754 */ ··· 765 765 break; 766 766 767 767 case RPSM_EVENT_PLOGI_RCVD: 768 - /** 768 + /* 769 769 * Too complex to cleanup FC-4 & rport and then acc to PLOGI. 770 770 * At least go offline when a PLOGI is received. 771 771 */ ··· 787 787 break; 788 788 789 789 case RPSM_EVENT_SCN: 790 - /** 790 + /* 791 791 * already processing RSCN 792 792 */ 793 793 break; ··· 810 810 } 811 811 } 812 812 813 - /** 813 + /* 814 814 * Rport has sent LOGO. Awaiting FC-4 offline completion callback. 815 815 */ 816 816 static void ··· 841 841 } 842 842 } 843 843 844 - /** 844 + /* 845 845 * LOGO needs to be sent to rport. Awaiting FC-4 offline completion 846 846 * callback. 847 847 */ ··· 864 864 } 865 865 } 866 866 867 - /** 867 + /* 868 868 * Rport is going offline. Awaiting FC-4 offline completion callback. 869 869 */ 870 870 static void ··· 886 886 case RPSM_EVENT_LOGO_RCVD: 887 887 case RPSM_EVENT_PRLO_RCVD: 888 888 case RPSM_EVENT_ADDRESS_CHANGE: 889 - /** 889 + /* 890 890 * rport is already going offline. 891 891 * SCN - ignore and wait till transitioning to offline state 892 892 */ ··· 901 901 } 902 902 } 903 903 904 - /** 904 + /* 905 905 * Rport is offline. FC-4s are offline. Awaiting BFA rport offline 906 906 * callback. 907 907 */ ··· 945 945 case RPSM_EVENT_SCN: 946 946 case RPSM_EVENT_LOGO_RCVD: 947 947 case RPSM_EVENT_PRLO_RCVD: 948 - /** 948 + /* 949 949 * Ignore, already offline. 950 950 */ 951 951 break; ··· 955 955 } 956 956 } 957 957 958 - /** 958 + /* 959 959 * Rport is offline. FC-4s are offline. Awaiting BFA rport offline 960 960 * callback to send LOGO accept. 961 961 */ ··· 1009 1009 1010 1010 case RPSM_EVENT_LOGO_RCVD: 1011 1011 case RPSM_EVENT_PRLO_RCVD: 1012 - /** 1012 + /* 1013 1013 * Ignore - already processing a LOGO. 1014 1014 */ 1015 1015 break; ··· 1019 1019 } 1020 1020 } 1021 1021 1022 - /** 1022 + /* 1023 1023 * Rport is being deleted. FC-4s are offline. 1024 1024 * Awaiting BFA rport offline 1025 1025 * callback to send LOGO. ··· 1048 1048 } 1049 1049 } 1050 1050 1051 - /** 1051 + /* 1052 1052 * Rport is being deleted. FC-4s are offline. LOGO is being sent. 1053 1053 */ 1054 1054 static void ··· 1082 1082 } 1083 1083 } 1084 1084 1085 - /** 1085 + /* 1086 1086 * Rport is offline. FC-4s are offline. BFA rport is offline. 1087 1087 * Timer active to delete stale rport. 1088 1088 */ ··· 1142 1142 } 1143 1143 } 1144 1144 1145 - /** 1145 + /* 1146 1146 * Rport address has changed. Nameserver discovery request is being sent. 1147 1147 */ 1148 1148 static void ··· 1199 1199 } 1200 1200 } 1201 1201 1202 - /** 1202 + /* 1203 1203 * Nameserver discovery failed. Waiting for timeout to retry. 1204 1204 */ 1205 1205 static void ··· 1263 1263 } 1264 1264 } 1265 1265 1266 - /** 1266 + /* 1267 1267 * Rport address has changed. Nameserver discovery request is sent. 1268 1268 */ 1269 1269 static void ··· 1329 1329 bfa_fcs_rport_send_prlo_acc(rport); 1330 1330 break; 1331 1331 case RPSM_EVENT_SCN: 1332 - /** 1332 + /* 1333 1333 * ignore, wait for NS query response 1334 1334 */ 1335 1335 break; 1336 1336 1337 1337 case RPSM_EVENT_LOGO_RCVD: 1338 - /** 1338 + /* 1339 1339 * Not logged-in yet. Accept LOGO. 1340 1340 */ 1341 1341 bfa_fcs_rport_send_logo_acc(rport); ··· 1354 1354 1355 1355 1356 1356 1357 - /** 1357 + /* 1358 1358 * fcs_rport_private FCS RPORT provate functions 1359 1359 */ 1360 1360 ··· 1415 1415 1416 1416 plogi_rsp = (struct fc_logi_s *) BFA_FCXP_RSP_PLD(fcxp); 1417 1417 1418 - /** 1418 + /* 1419 1419 * Check for failure first. 1420 1420 */ 1421 1421 if (plogi_rsp->els_cmd.els_code != FC_ELS_ACC) { ··· 1436 1436 return; 1437 1437 } 1438 1438 1439 - /** 1439 + /* 1440 1440 * PLOGI is complete. Make sure this device is not one of the known 1441 1441 * device with a new FC port address. 1442 1442 */ ··· 1468 1468 } 1469 1469 } 1470 1470 1471 - /** 1471 + /* 1472 1472 * Normal login path -- no evil twins. 1473 1473 */ 1474 1474 rport->stats.plogi_accs++; ··· 1722 1722 } 1723 1723 } 1724 1724 1725 - /** 1725 + /* 1726 1726 * Called to send a logout to the rport. 1727 1727 */ 1728 1728 static void ··· 1759 1759 bfa_sm_send_event(rport, RPSM_EVENT_FCXP_SENT); 1760 1760 } 1761 1761 1762 - /** 1762 + /* 1763 1763 * Send ACC for a LOGO received. 1764 1764 */ 1765 1765 static void ··· 1788 1788 FC_CLASS_3, len, &fchs, NULL, NULL, FC_MAX_PDUSZ, 0); 1789 1789 } 1790 1790 1791 - /** 1791 + /* 1792 1792 * brief 1793 1793 * This routine will be called by bfa_timer on timer timeouts. 1794 1794 * ··· 1961 1961 struct bfa_fcs_rport_s *rport; 1962 1962 struct bfad_rport_s *rport_drv; 1963 1963 1964 - /** 1964 + /* 1965 1965 * allocate rport 1966 1966 */ 1967 1967 if (bfa_fcb_rport_alloc(fcs->bfad, &rport, &rport_drv) ··· 1979 1979 rport->pid = rpid; 1980 1980 rport->pwwn = pwwn; 1981 1981 1982 - /** 1982 + /* 1983 1983 * allocate BFA rport 1984 1984 */ 1985 1985 rport->bfa_rport = bfa_rport_create(port->fcs->bfa, rport); ··· 1989 1989 return NULL; 1990 1990 } 1991 1991 1992 - /** 1992 + /* 1993 1993 * allocate FC-4s 1994 1994 */ 1995 1995 bfa_assert(bfa_fcs_lport_is_initiator(port)); ··· 2021 2021 { 2022 2022 struct bfa_fcs_lport_s *port = rport->port; 2023 2023 2024 - /** 2024 + /* 2025 2025 * - delete FC-4s 2026 2026 * - delete BFA rport 2027 2027 * - remove from queue of rports ··· 2093 2093 } 2094 2094 } 2095 2095 2096 - /** 2096 + /* 2097 2097 * Update rport parameters from PLOGI or PLOGI accept. 2098 2098 */ 2099 2099 static void ··· 2101 2101 { 2102 2102 bfa_fcs_lport_t *port = rport->port; 2103 2103 2104 - /** 2104 + /* 2105 2105 * - port name 2106 2106 * - node name 2107 2107 */ 2108 2108 rport->pwwn = plogi->port_name; 2109 2109 rport->nwwn = plogi->node_name; 2110 2110 2111 - /** 2111 + /* 2112 2112 * - class of service 2113 2113 */ 2114 2114 rport->fc_cos = 0; ··· 2118 2118 if (plogi->class2.class_valid) 2119 2119 rport->fc_cos |= FC_CLASS_2; 2120 2120 2121 - /** 2121 + /* 2122 2122 * - CISC 2123 2123 * - MAX receive frame size 2124 2124 */ ··· 2127 2127 2128 2128 bfa_trc(port->fcs, be16_to_cpu(plogi->csp.bbcred)); 2129 2129 bfa_trc(port->fcs, port->fabric->bb_credit); 2130 - /** 2130 + /* 2131 2131 * Direct Attach P2P mode : 2132 2132 * This is to handle a bug (233476) in IBM targets in Direct Attach 2133 2133 * Mode. Basically, in FLOGI Accept the target would have ··· 2148 2148 2149 2149 } 2150 2150 2151 - /** 2151 + /* 2152 2152 * Called to handle LOGO received from an existing remote port. 2153 2153 */ 2154 2154 static void ··· 2164 2164 2165 2165 2166 2166 2167 - /** 2167 + /* 2168 2168 * fcs_rport_public FCS rport public interfaces 2169 2169 */ 2170 2170 2171 - /** 2171 + /* 2172 2172 * Called by bport/vport to create a remote port instance for a discovered 2173 2173 * remote device. 2174 2174 * ··· 2191 2191 return rport; 2192 2192 } 2193 2193 2194 - /** 2194 + /* 2195 2195 * Called to create a rport for which only the wwn is known. 2196 2196 * 2197 2197 * @param[in] port - base port ··· 2211 2211 bfa_sm_send_event(rport, RPSM_EVENT_ADDRESS_DISC); 2212 2212 return rport; 2213 2213 } 2214 - /** 2214 + /* 2215 2215 * Called by bport in private loop topology to indicate that a 2216 2216 * rport has been discovered and plogi has been completed. 2217 2217 * ··· 2233 2233 bfa_sm_send_event(rport, RPSM_EVENT_PLOGI_COMP); 2234 2234 } 2235 2235 2236 - /** 2236 + /* 2237 2237 * Called by bport/vport to handle PLOGI received from a new remote port. 2238 2238 * If an existing rport does a plogi, it will be handled separately. 2239 2239 */ ··· 2272 2272 return 0; 2273 2273 } 2274 2274 2275 - /** 2275 + /* 2276 2276 * Called by bport/vport to handle PLOGI received from an existing 2277 2277 * remote port. 2278 2278 */ ··· 2280 2280 bfa_fcs_rport_plogi(struct bfa_fcs_rport_s *rport, struct fchs_s *rx_fchs, 2281 2281 struct fc_logi_s *plogi) 2282 2282 { 2283 - /** 2283 + /* 2284 2284 * @todo Handle P2P and initiator-initiator. 2285 2285 */ 2286 2286 ··· 2289 2289 rport->reply_oxid = rx_fchs->ox_id; 2290 2290 bfa_trc(rport->fcs, rport->reply_oxid); 2291 2291 2292 - /** 2292 + /* 2293 2293 * In Switched fabric topology, 2294 2294 * PLOGI to each other. If our pwwn is smaller, ignore it, 2295 2295 * if it is not a well known address. ··· 2307 2307 bfa_sm_send_event(rport, RPSM_EVENT_PLOGI_RCVD); 2308 2308 } 2309 2309 2310 - /** 2310 + /* 2311 2311 * Called by bport/vport to delete a remote port instance. 2312 2312 * 2313 2313 * Rport delete is called under the following conditions: ··· 2321 2321 bfa_sm_send_event(rport, RPSM_EVENT_DELETE); 2322 2322 } 2323 2323 2324 - /** 2324 + /* 2325 2325 * Called by bport/vport to when a target goes offline. 2326 2326 * 2327 2327 */ ··· 2331 2331 bfa_sm_send_event(rport, RPSM_EVENT_LOGO_IMP); 2332 2332 } 2333 2333 2334 - /** 2334 + /* 2335 2335 * Called by bport in n2n when a target (attached port) becomes online. 2336 2336 * 2337 2337 */ ··· 2340 2340 { 2341 2341 bfa_sm_send_event(rport, RPSM_EVENT_PLOGI_SEND); 2342 2342 } 2343 - /** 2343 + /* 2344 2344 * Called by bport/vport to notify SCN for the remote port 2345 2345 */ 2346 2346 void ··· 2350 2350 bfa_sm_send_event(rport, RPSM_EVENT_SCN); 2351 2351 } 2352 2352 2353 - /** 2353 + /* 2354 2354 * Called by fcpim to notify that the ITN cleanup is done. 2355 2355 */ 2356 2356 void ··· 2359 2359 bfa_sm_send_event(rport, RPSM_EVENT_FC4_OFFLINE); 2360 2360 } 2361 2361 2362 - /** 2362 + /* 2363 2363 * Called by fcptm to notify that the ITN cleanup is done. 2364 2364 */ 2365 2365 void ··· 2368 2368 bfa_sm_send_event(rport, RPSM_EVENT_FC4_OFFLINE); 2369 2369 } 2370 2370 2371 - /** 2371 + /* 2372 2372 * brief 2373 2373 * This routine BFA callback for bfa_rport_online() call. 2374 2374 * ··· 2391 2391 bfa_sm_send_event(rport, RPSM_EVENT_HCB_ONLINE); 2392 2392 } 2393 2393 2394 - /** 2394 + /* 2395 2395 * brief 2396 2396 * This routine BFA callback for bfa_rport_offline() call. 2397 2397 * ··· 2413 2413 bfa_sm_send_event(rport, RPSM_EVENT_HCB_OFFLINE); 2414 2414 } 2415 2415 2416 - /** 2416 + /* 2417 2417 * brief 2418 2418 * This routine is a static BFA callback when there is a QoS flow_id 2419 2419 * change notification ··· 2437 2437 bfa_trc(rport->fcs, rport->pwwn); 2438 2438 } 2439 2439 2440 - /** 2440 + /* 2441 2441 * brief 2442 2442 * This routine is a static BFA callback when there is a QoS priority 2443 2443 * change notification ··· 2461 2461 bfa_trc(rport->fcs, rport->pwwn); 2462 2462 } 2463 2463 2464 - /** 2464 + /* 2465 2465 * Called to process any unsolicted frames from this remote port 2466 2466 */ 2467 2467 void ··· 2470 2470 bfa_sm_send_event(rport, RPSM_EVENT_LOGO_IMP); 2471 2471 } 2472 2472 2473 - /** 2473 + /* 2474 2474 * Called to process any unsolicted frames from this remote port 2475 2475 */ 2476 2476 void ··· 2577 2577 FC_MAX_PDUSZ, 0); 2578 2578 } 2579 2579 2580 - /** 2580 + /* 2581 2581 * Return state of rport. 2582 2582 */ 2583 2583 int ··· 2586 2586 return bfa_sm_to_state(rport_sm_table, rport->sm); 2587 2587 } 2588 2588 2589 - /** 2589 + /* 2590 2590 * brief 2591 2591 * Called by the Driver to set rport delete/ageout timeout 2592 2592 * ··· 2613 2613 2614 2614 2615 2615 2616 - /** 2616 + /* 2617 2617 * Remote port implementation. 2618 2618 */ 2619 2619 2620 - /** 2620 + /* 2621 2621 * fcs_rport_api FCS rport API. 2622 2622 */ 2623 2623 2624 - /** 2624 + /* 2625 2625 * Direct API to add a target by port wwn. This interface is used, for 2626 2626 * example, by bios when target pwwn is known from boot lun configuration. 2627 2627 */ ··· 2634 2634 return BFA_STATUS_OK; 2635 2635 } 2636 2636 2637 - /** 2637 + /* 2638 2638 * Direct API to remove a target and its associated resources. This 2639 2639 * interface is used, for example, by driver to remove target 2640 2640 * ports from the target list for a VM. ··· 2663 2663 2664 2664 } 2665 2665 2666 - /** 2666 + /* 2667 2667 * Remote device status for display/debug. 2668 2668 */ 2669 2669 void ··· 2704 2704 } 2705 2705 } 2706 2706 2707 - /** 2707 + /* 2708 2708 * Per remote device statistics. 2709 2709 */ 2710 2710 void ··· 2767 2767 2768 2768 2769 2769 2770 - /** 2770 + /* 2771 2771 * Remote port features (RPF) implementation. 2772 2772 */ 2773 2773 ··· 2786 2786 2787 2787 static void bfa_fcs_rpf_timeout(void *arg); 2788 2788 2789 - /** 2789 + /* 2790 2790 * fcs_rport_ftrs_sm FCS rport state machine events 2791 2791 */ 2792 2792 ··· 2981 2981 bfa_sm_fault(rport->fcs, event); 2982 2982 } 2983 2983 } 2984 - /** 2984 + /* 2985 2985 * Called when Rport is created. 2986 2986 */ 2987 2987 void ··· 2995 2995 bfa_sm_set_state(rpf, bfa_fcs_rpf_sm_uninit); 2996 2996 } 2997 2997 2998 - /** 2998 + /* 2999 2999 * Called when Rport becomes online 3000 3000 */ 3001 3001 void ··· 3010 3010 bfa_sm_send_event(&rport->rpf, RPFSM_EVENT_RPORT_ONLINE); 3011 3011 } 3012 3012 3013 - /** 3013 + /* 3014 3014 * Called when Rport becomes offline 3015 3015 */ 3016 3016 void
+3 -3
drivers/scsi/bfa/bfa_hw_cb.c
··· 102 102 *num_vecs = __HFN_NUMINTS; 103 103 } 104 104 105 - /** 105 + /* 106 106 * No special setup required for crossbow -- vector assignments are implicit. 107 107 */ 108 108 void ··· 129 129 bfa->msix.handler[i] = bfa_msix_lpu_err; 130 130 } 131 131 132 - /** 132 + /* 133 133 * Crossbow -- dummy, interrupts are masked 134 134 */ 135 135 void ··· 142 142 { 143 143 } 144 144 145 - /** 145 + /* 146 146 * No special enable/disable -- vector assignments are implicit. 147 147 */ 148 148 void
+3 -3
drivers/scsi/bfa/bfa_hw_ct.c
··· 39 39 writel(0, kva + __ct_msix_err_vec_reg[fn]); 40 40 } 41 41 42 - /** 42 + /* 43 43 * Dummy interrupt handler for handling spurious interrupt during chip-reinit. 44 44 */ 45 45 static void ··· 110 110 *num_vecs = BFA_MSIX_CT_MAX; 111 111 } 112 112 113 - /** 113 + /* 114 114 * Setup MSI-X vector for catapult 115 115 */ 116 116 void ··· 156 156 bfa->msix.handler[i] = bfa_hwct_msix_dummy; 157 157 } 158 158 159 - /** 159 + /* 160 160 * Enable MSI-X vectors 161 161 */ 162 162 void
+119 -119
drivers/scsi/bfa/bfa_ioc.c
··· 23 23 24 24 BFA_TRC_FILE(CNA, IOC); 25 25 26 - /** 26 + /* 27 27 * IOC local definitions 28 28 */ 29 29 #define BFA_IOC_TOV 3000 /* msecs */ ··· 49 49 BFA_TRC_MAX * sizeof(struct bfa_trc_s))) 50 50 #define BFA_DBG_FWTRC_OFF(_fn) (BFI_IOC_TRC_OFF + BFA_DBG_FWTRC_LEN * (_fn)) 51 51 52 - /** 52 + /* 53 53 * Asic specific macros : see bfa_hw_cb.c and bfa_hw_ct.c for details. 54 54 */ 55 55 ··· 101 101 static void bfa_ioc_pf_failed(struct bfa_ioc_s *ioc); 102 102 static void bfa_ioc_pf_fwmismatch(struct bfa_ioc_s *ioc); 103 103 104 - /** 104 + /* 105 105 * hal_ioc_sm 106 106 */ 107 107 108 - /** 108 + /* 109 109 * IOC state machine definitions/declarations 110 110 */ 111 111 enum ioc_event { ··· 144 144 {BFA_SM(bfa_ioc_sm_disabled), BFA_IOC_DISABLED}, 145 145 }; 146 146 147 - /** 147 + /* 148 148 * IOCPF state machine definitions/declarations 149 149 */ 150 150 ··· 174 174 static void bfa_iocpf_timeout(void *ioc_arg); 175 175 static void bfa_iocpf_sem_timeout(void *ioc_arg); 176 176 177 - /** 177 + /* 178 178 * IOCPF state machine events 179 179 */ 180 180 enum iocpf_event { ··· 191 191 IOCPF_E_TIMEOUT = 11, /* f/w response timeout */ 192 192 }; 193 193 194 - /** 194 + /* 195 195 * IOCPF states 196 196 */ 197 197 enum bfa_iocpf_state { ··· 232 232 {BFA_SM(bfa_iocpf_sm_disabled), BFA_IOCPF_DISABLED}, 233 233 }; 234 234 235 - /** 235 + /* 236 236 * IOC State Machine 237 237 */ 238 238 239 - /** 239 + /* 240 240 * Beginning state. IOC uninit state. 241 241 */ 242 242 ··· 245 245 { 246 246 } 247 247 248 - /** 248 + /* 249 249 * IOC is in uninit state. 250 250 */ 251 251 static void ··· 262 262 bfa_sm_fault(ioc, event); 263 263 } 264 264 } 265 - /** 265 + /* 266 266 * Reset entry actions -- initialize state machine 267 267 */ 268 268 static void ··· 271 271 bfa_fsm_set_state(&ioc->iocpf, bfa_iocpf_sm_reset); 272 272 } 273 273 274 - /** 274 + /* 275 275 * IOC is in reset state. 276 276 */ 277 277 static void ··· 304 304 bfa_iocpf_enable(ioc); 305 305 } 306 306 307 - /** 307 + /* 308 308 * Host IOC function is being enabled, awaiting response from firmware. 309 309 * Semaphore is acquired. 310 310 */ ··· 352 352 bfa_ioc_send_getattr(ioc); 353 353 } 354 354 355 - /** 355 + /* 356 356 * IOC configuration in progress. Timer is active. 357 357 */ 358 358 static void ··· 447 447 BFA_LOG(KERN_INFO, bfad, log_level, "IOC disabled\n"); 448 448 } 449 449 450 - /** 450 + /* 451 451 * IOC is being disabled 452 452 */ 453 453 static void ··· 474 474 } 475 475 } 476 476 477 - /** 477 + /* 478 478 * IOC disable completion entry. 479 479 */ 480 480 static void ··· 514 514 ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE); 515 515 } 516 516 517 - /** 517 + /* 518 518 * Hardware initialization failed. 519 519 */ 520 520 static void ··· 528 528 break; 529 529 530 530 case IOC_E_FAILED: 531 - /** 531 + /* 532 532 * Initialization failure during iocpf init retry. 533 533 */ 534 534 ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE); ··· 556 556 struct bfa_ioc_hbfail_notify_s *notify; 557 557 struct bfad_s *bfad = (struct bfad_s *)ioc->bfa->bfad; 558 558 559 - /** 559 + /* 560 560 * Notify driver and common modules registered for notification. 561 561 */ 562 562 ioc->cbfn->hbfail_cbfn(ioc->bfa); ··· 569 569 "Heart Beat of IOC has failed\n"); 570 570 } 571 571 572 - /** 572 + /* 573 573 * IOC failure. 574 574 */ 575 575 static void ··· 580 580 switch (event) { 581 581 582 582 case IOC_E_FAILED: 583 - /** 583 + /* 584 584 * Initialization failure during iocpf recovery. 585 585 * !!! Fall through !!! 586 586 */ ··· 608 608 609 609 610 610 611 - /** 611 + /* 612 612 * IOCPF State Machine 613 613 */ 614 614 615 615 616 - /** 616 + /* 617 617 * Reset entry actions -- initialize state machine 618 618 */ 619 619 static void ··· 623 623 iocpf->auto_recover = bfa_auto_recover; 624 624 } 625 625 626 - /** 626 + /* 627 627 * Beginning state. IOC is in reset state. 628 628 */ 629 629 static void ··· 646 646 } 647 647 } 648 648 649 - /** 649 + /* 650 650 * Semaphore should be acquired for version check. 651 651 */ 652 652 static void ··· 655 655 bfa_ioc_hw_sem_get(iocpf->ioc); 656 656 } 657 657 658 - /** 658 + /* 659 659 * Awaiting h/w semaphore to continue with version check. 660 660 */ 661 661 static void ··· 692 692 } 693 693 } 694 694 695 - /** 695 + /* 696 696 * Notify enable completion callback. 697 697 */ 698 698 static void ··· 708 708 bfa_iocpf_timer_start(iocpf->ioc); 709 709 } 710 710 711 - /** 711 + /* 712 712 * Awaiting firmware version match. 713 713 */ 714 714 static void ··· 739 739 } 740 740 } 741 741 742 - /** 742 + /* 743 743 * Request for semaphore. 744 744 */ 745 745 static void ··· 748 748 bfa_ioc_hw_sem_get(iocpf->ioc); 749 749 } 750 750 751 - /** 751 + /* 752 752 * Awaiting semaphore for h/w initialzation. 753 753 */ 754 754 static void ··· 782 782 bfa_ioc_reset(iocpf->ioc, BFA_FALSE); 783 783 } 784 784 785 - /** 785 + /* 786 786 * Hardware is being initialized. Interrupts are enabled. 787 787 * Holding hardware semaphore lock. 788 788 */ ··· 839 839 bfa_ioc_send_enable(iocpf->ioc); 840 840 } 841 841 842 - /** 842 + /* 843 843 * Host IOC function is being enabled, awaiting response from firmware. 844 844 * Semaphore is acquired. 845 845 */ ··· 943 943 bfa_ioc_send_disable(iocpf->ioc); 944 944 } 945 945 946 - /** 946 + /* 947 947 * IOC is being disabled 948 948 */ 949 949 static void ··· 979 979 } 980 980 } 981 981 982 - /** 982 + /* 983 983 * IOC disable completion entry. 984 984 */ 985 985 static void ··· 1017 1017 bfa_iocpf_timer_start(iocpf->ioc); 1018 1018 } 1019 1019 1020 - /** 1020 + /* 1021 1021 * Hardware initialization failed. 1022 1022 */ 1023 1023 static void ··· 1052 1052 static void 1053 1053 bfa_iocpf_sm_fail_entry(struct bfa_iocpf_s *iocpf) 1054 1054 { 1055 - /** 1055 + /* 1056 1056 * Mark IOC as failed in hardware and stop firmware. 1057 1057 */ 1058 1058 bfa_ioc_lpu_stop(iocpf->ioc); 1059 1059 writel(BFI_IOC_FAIL, iocpf->ioc->ioc_regs.ioc_fwstate); 1060 1060 1061 - /** 1061 + /* 1062 1062 * Notify other functions on HB failure. 1063 1063 */ 1064 1064 bfa_ioc_notify_hbfail(iocpf->ioc); 1065 1065 1066 - /** 1066 + /* 1067 1067 * Flush any queued up mailbox requests. 1068 1068 */ 1069 1069 bfa_ioc_mbox_hbfail(iocpf->ioc); ··· 1072 1072 bfa_iocpf_recovery_timer_start(iocpf->ioc); 1073 1073 } 1074 1074 1075 - /** 1075 + /* 1076 1076 * IOC is in failed state. 1077 1077 */ 1078 1078 static void ··· 1100 1100 1101 1101 1102 1102 1103 - /** 1103 + /* 1104 1104 * hal_ioc_pvt BFA IOC private functions 1105 1105 */ 1106 1106 ··· 1112 1112 1113 1113 ioc->cbfn->disable_cbfn(ioc->bfa); 1114 1114 1115 - /** 1115 + /* 1116 1116 * Notify common modules registered for notification. 1117 1117 */ 1118 1118 list_for_each(qe, &ioc->hb_notify_q) { ··· 1154 1154 { 1155 1155 u32 r32; 1156 1156 1157 - /** 1157 + /* 1158 1158 * First read to the semaphore register will return 0, subsequent reads 1159 1159 * will return 1. Semaphore is released by writing 1 to the register 1160 1160 */ ··· 1179 1179 bfa_sem_timer_stop(ioc); 1180 1180 } 1181 1181 1182 - /** 1182 + /* 1183 1183 * Initialize LPU local memory (aka secondary memory / SRAM) 1184 1184 */ 1185 1185 static void ··· 1199 1199 pss_ctl |= __PSS_I2C_CLK_DIV(3UL); 1200 1200 writel(pss_ctl, ioc->ioc_regs.pss_ctl_reg); 1201 1201 1202 - /** 1202 + /* 1203 1203 * wait for memory initialization to be complete 1204 1204 */ 1205 1205 i = 0; ··· 1208 1208 i++; 1209 1209 } while (!(pss_ctl & __PSS_LMEM_INIT_DONE) && (i < PSS_LMEM_INIT_TIME)); 1210 1210 1211 - /** 1211 + /* 1212 1212 * If memory initialization is not successful, IOC timeout will catch 1213 1213 * such failures. 1214 1214 */ ··· 1224 1224 { 1225 1225 u32 pss_ctl; 1226 1226 1227 - /** 1227 + /* 1228 1228 * Take processor out of reset. 1229 1229 */ 1230 1230 pss_ctl = readl(ioc->ioc_regs.pss_ctl_reg); ··· 1238 1238 { 1239 1239 u32 pss_ctl; 1240 1240 1241 - /** 1241 + /* 1242 1242 * Put processors in reset. 1243 1243 */ 1244 1244 pss_ctl = readl(ioc->ioc_regs.pss_ctl_reg); ··· 1247 1247 writel(pss_ctl, ioc->ioc_regs.pss_ctl_reg); 1248 1248 } 1249 1249 1250 - /** 1250 + /* 1251 1251 * Get driver and firmware versions. 1252 1252 */ 1253 1253 void ··· 1270 1270 } 1271 1271 } 1272 1272 1273 - /** 1273 + /* 1274 1274 * Returns TRUE if same. 1275 1275 */ 1276 1276 bfa_boolean_t ··· 1295 1295 return BFA_TRUE; 1296 1296 } 1297 1297 1298 - /** 1298 + /* 1299 1299 * Return true if current running version is valid. Firmware signature and 1300 1300 * execution context (driver/bios) must match. 1301 1301 */ ··· 1304 1304 { 1305 1305 struct bfi_ioc_image_hdr_s fwhdr, *drv_fwhdr; 1306 1306 1307 - /** 1307 + /* 1308 1308 * If bios/efi boot (flash based) -- return true 1309 1309 */ 1310 1310 if (bfa_ioc_is_bios_optrom(ioc)) ··· 1329 1329 return bfa_ioc_fwver_cmp(ioc, &fwhdr); 1330 1330 } 1331 1331 1332 - /** 1332 + /* 1333 1333 * Conditionally flush any pending message from firmware at start. 1334 1334 */ 1335 1335 static void ··· 1361 1361 boot_type = BFI_BOOT_TYPE_NORMAL; 1362 1362 boot_env = BFI_BOOT_LOADER_OS; 1363 1363 1364 - /** 1364 + /* 1365 1365 * Flash based firmware boot BIOS env. 1366 1366 */ 1367 1367 if (bfa_ioc_is_bios_optrom(ioc)) { ··· 1369 1369 boot_env = BFI_BOOT_LOADER_BIOS; 1370 1370 } 1371 1371 1372 - /** 1372 + /* 1373 1373 * Flash based firmware boot UEFI env. 1374 1374 */ 1375 1375 if (bfa_ioc_is_uefi(ioc)) { ··· 1377 1377 boot_env = BFI_BOOT_LOADER_UEFI; 1378 1378 } 1379 1379 1380 - /** 1380 + /* 1381 1381 * check if firmware is valid 1382 1382 */ 1383 1383 fwvalid = (ioc_fwstate == BFI_IOC_UNINIT) ? ··· 1388 1388 return; 1389 1389 } 1390 1390 1391 - /** 1391 + /* 1392 1392 * If hardware initialization is in progress (initialized by other IOC), 1393 1393 * just wait for an initialization completion interrupt. 1394 1394 */ ··· 1397 1397 return; 1398 1398 } 1399 1399 1400 - /** 1400 + /* 1401 1401 * If IOC function is disabled and firmware version is same, 1402 1402 * just re-enable IOC. 1403 1403 * ··· 1408 1408 if (ioc_fwstate == BFI_IOC_DISABLED || 1409 1409 (!bfa_ioc_is_bios_optrom(ioc) && ioc_fwstate == BFI_IOC_OP)) { 1410 1410 1411 - /** 1411 + /* 1412 1412 * When using MSI-X any pending firmware ready event should 1413 1413 * be flushed. Otherwise MSI-X interrupts are not delivered. 1414 1414 */ ··· 1418 1418 return; 1419 1419 } 1420 1420 1421 - /** 1421 + /* 1422 1422 * Initialize the h/w for any other states. 1423 1423 */ 1424 1424 bfa_ioc_boot(ioc, boot_type, boot_env); ··· 1529 1529 } 1530 1530 1531 1531 1532 - /** 1532 + /* 1533 1533 * Initiate a full firmware download. 1534 1534 */ 1535 1535 static void ··· 1542 1542 u32 chunkno = 0; 1543 1543 u32 i; 1544 1544 1545 - /** 1545 + /* 1546 1546 * Initialize LMEM first before code download 1547 1547 */ 1548 1548 bfa_ioc_lmem_init(ioc); ··· 1563 1563 BFA_IOC_FLASH_CHUNK_ADDR(chunkno)); 1564 1564 } 1565 1565 1566 - /** 1566 + /* 1567 1567 * write smem 1568 1568 */ 1569 1569 bfa_mem_write(ioc->ioc_regs.smem_page_start, loff, ··· 1571 1571 1572 1572 loff += sizeof(u32); 1573 1573 1574 - /** 1574 + /* 1575 1575 * handle page offset wrap around 1576 1576 */ 1577 1577 loff = PSS_SMEM_PGOFF(loff); ··· 1598 1598 bfa_ioc_hwinit(ioc, force); 1599 1599 } 1600 1600 1601 - /** 1601 + /* 1602 1602 * Update BFA configuration from firmware configuration. 1603 1603 */ 1604 1604 static void ··· 1613 1613 bfa_fsm_send_event(ioc, IOC_E_FWRSP_GETATTR); 1614 1614 } 1615 1615 1616 - /** 1616 + /* 1617 1617 * Attach time initialization of mbox logic. 1618 1618 */ 1619 1619 static void ··· 1629 1629 } 1630 1630 } 1631 1631 1632 - /** 1632 + /* 1633 1633 * Mbox poll timer -- restarts any pending mailbox requests. 1634 1634 */ 1635 1635 static void ··· 1639 1639 struct bfa_mbox_cmd_s *cmd; 1640 1640 u32 stat; 1641 1641 1642 - /** 1642 + /* 1643 1643 * If no command pending, do nothing 1644 1644 */ 1645 1645 if (list_empty(&mod->cmd_q)) 1646 1646 return; 1647 1647 1648 - /** 1648 + /* 1649 1649 * If previous command is not yet fetched by firmware, do nothing 1650 1650 */ 1651 1651 stat = readl(ioc->ioc_regs.hfn_mbox_cmd); 1652 1652 if (stat) 1653 1653 return; 1654 1654 1655 - /** 1655 + /* 1656 1656 * Enqueue command to firmware. 1657 1657 */ 1658 1658 bfa_q_deq(&mod->cmd_q, &cmd); 1659 1659 bfa_ioc_mbox_send(ioc, cmd->msg, sizeof(cmd->msg)); 1660 1660 } 1661 1661 1662 - /** 1662 + /* 1663 1663 * Cleanup any pending requests. 1664 1664 */ 1665 1665 static void ··· 1672 1672 bfa_q_deq(&mod->cmd_q, &cmd); 1673 1673 } 1674 1674 1675 - /** 1675 + /* 1676 1676 * Read data from SMEM to host through PCI memmap 1677 1677 * 1678 1678 * @param[in] ioc memory for IOC ··· 1710 1710 buf[i] = be32_to_cpu(r32); 1711 1711 loff += sizeof(u32); 1712 1712 1713 - /** 1713 + /* 1714 1714 * handle page offset wrap around 1715 1715 */ 1716 1716 loff = PSS_SMEM_PGOFF(loff); ··· 1729 1729 return BFA_STATUS_OK; 1730 1730 } 1731 1731 1732 - /** 1732 + /* 1733 1733 * Clear SMEM data from host through PCI memmap 1734 1734 * 1735 1735 * @param[in] ioc memory for IOC ··· 1764 1764 bfa_mem_write(ioc->ioc_regs.smem_page_start, loff, 0); 1765 1765 loff += sizeof(u32); 1766 1766 1767 - /** 1767 + /* 1768 1768 * handle page offset wrap around 1769 1769 */ 1770 1770 loff = PSS_SMEM_PGOFF(loff); ··· 1783 1783 return BFA_STATUS_OK; 1784 1784 } 1785 1785 1786 - /** 1786 + /* 1787 1787 * hal iocpf to ioc interface 1788 1788 */ 1789 1789 static void ··· 1808 1808 bfa_ioc_pf_fwmismatch(struct bfa_ioc_s *ioc) 1809 1809 { 1810 1810 struct bfad_s *bfad = (struct bfad_s *)ioc->bfa->bfad; 1811 - /** 1811 + /* 1812 1812 * Provide enable completion callback. 1813 1813 */ 1814 1814 ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE); ··· 1819 1819 1820 1820 1821 1821 1822 - /** 1822 + /* 1823 1823 * hal_ioc_public 1824 1824 */ 1825 1825 ··· 1843 1843 return BFA_STATUS_OK; 1844 1844 } 1845 1845 1846 - /** 1846 + /* 1847 1847 * Interface used by diag module to do firmware boot with memory test 1848 1848 * as the entry vector. 1849 1849 */ ··· 1857 1857 if (bfa_ioc_pll_init(ioc) != BFA_STATUS_OK) 1858 1858 return; 1859 1859 1860 - /** 1860 + /* 1861 1861 * Initialize IOC state of all functions on a chip reset. 1862 1862 */ 1863 1863 rb = ioc->pcidev.pci_bar_kva; ··· 1872 1872 bfa_ioc_msgflush(ioc); 1873 1873 bfa_ioc_download_fw(ioc, boot_type, boot_env); 1874 1874 1875 - /** 1875 + /* 1876 1876 * Enable interrupts just before starting LPU 1877 1877 */ 1878 1878 ioc->cbfn->reset_cbfn(ioc->bfa); 1879 1879 bfa_ioc_lpu_start(ioc); 1880 1880 } 1881 1881 1882 - /** 1882 + /* 1883 1883 * Enable/disable IOC failure auto recovery. 1884 1884 */ 1885 1885 void ··· 1913 1913 u32 r32; 1914 1914 int i; 1915 1915 1916 - /** 1916 + /* 1917 1917 * read the MBOX msg 1918 1918 */ 1919 1919 for (i = 0; i < (sizeof(union bfi_ioc_i2h_msg_u) / sizeof(u32)); ··· 1923 1923 msgp[i] = cpu_to_be32(r32); 1924 1924 } 1925 1925 1926 - /** 1926 + /* 1927 1927 * turn off mailbox interrupt by clearing mailbox status 1928 1928 */ 1929 1929 writel(1, ioc->ioc_regs.lpu_mbox_cmd); ··· 1966 1966 } 1967 1967 } 1968 1968 1969 - /** 1969 + /* 1970 1970 * IOC attach time initialization and setup. 1971 1971 * 1972 1972 * @param[in] ioc memory for IOC ··· 1991 1991 bfa_fsm_send_event(ioc, IOC_E_RESET); 1992 1992 } 1993 1993 1994 - /** 1994 + /* 1995 1995 * Driver detach time IOC cleanup. 1996 1996 */ 1997 1997 void ··· 2000 2000 bfa_fsm_send_event(ioc, IOC_E_DETACH); 2001 2001 } 2002 2002 2003 - /** 2003 + /* 2004 2004 * Setup IOC PCI properties. 2005 2005 * 2006 2006 * @param[in] pcidev PCI device information for this IOC ··· 2014 2014 ioc->ctdev = bfa_asic_id_ct(ioc->pcidev.device_id); 2015 2015 ioc->cna = ioc->ctdev && !ioc->fcmode; 2016 2016 2017 - /** 2017 + /* 2018 2018 * Set asic specific interfaces. See bfa_ioc_cb.c and bfa_ioc_ct.c 2019 2019 */ 2020 2020 if (ioc->ctdev) ··· 2026 2026 bfa_ioc_reg_init(ioc); 2027 2027 } 2028 2028 2029 - /** 2029 + /* 2030 2030 * Initialize IOC dma memory 2031 2031 * 2032 2032 * @param[in] dm_kva kernel virtual address of IOC dma memory ··· 2035 2035 void 2036 2036 bfa_ioc_mem_claim(struct bfa_ioc_s *ioc, u8 *dm_kva, u64 dm_pa) 2037 2037 { 2038 - /** 2038 + /* 2039 2039 * dma memory for firmware attribute 2040 2040 */ 2041 2041 ioc->attr_dma.kva = dm_kva; ··· 2043 2043 ioc->attr = (struct bfi_ioc_attr_s *) dm_kva; 2044 2044 } 2045 2045 2046 - /** 2046 + /* 2047 2047 * Return size of dma memory required. 2048 2048 */ 2049 2049 u32 ··· 2068 2068 bfa_fsm_send_event(ioc, IOC_E_DISABLE); 2069 2069 } 2070 2070 2071 - /** 2071 + /* 2072 2072 * Returns memory required for saving firmware trace in case of crash. 2073 2073 * Driver must call this interface to allocate memory required for 2074 2074 * automatic saving of firmware trace. Driver should call ··· 2081 2081 return (auto_recover) ? BFA_DBG_FWTRC_LEN : 0; 2082 2082 } 2083 2083 2084 - /** 2084 + /* 2085 2085 * Initialize memory for saving firmware trace. Driver must initialize 2086 2086 * trace memory before call bfa_ioc_enable(). 2087 2087 */ ··· 2104 2104 return PSS_SMEM_PGOFF(fmaddr); 2105 2105 } 2106 2106 2107 - /** 2107 + /* 2108 2108 * Register mailbox message handler functions 2109 2109 * 2110 2110 * @param[in] ioc IOC instance ··· 2120 2120 mod->mbhdlr[mc].cbfn = mcfuncs[mc]; 2121 2121 } 2122 2122 2123 - /** 2123 + /* 2124 2124 * Register mailbox message handler function, to be called by common modules 2125 2125 */ 2126 2126 void ··· 2133 2133 mod->mbhdlr[mc].cbarg = cbarg; 2134 2134 } 2135 2135 2136 - /** 2136 + /* 2137 2137 * Queue a mailbox command request to firmware. Waits if mailbox is busy. 2138 2138 * Responsibility of caller to serialize 2139 2139 * ··· 2146 2146 struct bfa_ioc_mbox_mod_s *mod = &ioc->mbox_mod; 2147 2147 u32 stat; 2148 2148 2149 - /** 2149 + /* 2150 2150 * If a previous command is pending, queue new command 2151 2151 */ 2152 2152 if (!list_empty(&mod->cmd_q)) { ··· 2154 2154 return; 2155 2155 } 2156 2156 2157 - /** 2157 + /* 2158 2158 * If mailbox is busy, queue command for poll timer 2159 2159 */ 2160 2160 stat = readl(ioc->ioc_regs.hfn_mbox_cmd); ··· 2163 2163 return; 2164 2164 } 2165 2165 2166 - /** 2166 + /* 2167 2167 * mailbox is free -- queue command to firmware 2168 2168 */ 2169 2169 bfa_ioc_mbox_send(ioc, cmd->msg, sizeof(cmd->msg)); 2170 2170 } 2171 2171 2172 - /** 2172 + /* 2173 2173 * Handle mailbox interrupts 2174 2174 */ 2175 2175 void ··· 2181 2181 2182 2182 bfa_ioc_msgget(ioc, &m); 2183 2183 2184 - /** 2184 + /* 2185 2185 * Treat IOC message class as special. 2186 2186 */ 2187 2187 mc = m.mh.msg_class; ··· 2209 2209 ioc->port_id = bfa_ioc_pcifn(ioc); 2210 2210 } 2211 2211 2212 - /** 2212 + /* 2213 2213 * return true if IOC is disabled 2214 2214 */ 2215 2215 bfa_boolean_t ··· 2219 2219 bfa_fsm_cmp_state(ioc, bfa_ioc_sm_disabled); 2220 2220 } 2221 2221 2222 - /** 2222 + /* 2223 2223 * return true if IOC firmware is different. 2224 2224 */ 2225 2225 bfa_boolean_t ··· 2238 2238 ((__sm) == BFI_IOC_FAIL) || \ 2239 2239 ((__sm) == BFI_IOC_CFG_DISABLED)) 2240 2240 2241 - /** 2241 + /* 2242 2242 * Check if adapter is disabled -- both IOCs should be in a disabled 2243 2243 * state. 2244 2244 */ ··· 2264 2264 return BFA_TRUE; 2265 2265 } 2266 2266 2267 - /** 2267 + /* 2268 2268 * Add to IOC heartbeat failure notification queue. To be used by common 2269 2269 * modules such as cee, port, diag. 2270 2270 */ ··· 2391 2391 2392 2392 ioc_attr = ioc->attr; 2393 2393 2394 - /** 2394 + /* 2395 2395 * model name 2396 2396 */ 2397 2397 snprintf(model, BFA_ADAPTER_MODEL_NAME_LEN, "%s-%u", ··· 2455 2455 bfa_ioc_get_pci_chip_rev(ioc, ioc_attr->pci_attr.chip_rev); 2456 2456 } 2457 2457 2458 - /** 2458 + /* 2459 2459 * hal_wwn_public 2460 2460 */ 2461 2461 wwn_t ··· 2521 2521 return ioc->fcmode || !bfa_asic_id_ct(ioc->pcidev.device_id); 2522 2522 } 2523 2523 2524 - /** 2524 + /* 2525 2525 * Retrieve saved firmware trace from a prior IOC failure. 2526 2526 */ 2527 2527 bfa_status_t ··· 2541 2541 return BFA_STATUS_OK; 2542 2542 } 2543 2543 2544 - /** 2544 + /* 2545 2545 * Clear saved firmware trace 2546 2546 */ 2547 2547 void ··· 2550 2550 ioc->dbg_fwsave_once = BFA_TRUE; 2551 2551 } 2552 2552 2553 - /** 2553 + /* 2554 2554 * Retrieve saved firmware trace from a prior IOC failure. 2555 2555 */ 2556 2556 bfa_status_t ··· 2590 2590 2591 2591 bfa_ioc_send_fwsync(ioc); 2592 2592 2593 - /** 2593 + /* 2594 2594 * After sending a fw sync mbox command wait for it to 2595 2595 * take effect. We will not wait for a response because 2596 2596 * 1. fw_sync mbox cmd doesn't have a response. ··· 2605 2605 fwsync_iter--; 2606 2606 } 2607 2607 2608 - /** 2608 + /* 2609 2609 * Dump firmware smem 2610 2610 */ 2611 2611 bfa_status_t ··· 2625 2625 loff = *offset; 2626 2626 dlen = *buflen; 2627 2627 2628 - /** 2628 + /* 2629 2629 * First smem read, sync smem before proceeding 2630 2630 * No need to sync before reading every chunk. 2631 2631 */ ··· 2652 2652 return status; 2653 2653 } 2654 2654 2655 - /** 2655 + /* 2656 2656 * Firmware statistics 2657 2657 */ 2658 2658 bfa_status_t ··· 2697 2697 return status; 2698 2698 } 2699 2699 2700 - /** 2700 + /* 2701 2701 * Save firmware trace if configured. 2702 2702 */ 2703 2703 static void ··· 2711 2711 } 2712 2712 } 2713 2713 2714 - /** 2714 + /* 2715 2715 * Firmware failure detected. Start recovery actions. 2716 2716 */ 2717 2717 static void ··· 2733 2733 return; 2734 2734 } 2735 2735 2736 - /** 2736 + /* 2737 2737 * hal_iocpf_pvt BFA IOC PF private functions 2738 2738 */ 2739 2739 ··· 2790 2790 bfa_ioc_hw_sem_get(ioc); 2791 2791 } 2792 2792 2793 - /** 2793 + /* 2794 2794 * bfa timer function 2795 2795 */ 2796 2796 void ··· 2835 2835 } 2836 2836 } 2837 2837 2838 - /** 2838 + /* 2839 2839 * Should be called with lock protection 2840 2840 */ 2841 2841 void ··· 2853 2853 list_add_tail(&timer->qe, &mod->timer_q); 2854 2854 } 2855 2855 2856 - /** 2856 + /* 2857 2857 * Should be called with lock protection 2858 2858 */ 2859 2859 void
+11 -11
drivers/scsi/bfa/bfa_ioc_cb.c
··· 34 34 35 35 struct bfa_ioc_hwif_s hwif_cb; 36 36 37 - /** 37 + /* 38 38 * Called from bfa_ioc_attach() to map asic specific calls. 39 39 */ 40 40 void ··· 52 52 ioc->ioc_hwif = &hwif_cb; 53 53 } 54 54 55 - /** 55 + /* 56 56 * Return true if firmware of current driver matches the running firmware. 57 57 */ 58 58 static bfa_boolean_t ··· 66 66 { 67 67 } 68 68 69 - /** 69 + /* 70 70 * Notify other functions on HB failure. 71 71 */ 72 72 static void ··· 76 76 readl(ioc->ioc_regs.err_set); 77 77 } 78 78 79 - /** 79 + /* 80 80 * Host to LPU mailbox message addresses 81 81 */ 82 82 static struct { u32 hfn_mbox, lpu_mbox, hfn_pgn; } iocreg_fnreg[] = { ··· 84 84 { HOSTFN1_LPU_MBOX0_8, LPU_HOSTFN1_MBOX0_8, HOST_PAGE_NUM_FN1 } 85 85 }; 86 86 87 - /** 87 + /* 88 88 * Host <-> LPU mailbox command/status registers 89 89 */ 90 90 static struct { u32 hfn, lpu; } iocreg_mbcmd[] = { ··· 113 113 ioc->ioc_regs.ioc_fwstate = (rb + BFA_IOC1_STATE_REG); 114 114 } 115 115 116 - /** 116 + /* 117 117 * Host <-> LPU mailbox command/status registers 118 118 */ 119 119 ioc->ioc_regs.hfn_mbox_cmd = rb + iocreg_mbcmd[pcifn].hfn; ··· 133 133 ioc->ioc_regs.ioc_sem_reg = (rb + HOST_SEM0_REG); 134 134 ioc->ioc_regs.ioc_init_sem_reg = (rb + HOST_SEM2_REG); 135 135 136 - /** 136 + /* 137 137 * sram memory access 138 138 */ 139 139 ioc->ioc_regs.smem_page_start = (rb + PSS_SMEM_PAGE_START); ··· 145 145 ioc->ioc_regs.err_set = (rb + ERR_SET_REG); 146 146 } 147 147 148 - /** 148 + /* 149 149 * Initialize IOC to port mapping. 150 150 */ 151 151 152 152 static void 153 153 bfa_ioc_cb_map_port(struct bfa_ioc_s *ioc) 154 154 { 155 - /** 155 + /* 156 156 * For crossbow, port id is same as pci function. 157 157 */ 158 158 ioc->port_id = bfa_ioc_pcifn(ioc); ··· 160 160 bfa_trc(ioc, ioc->port_id); 161 161 } 162 162 163 - /** 163 + /* 164 164 * Set interrupt mode for a function: INTX or MSIX 165 165 */ 166 166 static void ··· 168 168 { 169 169 } 170 170 171 - /** 171 + /* 172 172 * Cleanup hw semaphore and usecnt registers 173 173 */ 174 174 static void
+21 -21
drivers/scsi/bfa/bfa_ioc_ct.c
··· 34 34 35 35 struct bfa_ioc_hwif_s hwif_ct; 36 36 37 - /** 37 + /* 38 38 * Called from bfa_ioc_attach() to map asic specific calls. 39 39 */ 40 40 void ··· 52 52 ioc->ioc_hwif = &hwif_ct; 53 53 } 54 54 55 - /** 55 + /* 56 56 * Return true if firmware of current driver matches the running firmware. 57 57 */ 58 58 static bfa_boolean_t ··· 62 62 u32 usecnt; 63 63 struct bfi_ioc_image_hdr_s fwhdr; 64 64 65 - /** 65 + /* 66 66 * Firmware match check is relevant only for CNA. 67 67 */ 68 68 if (!ioc->cna) 69 69 return BFA_TRUE; 70 70 71 - /** 71 + /* 72 72 * If bios boot (flash based) -- do not increment usage count 73 73 */ 74 74 if (bfa_cb_image_get_size(BFA_IOC_FWIMG_TYPE(ioc)) < ··· 78 78 bfa_ioc_sem_get(ioc->ioc_regs.ioc_usage_sem_reg); 79 79 usecnt = readl(ioc->ioc_regs.ioc_usage_reg); 80 80 81 - /** 81 + /* 82 82 * If usage count is 0, always return TRUE. 83 83 */ 84 84 if (usecnt == 0) { ··· 91 91 ioc_fwstate = readl(ioc->ioc_regs.ioc_fwstate); 92 92 bfa_trc(ioc, ioc_fwstate); 93 93 94 - /** 94 + /* 95 95 * Use count cannot be non-zero and chip in uninitialized state. 96 96 */ 97 97 bfa_assert(ioc_fwstate != BFI_IOC_UNINIT); 98 98 99 - /** 99 + /* 100 100 * Check if another driver with a different firmware is active 101 101 */ 102 102 bfa_ioc_fwver_get(ioc, &fwhdr); ··· 106 106 return BFA_FALSE; 107 107 } 108 108 109 - /** 109 + /* 110 110 * Same firmware version. Increment the reference count. 111 111 */ 112 112 usecnt++; ··· 121 121 { 122 122 u32 usecnt; 123 123 124 - /** 124 + /* 125 125 * Firmware lock is relevant only for CNA. 126 126 */ 127 127 if (!ioc->cna) 128 128 return; 129 129 130 - /** 130 + /* 131 131 * If bios boot (flash based) -- do not decrement usage count 132 132 */ 133 133 if (bfa_cb_image_get_size(BFA_IOC_FWIMG_TYPE(ioc)) < 134 134 BFA_IOC_FWIMG_MINSZ) 135 135 return; 136 136 137 - /** 137 + /* 138 138 * decrement usage count 139 139 */ 140 140 bfa_ioc_sem_get(ioc->ioc_regs.ioc_usage_sem_reg); ··· 148 148 bfa_ioc_sem_release(ioc->ioc_regs.ioc_usage_sem_reg); 149 149 } 150 150 151 - /** 151 + /* 152 152 * Notify other functions on HB failure. 153 153 */ 154 154 static void ··· 164 164 } 165 165 } 166 166 167 - /** 167 + /* 168 168 * Host to LPU mailbox message addresses 169 169 */ 170 170 static struct { u32 hfn_mbox, lpu_mbox, hfn_pgn; } iocreg_fnreg[] = { ··· 174 174 { HOSTFN3_LPU_MBOX0_8, LPU_HOSTFN3_MBOX0_8, HOST_PAGE_NUM_FN3 } 175 175 }; 176 176 177 - /** 177 + /* 178 178 * Host <-> LPU mailbox command/status registers - port 0 179 179 */ 180 180 static struct { u32 hfn, lpu; } iocreg_mbcmd_p0[] = { ··· 184 184 { HOSTFN3_LPU0_MBOX0_CMD_STAT, LPU0_HOSTFN3_MBOX0_CMD_STAT } 185 185 }; 186 186 187 - /** 187 + /* 188 188 * Host <-> LPU mailbox command/status registers - port 1 189 189 */ 190 190 static struct { u32 hfn, lpu; } iocreg_mbcmd_p1[] = { ··· 236 236 ioc->ioc_regs.ioc_init_sem_reg = (rb + HOST_SEM2_REG); 237 237 ioc->ioc_regs.ioc_usage_reg = (rb + BFA_FW_USE_COUNT); 238 238 239 - /** 239 + /* 240 240 * sram memory access 241 241 */ 242 242 ioc->ioc_regs.smem_page_start = (rb + PSS_SMEM_PAGE_START); ··· 248 248 ioc->ioc_regs.err_set = (rb + ERR_SET_REG); 249 249 } 250 250 251 - /** 251 + /* 252 252 * Initialize IOC to port mapping. 253 253 */ 254 254 ··· 259 259 void __iomem *rb = ioc->pcidev.pci_bar_kva; 260 260 u32 r32; 261 261 262 - /** 262 + /* 263 263 * For catapult, base port id on personality register and IOC type 264 264 */ 265 265 r32 = readl(rb + FNC_PERS_REG); ··· 270 270 bfa_trc(ioc, ioc->port_id); 271 271 } 272 272 273 - /** 273 + /* 274 274 * Set interrupt mode for a function: INTX or MSIX 275 275 */ 276 276 static void ··· 285 285 mode = (r32 >> FNC_PERS_FN_SHIFT(bfa_ioc_pcifn(ioc))) & 286 286 __F0_INTX_STATUS; 287 287 288 - /** 288 + /* 289 289 * If already in desired mode, do not change anything 290 290 */ 291 291 if (!msix && mode) ··· 303 303 writel(r32, rb + FNC_PERS_REG); 304 304 } 305 305 306 - /** 306 + /* 307 307 * Cleanup hw semaphore and usecnt registers 308 308 */ 309 309 static void
+16 -16
drivers/scsi/bfa/bfa_port.c
··· 46 46 } 47 47 } 48 48 49 - /** 49 + /* 50 50 * bfa_port_enable_isr() 51 51 * 52 52 * ··· 63 63 port->endis_cbfn(port->endis_cbarg, status); 64 64 } 65 65 66 - /** 66 + /* 67 67 * bfa_port_disable_isr() 68 68 * 69 69 * ··· 80 80 port->endis_cbfn(port->endis_cbarg, status); 81 81 } 82 82 83 - /** 83 + /* 84 84 * bfa_port_get_stats_isr() 85 85 * 86 86 * ··· 112 112 } 113 113 } 114 114 115 - /** 115 + /* 116 116 * bfa_port_clear_stats_isr() 117 117 * 118 118 * ··· 129 129 port->stats_status = status; 130 130 port->stats_busy = BFA_FALSE; 131 131 132 - /** 132 + /* 133 133 * re-initialize time stamp for stats reset 134 134 */ 135 135 bfa_os_gettimeofday(&tv); ··· 141 141 } 142 142 } 143 143 144 - /** 144 + /* 145 145 * bfa_port_isr() 146 146 * 147 147 * ··· 189 189 } 190 190 } 191 191 192 - /** 192 + /* 193 193 * bfa_port_meminfo() 194 194 * 195 195 * ··· 203 203 return BFA_ROUNDUP(sizeof(union bfa_port_stats_u), BFA_DMA_ALIGN_SZ); 204 204 } 205 205 206 - /** 206 + /* 207 207 * bfa_port_mem_claim() 208 208 * 209 209 * ··· 220 220 port->stats_dma.pa = dma_pa; 221 221 } 222 222 223 - /** 223 + /* 224 224 * bfa_port_enable() 225 225 * 226 226 * Send the Port enable request to the f/w ··· 264 264 return BFA_STATUS_OK; 265 265 } 266 266 267 - /** 267 + /* 268 268 * bfa_port_disable() 269 269 * 270 270 * Send the Port disable request to the f/w ··· 308 308 return BFA_STATUS_OK; 309 309 } 310 310 311 - /** 311 + /* 312 312 * bfa_port_get_stats() 313 313 * 314 314 * Send the request to the f/w to fetch Port statistics. ··· 348 348 return BFA_STATUS_OK; 349 349 } 350 350 351 - /** 351 + /* 352 352 * bfa_port_clear_stats() 353 353 * 354 354 * ··· 385 385 return BFA_STATUS_OK; 386 386 } 387 387 388 - /** 388 + /* 389 389 * bfa_port_hbfail() 390 390 * 391 391 * ··· 415 415 } 416 416 } 417 417 418 - /** 418 + /* 419 419 * bfa_port_attach() 420 420 * 421 421 * ··· 449 449 bfa_ioc_hbfail_init(&port->hbfail, bfa_port_hbfail, port); 450 450 bfa_ioc_hbfail_register(port->ioc, &port->hbfail); 451 451 452 - /** 452 + /* 453 453 * initialize time stamp for stats reset 454 454 */ 455 455 bfa_os_gettimeofday(&tv); ··· 458 458 bfa_trc(port, 0); 459 459 } 460 460 461 - /** 461 + /* 462 462 * bfa_port_detach() 463 463 * 464 464 *
+189 -189
drivers/scsi/bfa/bfa_svc.c
··· 29 29 BFA_MODULE(rport); 30 30 BFA_MODULE(uf); 31 31 32 - /** 32 + /* 33 33 * LPS related definitions 34 34 */ 35 35 #define BFA_LPS_MIN_LPORTS (1) ··· 41 41 #define BFA_LPS_MAX_VPORTS_SUPP_CB 255 42 42 #define BFA_LPS_MAX_VPORTS_SUPP_CT 190 43 43 44 - /** 44 + /* 45 45 * lps_pvt BFA LPS private functions 46 46 */ 47 47 ··· 55 55 BFA_LPS_SM_RX_CVL = 7, /* Rx clear virtual link */ 56 56 }; 57 57 58 - /** 58 + /* 59 59 * FC PORT related definitions 60 60 */ 61 61 /* ··· 67 67 (bfa_ioc_is_disabled(&bfa->ioc) == BFA_TRUE)) 68 68 69 69 70 - /** 70 + /* 71 71 * BFA port state machine events 72 72 */ 73 73 enum bfa_fcport_sm_event { ··· 82 82 BFA_FCPORT_SM_HWFAIL = 9, /* IOC h/w failure */ 83 83 }; 84 84 85 - /** 85 + /* 86 86 * BFA port link notification state machine events 87 87 */ 88 88 ··· 92 92 BFA_FCPORT_LN_SM_NOTIFICATION = 3 /* done notification */ 93 93 }; 94 94 95 - /** 95 + /* 96 96 * RPORT related definitions 97 97 */ 98 98 #define bfa_rport_offline_cb(__rp) do { \ ··· 126 126 BFA_RPORT_SM_QRESUME = 9, /* space in requeue queue */ 127 127 }; 128 128 129 - /** 129 + /* 130 130 * forward declarations FCXP related functions 131 131 */ 132 132 static void __bfa_fcxp_send_cbfn(void *cbarg, bfa_boolean_t complete); ··· 138 138 static void bfa_fcxp_queue(struct bfa_fcxp_s *fcxp, 139 139 struct bfi_fcxp_send_req_s *send_req); 140 140 141 - /** 141 + /* 142 142 * forward declarations for LPS functions 143 143 */ 144 144 static void bfa_lps_meminfo(struct bfa_iocfc_cfg_s *cfg, u32 *ndm_len, ··· 163 163 static void bfa_lps_logout_comp(struct bfa_lps_s *lps); 164 164 static void bfa_lps_cvl_event(struct bfa_lps_s *lps); 165 165 166 - /** 166 + /* 167 167 * forward declaration for LPS state machine 168 168 */ 169 169 static void bfa_lps_sm_init(struct bfa_lps_s *lps, enum bfa_lps_event event); ··· 175 175 static void bfa_lps_sm_logowait(struct bfa_lps_s *lps, enum bfa_lps_event 176 176 event); 177 177 178 - /** 178 + /* 179 179 * forward declaration for FC Port functions 180 180 */ 181 181 static bfa_boolean_t bfa_fcport_send_enable(struct bfa_fcport_s *fcport); ··· 193 193 static void bfa_fcport_stats_clr_timeout(void *cbarg); 194 194 static void bfa_trunk_iocdisable(struct bfa_s *bfa); 195 195 196 - /** 196 + /* 197 197 * forward declaration for FC PORT state machine 198 198 */ 199 199 static void bfa_fcport_sm_uninit(struct bfa_fcport_s *fcport, ··· 252 252 }; 253 253 254 254 255 - /** 255 + /* 256 256 * forward declaration for RPORT related functions 257 257 */ 258 258 static struct bfa_rport_s *bfa_rport_alloc(struct bfa_rport_mod_s *rp_mod); ··· 265 265 static void __bfa_cb_rport_offline(void *cbarg, 266 266 bfa_boolean_t complete); 267 267 268 - /** 268 + /* 269 269 * forward declaration for RPORT state machine 270 270 */ 271 271 static void bfa_rport_sm_uninit(struct bfa_rport_s *rp, ··· 295 295 static void bfa_rport_sm_deleting_qfull(struct bfa_rport_s *rp, 296 296 enum bfa_rport_event event); 297 297 298 - /** 298 + /* 299 299 * PLOG related definitions 300 300 */ 301 301 static int ··· 461 461 return (bfa_boolean_t)plog->plog_enabled; 462 462 } 463 463 464 - /** 464 + /* 465 465 * fcxp_pvt BFA FCXP private functions 466 466 */ 467 467 ··· 562 562 mod->bfa = bfa; 563 563 mod->num_fcxps = cfg->fwcfg.num_fcxp_reqs; 564 564 565 - /** 565 + /* 566 566 * Initialize FCXP request and response payload sizes. 567 567 */ 568 568 mod->req_pld_sz = mod->rsp_pld_sz = BFA_FCXP_MAX_IBUF_SZ; ··· 746 746 747 747 fcxp_rsp->rsp_len = be32_to_cpu(fcxp_rsp->rsp_len); 748 748 749 - /** 749 + /* 750 750 * @todo f/w should not set residue to non-0 when everything 751 751 * is received. 752 752 */ ··· 855 855 } 856 856 } 857 857 858 - /** 858 + /* 859 859 * Handler to resume sending fcxp when space in available in cpe queue. 860 860 */ 861 861 static void ··· 870 870 bfa_fcxp_queue(fcxp, send_req); 871 871 } 872 872 873 - /** 873 + /* 874 874 * Queue fcxp send request to foimrware. 875 875 */ 876 876 static void ··· 954 954 bfa_trc(bfa, bfa_reqq_ci(bfa, BFA_REQQ_FCXP)); 955 955 } 956 956 957 - /** 957 + /* 958 958 * hal_fcxp_api BFA FCXP API 959 959 */ 960 960 961 - /** 961 + /* 962 962 * Allocate an FCXP instance to send a response or to send a request 963 963 * that has a response. Request/response buffers are allocated by caller. 964 964 * ··· 1004 1004 return fcxp; 1005 1005 } 1006 1006 1007 - /** 1007 + /* 1008 1008 * Get the internal request buffer pointer 1009 1009 * 1010 1010 * @param[in] fcxp BFA fcxp pointer ··· 1031 1031 return mod->req_pld_sz; 1032 1032 } 1033 1033 1034 - /** 1034 + /* 1035 1035 * Get the internal response buffer pointer 1036 1036 * 1037 1037 * @param[in] fcxp BFA fcxp pointer ··· 1051 1051 return rspbuf; 1052 1052 } 1053 1053 1054 - /** 1054 + /* 1055 1055 * Free the BFA FCXP 1056 1056 * 1057 1057 * @param[in] fcxp BFA fcxp pointer ··· 1068 1068 bfa_fcxp_put(fcxp); 1069 1069 } 1070 1070 1071 - /** 1071 + /* 1072 1072 * Send a FCXP request 1073 1073 * 1074 1074 * @param[in] fcxp BFA fcxp pointer ··· 1102 1102 1103 1103 bfa_trc(bfa, fcxp->fcxp_tag); 1104 1104 1105 - /** 1105 + /* 1106 1106 * setup request/response info 1107 1107 */ 1108 1108 reqi->bfa_rport = rport; ··· 1117 1117 fcxp->send_cbfn = cbfn ? cbfn : bfa_fcxp_null_comp; 1118 1118 fcxp->send_cbarg = cbarg; 1119 1119 1120 - /** 1120 + /* 1121 1121 * If no room in CPE queue, wait for space in request queue 1122 1122 */ 1123 1123 send_req = bfa_reqq_next(bfa, BFA_REQQ_FCXP); ··· 1131 1131 bfa_fcxp_queue(fcxp, send_req); 1132 1132 } 1133 1133 1134 - /** 1134 + /* 1135 1135 * Abort a BFA FCXP 1136 1136 * 1137 1137 * @param[in] fcxp BFA fcxp pointer ··· 1185 1185 void 1186 1186 bfa_fcxp_discard(struct bfa_fcxp_s *fcxp) 1187 1187 { 1188 - /** 1188 + /* 1189 1189 * If waiting for room in request queue, cancel reqq wait 1190 1190 * and free fcxp. 1191 1191 */ ··· 1201 1201 1202 1202 1203 1203 1204 - /** 1204 + /* 1205 1205 * hal_fcxp_public BFA FCXP public functions 1206 1206 */ 1207 1207 ··· 1228 1228 } 1229 1229 1230 1230 1231 - /** 1231 + /* 1232 1232 * BFA LPS state machine functions 1233 1233 */ 1234 1234 1235 - /** 1235 + /* 1236 1236 * Init state -- no login 1237 1237 */ 1238 1238 static void ··· 1284 1284 } 1285 1285 } 1286 1286 1287 - /** 1287 + /* 1288 1288 * login is in progress -- awaiting response from firmware 1289 1289 */ 1290 1290 static void ··· 1326 1326 } 1327 1327 } 1328 1328 1329 - /** 1329 + /* 1330 1330 * login pending - awaiting space in request queue 1331 1331 */ 1332 1332 static void ··· 1358 1358 } 1359 1359 } 1360 1360 1361 - /** 1361 + /* 1362 1362 * login complete 1363 1363 */ 1364 1364 static void ··· 1399 1399 } 1400 1400 } 1401 1401 1402 - /** 1402 + /* 1403 1403 * logout in progress - awaiting firmware response 1404 1404 */ 1405 1405 static void ··· 1423 1423 } 1424 1424 } 1425 1425 1426 - /** 1426 + /* 1427 1427 * logout pending -- awaiting space in request queue 1428 1428 */ 1429 1429 static void ··· 1450 1450 1451 1451 1452 1452 1453 - /** 1453 + /* 1454 1454 * lps_pvt BFA LPS private functions 1455 1455 */ 1456 1456 1457 - /** 1457 + /* 1458 1458 * return memory requirement 1459 1459 */ 1460 1460 static void ··· 1467 1467 *ndm_len += sizeof(struct bfa_lps_s) * BFA_LPS_MAX_LPORTS; 1468 1468 } 1469 1469 1470 - /** 1470 + /* 1471 1471 * bfa module attach at initialization time 1472 1472 */ 1473 1473 static void ··· 1515 1515 { 1516 1516 } 1517 1517 1518 - /** 1518 + /* 1519 1519 * IOC in disabled state -- consider all lps offline 1520 1520 */ 1521 1521 static void ··· 1531 1531 } 1532 1532 } 1533 1533 1534 - /** 1534 + /* 1535 1535 * Firmware login response 1536 1536 */ 1537 1537 static void ··· 1578 1578 bfa_sm_send_event(lps, BFA_LPS_SM_FWRSP); 1579 1579 } 1580 1580 1581 - /** 1581 + /* 1582 1582 * Firmware logout response 1583 1583 */ 1584 1584 static void ··· 1593 1593 bfa_sm_send_event(lps, BFA_LPS_SM_FWRSP); 1594 1594 } 1595 1595 1596 - /** 1596 + /* 1597 1597 * Firmware received a Clear virtual link request (for FCoE) 1598 1598 */ 1599 1599 static void ··· 1607 1607 bfa_sm_send_event(lps, BFA_LPS_SM_RX_CVL); 1608 1608 } 1609 1609 1610 - /** 1610 + /* 1611 1611 * Space is available in request queue, resume queueing request to firmware. 1612 1612 */ 1613 1613 static void ··· 1618 1618 bfa_sm_send_event(lps, BFA_LPS_SM_RESUME); 1619 1619 } 1620 1620 1621 - /** 1621 + /* 1622 1622 * lps is freed -- triggered by vport delete 1623 1623 */ 1624 1624 static void ··· 1631 1631 list_add_tail(&lps->qe, &mod->lps_free_q); 1632 1632 } 1633 1633 1634 - /** 1634 + /* 1635 1635 * send login request to firmware 1636 1636 */ 1637 1637 static void ··· 1656 1656 bfa_reqq_produce(lps->bfa, lps->reqq); 1657 1657 } 1658 1658 1659 - /** 1659 + /* 1660 1660 * send logout request to firmware 1661 1661 */ 1662 1662 static void ··· 1675 1675 bfa_reqq_produce(lps->bfa, lps->reqq); 1676 1676 } 1677 1677 1678 - /** 1678 + /* 1679 1679 * Indirect login completion handler for non-fcs 1680 1680 */ 1681 1681 static void ··· 1692 1692 bfa_cb_lps_flogi_comp(lps->bfa->bfad, lps->uarg, lps->status); 1693 1693 } 1694 1694 1695 - /** 1695 + /* 1696 1696 * Login completion handler -- direct call for fcs, queue for others 1697 1697 */ 1698 1698 static void ··· 1710 1710 bfa_cb_lps_flogi_comp(lps->bfa->bfad, lps->uarg, lps->status); 1711 1711 } 1712 1712 1713 - /** 1713 + /* 1714 1714 * Indirect logout completion handler for non-fcs 1715 1715 */ 1716 1716 static void ··· 1725 1725 bfa_cb_lps_fdisclogo_comp(lps->bfa->bfad, lps->uarg); 1726 1726 } 1727 1727 1728 - /** 1728 + /* 1729 1729 * Logout completion handler -- direct call for fcs, queue for others 1730 1730 */ 1731 1731 static void ··· 1740 1740 bfa_cb_lps_fdisclogo_comp(lps->bfa->bfad, lps->uarg); 1741 1741 } 1742 1742 1743 - /** 1743 + /* 1744 1744 * Clear virtual link completion handler for non-fcs 1745 1745 */ 1746 1746 static void ··· 1756 1756 bfa_cb_lps_cvl_event(lps->bfa->bfad, lps->uarg); 1757 1757 } 1758 1758 1759 - /** 1759 + /* 1760 1760 * Received Clear virtual link event --direct call for fcs, 1761 1761 * queue for others 1762 1762 */ ··· 1776 1776 1777 1777 1778 1778 1779 - /** 1779 + /* 1780 1780 * lps_public BFA LPS public functions 1781 1781 */ 1782 1782 ··· 1789 1789 return BFA_LPS_MAX_VPORTS_SUPP_CB; 1790 1790 } 1791 1791 1792 - /** 1792 + /* 1793 1793 * Allocate a lport srvice tag. 1794 1794 */ 1795 1795 struct bfa_lps_s * ··· 1809 1809 return lps; 1810 1810 } 1811 1811 1812 - /** 1812 + /* 1813 1813 * Free lport service tag. This can be called anytime after an alloc. 1814 1814 * No need to wait for any pending login/logout completions. 1815 1815 */ ··· 1819 1819 bfa_sm_send_event(lps, BFA_LPS_SM_DELETE); 1820 1820 } 1821 1821 1822 - /** 1822 + /* 1823 1823 * Initiate a lport login. 1824 1824 */ 1825 1825 void ··· 1836 1836 bfa_sm_send_event(lps, BFA_LPS_SM_LOGIN); 1837 1837 } 1838 1838 1839 - /** 1839 + /* 1840 1840 * Initiate a lport fdisc login. 1841 1841 */ 1842 1842 void ··· 1853 1853 bfa_sm_send_event(lps, BFA_LPS_SM_LOGIN); 1854 1854 } 1855 1855 1856 - /** 1856 + /* 1857 1857 * Initiate a lport logout (flogi). 1858 1858 */ 1859 1859 void ··· 1862 1862 bfa_sm_send_event(lps, BFA_LPS_SM_LOGOUT); 1863 1863 } 1864 1864 1865 - /** 1865 + /* 1866 1866 * Initiate a lport FDSIC logout. 1867 1867 */ 1868 1868 void ··· 1871 1871 bfa_sm_send_event(lps, BFA_LPS_SM_LOGOUT); 1872 1872 } 1873 1873 1874 - /** 1874 + /* 1875 1875 * Discard a pending login request -- should be called only for 1876 1876 * link down handling. 1877 1877 */ ··· 1881 1881 bfa_sm_send_event(lps, BFA_LPS_SM_OFFLINE); 1882 1882 } 1883 1883 1884 - /** 1884 + /* 1885 1885 * Return lport services tag 1886 1886 */ 1887 1887 u8 ··· 1890 1890 return lps->lp_tag; 1891 1891 } 1892 1892 1893 - /** 1893 + /* 1894 1894 * Return lport services tag given the pid 1895 1895 */ 1896 1896 u8 ··· 1909 1909 return 0; 1910 1910 } 1911 1911 1912 - /** 1912 + /* 1913 1913 * return if fabric login indicates support for NPIV 1914 1914 */ 1915 1915 bfa_boolean_t ··· 1918 1918 return lps->npiv_en; 1919 1919 } 1920 1920 1921 - /** 1921 + /* 1922 1922 * Return TRUE if attached to F-Port, else return FALSE 1923 1923 */ 1924 1924 bfa_boolean_t ··· 1927 1927 return lps->fport; 1928 1928 } 1929 1929 1930 - /** 1930 + /* 1931 1931 * Return TRUE if attached to a Brocade Fabric 1932 1932 */ 1933 1933 bfa_boolean_t ··· 1935 1935 { 1936 1936 return lps->brcd_switch; 1937 1937 } 1938 - /** 1938 + /* 1939 1939 * return TRUE if authentication is required 1940 1940 */ 1941 1941 bfa_boolean_t ··· 1950 1950 return lps->ext_status; 1951 1951 } 1952 1952 1953 - /** 1953 + /* 1954 1954 * return port id assigned to the lport 1955 1955 */ 1956 1956 u32 ··· 1959 1959 return lps->lp_pid; 1960 1960 } 1961 1961 1962 - /** 1962 + /* 1963 1963 * return port id assigned to the base lport 1964 1964 */ 1965 1965 u32 ··· 1970 1970 return BFA_LPS_FROM_TAG(mod, 0)->lp_pid; 1971 1971 } 1972 1972 1973 - /** 1973 + /* 1974 1974 * Return bb_credit assigned in FLOGI response 1975 1975 */ 1976 1976 u16 ··· 1979 1979 return lps->pr_bbcred; 1980 1980 } 1981 1981 1982 - /** 1982 + /* 1983 1983 * Return peer port name 1984 1984 */ 1985 1985 wwn_t ··· 1988 1988 return lps->pr_pwwn; 1989 1989 } 1990 1990 1991 - /** 1991 + /* 1992 1992 * Return peer node name 1993 1993 */ 1994 1994 wwn_t ··· 1997 1997 return lps->pr_nwwn; 1998 1998 } 1999 1999 2000 - /** 2000 + /* 2001 2001 * return reason code if login request is rejected 2002 2002 */ 2003 2003 u8 ··· 2006 2006 return lps->lsrjt_rsn; 2007 2007 } 2008 2008 2009 - /** 2009 + /* 2010 2010 * return explanation code if login request is rejected 2011 2011 */ 2012 2012 u8 ··· 2015 2015 return lps->lsrjt_expl; 2016 2016 } 2017 2017 2018 - /** 2018 + /* 2019 2019 * Return fpma/spma MAC for lport 2020 2020 */ 2021 2021 mac_t ··· 2024 2024 return lps->lp_mac; 2025 2025 } 2026 2026 2027 - /** 2027 + /* 2028 2028 * LPS firmware message class handler. 2029 2029 */ 2030 2030 void ··· 2054 2054 } 2055 2055 } 2056 2056 2057 - /** 2057 + /* 2058 2058 * FC PORT state machine functions 2059 2059 */ 2060 2060 static void ··· 2065 2065 2066 2066 switch (event) { 2067 2067 case BFA_FCPORT_SM_START: 2068 - /** 2068 + /* 2069 2069 * Start event after IOC is configured and BFA is started. 2070 2070 */ 2071 2071 if (bfa_fcport_send_enable(fcport)) { ··· 2079 2079 break; 2080 2080 2081 2081 case BFA_FCPORT_SM_ENABLE: 2082 - /** 2082 + /* 2083 2083 * Port is persistently configured to be in enabled state. Do 2084 2084 * not change state. Port enabling is done when START event is 2085 2085 * received. ··· 2087 2087 break; 2088 2088 2089 2089 case BFA_FCPORT_SM_DISABLE: 2090 - /** 2090 + /* 2091 2091 * If a port is persistently configured to be disabled, the 2092 2092 * first event will a port disable request. 2093 2093 */ ··· 2123 2123 break; 2124 2124 2125 2125 case BFA_FCPORT_SM_ENABLE: 2126 - /** 2126 + /* 2127 2127 * Already enable is in progress. 2128 2128 */ 2129 2129 break; 2130 2130 2131 2131 case BFA_FCPORT_SM_DISABLE: 2132 - /** 2132 + /* 2133 2133 * Just send disable request to firmware when room becomes 2134 2134 * available in request queue. 2135 2135 */ ··· 2144 2144 2145 2145 case BFA_FCPORT_SM_LINKUP: 2146 2146 case BFA_FCPORT_SM_LINKDOWN: 2147 - /** 2147 + /* 2148 2148 * Possible to get link events when doing back-to-back 2149 2149 * enable/disables. 2150 2150 */ ··· 2183 2183 break; 2184 2184 2185 2185 case BFA_FCPORT_SM_ENABLE: 2186 - /** 2186 + /* 2187 2187 * Already being enabled. 2188 2188 */ 2189 2189 break; ··· 2256 2256 break; 2257 2257 2258 2258 case BFA_FCPORT_SM_LINKDOWN: 2259 - /** 2259 + /* 2260 2260 * Possible to get link down event. 2261 2261 */ 2262 2262 break; 2263 2263 2264 2264 case BFA_FCPORT_SM_ENABLE: 2265 - /** 2265 + /* 2266 2266 * Already enabled. 2267 2267 */ 2268 2268 break; ··· 2305 2305 2306 2306 switch (event) { 2307 2307 case BFA_FCPORT_SM_ENABLE: 2308 - /** 2308 + /* 2309 2309 * Already enabled. 2310 2310 */ 2311 2311 break; ··· 2398 2398 break; 2399 2399 2400 2400 case BFA_FCPORT_SM_DISABLE: 2401 - /** 2401 + /* 2402 2402 * Already being disabled. 2403 2403 */ 2404 2404 break; 2405 2405 2406 2406 case BFA_FCPORT_SM_LINKUP: 2407 2407 case BFA_FCPORT_SM_LINKDOWN: 2408 - /** 2408 + /* 2409 2409 * Possible to get link events when doing back-to-back 2410 2410 * enable/disables. 2411 2411 */ ··· 2452 2452 2453 2453 case BFA_FCPORT_SM_LINKUP: 2454 2454 case BFA_FCPORT_SM_LINKDOWN: 2455 - /** 2455 + /* 2456 2456 * Possible to get link events when doing back-to-back 2457 2457 * enable/disables. 2458 2458 */ ··· 2482 2482 break; 2483 2483 2484 2484 case BFA_FCPORT_SM_DISABLE: 2485 - /** 2485 + /* 2486 2486 * Already being disabled. 2487 2487 */ 2488 2488 break; ··· 2507 2507 2508 2508 case BFA_FCPORT_SM_LINKUP: 2509 2509 case BFA_FCPORT_SM_LINKDOWN: 2510 - /** 2510 + /* 2511 2511 * Possible to get link events when doing back-to-back 2512 2512 * enable/disables. 2513 2513 */ ··· 2532 2532 2533 2533 switch (event) { 2534 2534 case BFA_FCPORT_SM_START: 2535 - /** 2535 + /* 2536 2536 * Ignore start event for a port that is disabled. 2537 2537 */ 2538 2538 break; ··· 2556 2556 break; 2557 2557 2558 2558 case BFA_FCPORT_SM_DISABLE: 2559 - /** 2559 + /* 2560 2560 * Already disabled. 2561 2561 */ 2562 2562 break; ··· 2586 2586 break; 2587 2587 2588 2588 default: 2589 - /** 2589 + /* 2590 2590 * Ignore all other events. 2591 2591 */ 2592 2592 ; 2593 2593 } 2594 2594 } 2595 2595 2596 - /** 2596 + /* 2597 2597 * Port is enabled. IOC is down/failed. 2598 2598 */ 2599 2599 static void ··· 2612 2612 break; 2613 2613 2614 2614 default: 2615 - /** 2615 + /* 2616 2616 * Ignore all events. 2617 2617 */ 2618 2618 ; 2619 2619 } 2620 2620 } 2621 2621 2622 - /** 2622 + /* 2623 2623 * Port is disabled. IOC is down/failed. 2624 2624 */ 2625 2625 static void ··· 2638 2638 break; 2639 2639 2640 2640 default: 2641 - /** 2641 + /* 2642 2642 * Ignore all events. 2643 2643 */ 2644 2644 ; 2645 2645 } 2646 2646 } 2647 2647 2648 - /** 2648 + /* 2649 2649 * Link state is down 2650 2650 */ 2651 2651 static void ··· 2665 2665 } 2666 2666 } 2667 2667 2668 - /** 2668 + /* 2669 2669 * Link state is waiting for down notification 2670 2670 */ 2671 2671 static void ··· 2688 2688 } 2689 2689 } 2690 2690 2691 - /** 2691 + /* 2692 2692 * Link state is waiting for down notification and there is a pending up 2693 2693 */ 2694 2694 static void ··· 2712 2712 } 2713 2713 } 2714 2714 2715 - /** 2715 + /* 2716 2716 * Link state is up 2717 2717 */ 2718 2718 static void ··· 2732 2732 } 2733 2733 } 2734 2734 2735 - /** 2735 + /* 2736 2736 * Link state is waiting for up notification 2737 2737 */ 2738 2738 static void ··· 2755 2755 } 2756 2756 } 2757 2757 2758 - /** 2758 + /* 2759 2759 * Link state is waiting for up notification and there is a pending down 2760 2760 */ 2761 2761 static void ··· 2779 2779 } 2780 2780 } 2781 2781 2782 - /** 2782 + /* 2783 2783 * Link state is waiting for up notification and there are pending down and up 2784 2784 */ 2785 2785 static void ··· 2805 2805 2806 2806 2807 2807 2808 - /** 2808 + /* 2809 2809 * hal_port_private 2810 2810 */ 2811 2811 ··· 2820 2820 bfa_sm_send_event(ln, BFA_FCPORT_LN_SM_NOTIFICATION); 2821 2821 } 2822 2822 2823 - /** 2823 + /* 2824 2824 * Send SCN notification to upper layers. 2825 2825 * trunk - false if caller is fcport to ignore fcport event in trunked mode 2826 2826 */ ··· 2896 2896 bfa_meminfo_dma_phys(meminfo) = dm_pa; 2897 2897 } 2898 2898 2899 - /** 2899 + /* 2900 2900 * Memory initialization. 2901 2901 */ 2902 2902 static void ··· 2917 2917 bfa_sm_set_state(fcport, bfa_fcport_sm_uninit); 2918 2918 bfa_sm_set_state(ln, bfa_fcport_ln_sm_dn); 2919 2919 2920 - /** 2920 + /* 2921 2921 * initialize time stamp for stats reset 2922 2922 */ 2923 2923 bfa_os_gettimeofday(&tv); 2924 2924 fcport->stats_reset_time = tv.tv_sec; 2925 2925 2926 - /** 2926 + /* 2927 2927 * initialize and set default configuration 2928 2928 */ 2929 2929 port_cfg->topology = BFA_PORT_TOPOLOGY_P2P; ··· 2941 2941 { 2942 2942 } 2943 2943 2944 - /** 2944 + /* 2945 2945 * Called when IOC is ready. 2946 2946 */ 2947 2947 static void ··· 2950 2950 bfa_sm_send_event(BFA_FCPORT_MOD(bfa), BFA_FCPORT_SM_START); 2951 2951 } 2952 2952 2953 - /** 2953 + /* 2954 2954 * Called before IOC is stopped. 2955 2955 */ 2956 2956 static void ··· 2960 2960 bfa_trunk_iocdisable(bfa); 2961 2961 } 2962 2962 2963 - /** 2963 + /* 2964 2964 * Called when IOC failure is detected. 2965 2965 */ 2966 2966 static void ··· 2988 2988 fcport->qos_attr = pevent->link_state.qos_attr; 2989 2989 fcport->qos_vc_attr = pevent->link_state.vc_fcf.qos_vc_attr; 2990 2990 2991 - /** 2991 + /* 2992 2992 * update trunk state if applicable 2993 2993 */ 2994 2994 if (!fcport->cfg.trunked) ··· 3008 3008 fcport->topology = BFA_PORT_TOPOLOGY_NONE; 3009 3009 } 3010 3010 3011 - /** 3011 + /* 3012 3012 * Send port enable message to firmware. 3013 3013 */ 3014 3014 static bfa_boolean_t ··· 3016 3016 { 3017 3017 struct bfi_fcport_enable_req_s *m; 3018 3018 3019 - /** 3019 + /* 3020 3020 * Increment message tag before queue check, so that responses to old 3021 3021 * requests are discarded. 3022 3022 */ 3023 3023 fcport->msgtag++; 3024 3024 3025 - /** 3025 + /* 3026 3026 * check for room in queue to send request now 3027 3027 */ 3028 3028 m = bfa_reqq_next(fcport->bfa, BFA_REQQ_PORT); ··· 3043 3043 bfa_trc(fcport->bfa, m->stats_dma_addr.a32.addr_lo); 3044 3044 bfa_trc(fcport->bfa, m->stats_dma_addr.a32.addr_hi); 3045 3045 3046 - /** 3046 + /* 3047 3047 * queue I/O message to firmware 3048 3048 */ 3049 3049 bfa_reqq_produce(fcport->bfa, BFA_REQQ_PORT); 3050 3050 return BFA_TRUE; 3051 3051 } 3052 3052 3053 - /** 3053 + /* 3054 3054 * Send port disable message to firmware. 3055 3055 */ 3056 3056 static bfa_boolean_t ··· 3058 3058 { 3059 3059 struct bfi_fcport_req_s *m; 3060 3060 3061 - /** 3061 + /* 3062 3062 * Increment message tag before queue check, so that responses to old 3063 3063 * requests are discarded. 3064 3064 */ 3065 3065 fcport->msgtag++; 3066 3066 3067 - /** 3067 + /* 3068 3068 * check for room in queue to send request now 3069 3069 */ 3070 3070 m = bfa_reqq_next(fcport->bfa, BFA_REQQ_PORT); ··· 3078 3078 bfa_lpuid(fcport->bfa)); 3079 3079 m->msgtag = fcport->msgtag; 3080 3080 3081 - /** 3081 + /* 3082 3082 * queue I/O message to firmware 3083 3083 */ 3084 3084 bfa_reqq_produce(fcport->bfa, BFA_REQQ_PORT); ··· 3103 3103 struct bfa_fcport_s *fcport = port_cbarg; 3104 3104 struct bfi_fcport_set_svc_params_req_s *m; 3105 3105 3106 - /** 3106 + /* 3107 3107 * check for room in queue to send request now 3108 3108 */ 3109 3109 m = bfa_reqq_next(fcport->bfa, BFA_REQQ_PORT); ··· 3116 3116 bfa_lpuid(fcport->bfa)); 3117 3117 m->tx_bbcredit = cpu_to_be16((u16)fcport->cfg.tx_bbcredit); 3118 3118 3119 - /** 3119 + /* 3120 3120 * queue I/O message to firmware 3121 3121 */ 3122 3122 bfa_reqq_produce(fcport->bfa, BFA_REQQ_PORT); ··· 3235 3235 if (complete) { 3236 3236 struct bfa_timeval_s tv; 3237 3237 3238 - /** 3238 + /* 3239 3239 * re-initialize time stamp for stats reset 3240 3240 */ 3241 3241 bfa_os_gettimeofday(&tv); ··· 3289 3289 bfa_reqq_produce(fcport->bfa, BFA_REQQ_PORT); 3290 3290 } 3291 3291 3292 - /** 3292 + /* 3293 3293 * Handle trunk SCN event from firmware. 3294 3294 */ 3295 3295 static void ··· 3310 3310 bfa_trc(fcport->bfa, scn->trunk_state); 3311 3311 bfa_trc(fcport->bfa, scn->trunk_speed); 3312 3312 3313 - /** 3313 + /* 3314 3314 * Save off new state for trunk attribute query 3315 3315 */ 3316 3316 state_prev = trunk->attr.state; ··· 3358 3358 BFA_PL_EID_TRUNK_SCN, 0, "Trunk down"); 3359 3359 } 3360 3360 3361 - /** 3361 + /* 3362 3362 * Notify upper layers if trunk state changed. 3363 3363 */ 3364 3364 if ((state_prev != trunk->attr.state) || ··· 3374 3374 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); 3375 3375 int i = 0; 3376 3376 3377 - /** 3377 + /* 3378 3378 * In trunked mode, notify upper layers that link is down 3379 3379 */ 3380 3380 if (fcport->cfg.trunked) { ··· 3398 3398 3399 3399 3400 3400 3401 - /** 3401 + /* 3402 3402 * hal_port_public 3403 3403 */ 3404 3404 3405 - /** 3405 + /* 3406 3406 * Called to initialize port attributes 3407 3407 */ 3408 3408 void ··· 3410 3410 { 3411 3411 struct bfa_fcport_s *fcport = BFA_FCPORT_MOD(bfa); 3412 3412 3413 - /** 3413 + /* 3414 3414 * Initialize port attributes from IOC hardware data. 3415 3415 */ 3416 3416 bfa_fcport_set_wwns(fcport); ··· 3424 3424 bfa_assert(fcport->speed_sup); 3425 3425 } 3426 3426 3427 - /** 3427 + /* 3428 3428 * Firmware message handler. 3429 3429 */ 3430 3430 void ··· 3505 3505 3506 3506 3507 3507 3508 - /** 3508 + /* 3509 3509 * hal_port_api 3510 3510 */ 3511 3511 3512 - /** 3512 + /* 3513 3513 * Registered callback for port events. 3514 3514 */ 3515 3515 void ··· 3550 3550 return BFA_STATUS_OK; 3551 3551 } 3552 3552 3553 - /** 3553 + /* 3554 3554 * Configure port speed. 3555 3555 */ 3556 3556 bfa_status_t ··· 3572 3572 return BFA_STATUS_OK; 3573 3573 } 3574 3574 3575 - /** 3575 + /* 3576 3576 * Get current speed. 3577 3577 */ 3578 3578 enum bfa_port_speed ··· 3583 3583 return fcport->speed; 3584 3584 } 3585 3585 3586 - /** 3586 + /* 3587 3587 * Configure port topology. 3588 3588 */ 3589 3589 bfa_status_t ··· 3608 3608 return BFA_STATUS_OK; 3609 3609 } 3610 3610 3611 - /** 3611 + /* 3612 3612 * Get current topology. 3613 3613 */ 3614 3614 enum bfa_port_topology ··· 3708 3708 bfa_fcport_send_txcredit(fcport); 3709 3709 } 3710 3710 3711 - /** 3711 + /* 3712 3712 * Get port attributes. 3713 3713 */ 3714 3714 ··· 3768 3768 3769 3769 #define BFA_FCPORT_STATS_TOV 1000 3770 3770 3771 - /** 3771 + /* 3772 3772 * Fetch port statistics (FCQoS or FCoE). 3773 3773 */ 3774 3774 bfa_status_t ··· 3794 3794 return BFA_STATUS_OK; 3795 3795 } 3796 3796 3797 - /** 3797 + /* 3798 3798 * Reset port statistics (FCQoS or FCoE). 3799 3799 */ 3800 3800 bfa_status_t ··· 3818 3818 return BFA_STATUS_OK; 3819 3819 } 3820 3820 3821 - /** 3821 + /* 3822 3822 * Fetch FCQoS port statistics 3823 3823 */ 3824 3824 bfa_status_t ··· 3831 3831 return bfa_fcport_get_stats(bfa, stats, cbfn, cbarg); 3832 3832 } 3833 3833 3834 - /** 3834 + /* 3835 3835 * Reset FCoE port statistics 3836 3836 */ 3837 3837 bfa_status_t ··· 3843 3843 return bfa_fcport_clear_stats(bfa, cbfn, cbarg); 3844 3844 } 3845 3845 3846 - /** 3846 + /* 3847 3847 * Fetch FCQoS port statistics 3848 3848 */ 3849 3849 bfa_status_t ··· 3856 3856 return bfa_fcport_get_stats(bfa, stats, cbfn, cbarg); 3857 3857 } 3858 3858 3859 - /** 3859 + /* 3860 3860 * Reset FCoE port statistics 3861 3861 */ 3862 3862 bfa_status_t ··· 3902 3902 } 3903 3903 } 3904 3904 3905 - /** 3905 + /* 3906 3906 * Fetch port attributes. 3907 3907 */ 3908 3908 bfa_boolean_t ··· 3937 3937 3938 3938 if (ioc_type == BFA_IOC_TYPE_FC) { 3939 3939 fcport->cfg.qos_enabled = on_off; 3940 - /** 3940 + /* 3941 3941 * Notify fcpim of the change in QoS state 3942 3942 */ 3943 3943 bfa_fcpim_update_ioredirect(bfa); ··· 3957 3957 fcport->cfg.trl_def_speed = BFA_PORT_SPEED_1GBPS; 3958 3958 } 3959 3959 3960 - /** 3960 + /* 3961 3961 * Configure default minimum ratelim speed 3962 3962 */ 3963 3963 bfa_status_t ··· 3978 3978 return BFA_STATUS_OK; 3979 3979 } 3980 3980 3981 - /** 3981 + /* 3982 3982 * Get default minimum ratelim speed 3983 3983 */ 3984 3984 enum bfa_port_speed ··· 4093 4093 } 4094 4094 4095 4095 4096 - /** 4096 + /* 4097 4097 * Rport State machine functions 4098 4098 */ 4099 - /** 4099 + /* 4100 4100 * Beginning state, only online event expected. 4101 4101 */ 4102 4102 static void ··· 4149 4149 } 4150 4150 } 4151 4151 4152 - /** 4152 + /* 4153 4153 * Waiting for rport create response from firmware. 4154 4154 */ 4155 4155 static void ··· 4186 4186 } 4187 4187 } 4188 4188 4189 - /** 4189 + /* 4190 4190 * Request queue is full, awaiting queue resume to send create request. 4191 4191 */ 4192 4192 static void ··· 4227 4227 } 4228 4228 } 4229 4229 4230 - /** 4230 + /* 4231 4231 * Online state - normal parking state. 4232 4232 */ 4233 4233 static void ··· 4295 4295 } 4296 4296 } 4297 4297 4298 - /** 4298 + /* 4299 4299 * Firmware rport is being deleted - awaiting f/w response. 4300 4300 */ 4301 4301 static void ··· 4358 4358 } 4359 4359 } 4360 4360 4361 - /** 4361 + /* 4362 4362 * Offline state. 4363 4363 */ 4364 4364 static void ··· 4393 4393 } 4394 4394 } 4395 4395 4396 - /** 4396 + /* 4397 4397 * Rport is deleted, waiting for firmware response to delete. 4398 4398 */ 4399 4399 static void ··· 4445 4445 } 4446 4446 } 4447 4447 4448 - /** 4448 + /* 4449 4449 * Waiting for rport create response from firmware. A delete is pending. 4450 4450 */ 4451 4451 static void ··· 4476 4476 } 4477 4477 } 4478 4478 4479 - /** 4479 + /* 4480 4480 * Waiting for rport create response from firmware. Rport offline is pending. 4481 4481 */ 4482 4482 static void ··· 4511 4511 } 4512 4512 } 4513 4513 4514 - /** 4514 + /* 4515 4515 * IOC h/w failed. 4516 4516 */ 4517 4517 static void ··· 4551 4551 4552 4552 4553 4553 4554 - /** 4554 + /* 4555 4555 * bfa_rport_private BFA rport private functions 4556 4556 */ 4557 4557 ··· 4615 4615 rp->rport_tag = i; 4616 4616 bfa_sm_set_state(rp, bfa_rport_sm_uninit); 4617 4617 4618 - /** 4618 + /* 4619 4619 * - is unused 4620 4620 */ 4621 4621 if (i) ··· 4624 4624 bfa_reqq_winit(&rp->reqq_wait, bfa_rport_qresume, rp); 4625 4625 } 4626 4626 4627 - /** 4627 + /* 4628 4628 * consume memory 4629 4629 */ 4630 4630 bfa_meminfo_kva(meminfo) = (u8 *) rp; ··· 4685 4685 { 4686 4686 struct bfi_rport_create_req_s *m; 4687 4687 4688 - /** 4688 + /* 4689 4689 * check for room in queue to send request now 4690 4690 */ 4691 4691 m = bfa_reqq_next(rp->bfa, BFA_REQQ_RPORT); ··· 4706 4706 m->vf_id = rp->rport_info.vf_id; 4707 4707 m->cisc = rp->rport_info.cisc; 4708 4708 4709 - /** 4709 + /* 4710 4710 * queue I/O message to firmware 4711 4711 */ 4712 4712 bfa_reqq_produce(rp->bfa, BFA_REQQ_RPORT); ··· 4718 4718 { 4719 4719 struct bfi_rport_delete_req_s *m; 4720 4720 4721 - /** 4721 + /* 4722 4722 * check for room in queue to send request now 4723 4723 */ 4724 4724 m = bfa_reqq_next(rp->bfa, BFA_REQQ_RPORT); ··· 4731 4731 bfa_lpuid(rp->bfa)); 4732 4732 m->fw_handle = rp->fw_handle; 4733 4733 4734 - /** 4734 + /* 4735 4735 * queue I/O message to firmware 4736 4736 */ 4737 4737 bfa_reqq_produce(rp->bfa, BFA_REQQ_RPORT); ··· 4743 4743 { 4744 4744 struct bfa_rport_speed_req_s *m; 4745 4745 4746 - /** 4746 + /* 4747 4747 * check for room in queue to send request now 4748 4748 */ 4749 4749 m = bfa_reqq_next(rp->bfa, BFA_REQQ_RPORT); ··· 4757 4757 m->fw_handle = rp->fw_handle; 4758 4758 m->speed = (u8)rp->rport_info.speed; 4759 4759 4760 - /** 4760 + /* 4761 4761 * queue I/O message to firmware 4762 4762 */ 4763 4763 bfa_reqq_produce(rp->bfa, BFA_REQQ_RPORT); ··· 4766 4766 4767 4767 4768 4768 4769 - /** 4769 + /* 4770 4770 * bfa_rport_public 4771 4771 */ 4772 4772 4773 - /** 4773 + /* 4774 4774 * Rport interrupt processing. 4775 4775 */ 4776 4776 void ··· 4812 4812 4813 4813 4814 4814 4815 - /** 4815 + /* 4816 4816 * bfa_rport_api 4817 4817 */ 4818 4818 ··· 4847 4847 { 4848 4848 bfa_assert(rport_info->max_frmsz != 0); 4849 4849 4850 - /** 4850 + /* 4851 4851 * Some JBODs are seen to be not setting PDU size correctly in PLOGI 4852 4852 * responses. Default to minimum size. 4853 4853 */ ··· 4899 4899 } 4900 4900 4901 4901 4902 - /** 4902 + /* 4903 4903 * SGPG related functions 4904 4904 */ 4905 4905 4906 - /** 4906 + /* 4907 4907 * Compute and return memory needed by FCP(im) module. 4908 4908 */ 4909 4909 static void ··· 4995 4995 4996 4996 4997 4997 4998 - /** 4998 + /* 4999 4999 * hal_sgpg_public BFA SGPG public functions 5000 5000 */ 5001 5001 ··· 5037 5037 if (list_empty(&mod->sgpg_wait_q)) 5038 5038 return; 5039 5039 5040 - /** 5040 + /* 5041 5041 * satisfy as many waiting requests as possible 5042 5042 */ 5043 5043 do { ··· 5065 5065 5066 5066 wqe->nsgpg_total = wqe->nsgpg = nsgpg; 5067 5067 5068 - /** 5068 + /* 5069 5069 * allocate any left to this one first 5070 5070 */ 5071 5071 if (mod->free_sgpgs) { 5072 - /** 5072 + /* 5073 5073 * no one else is waiting for SGPG 5074 5074 */ 5075 5075 bfa_assert(list_empty(&mod->sgpg_wait_q)); ··· 5103 5103 wqe->cbarg = cbarg; 5104 5104 } 5105 5105 5106 - /** 5106 + /* 5107 5107 * UF related functions 5108 5108 */ 5109 5109 /* ··· 5171 5171 bfa_sge_to_be(&sge[1]); 5172 5172 } 5173 5173 5174 - /** 5174 + /* 5175 5175 * advance pointer beyond consumed memory 5176 5176 */ 5177 5177 bfa_meminfo_kva(mi) = (u8 *) uf_bp_msg; ··· 5201 5201 list_add_tail(&uf->qe, &ufm->uf_free_q); 5202 5202 } 5203 5203 5204 - /** 5204 + /* 5205 5205 * advance memory pointer 5206 5206 */ 5207 5207 bfa_meminfo_kva(mi) = (u8 *) uf; ··· 5363 5363 5364 5364 5365 5365 5366 - /** 5366 + /* 5367 5367 * hal_uf_api 5368 5368 */ 5369 5369 5370 - /** 5370 + /* 5371 5371 * Register handler for all unsolicted recieve frames. 5372 5372 * 5373 5373 * @param[in] bfa BFA instance ··· 5383 5383 ufm->cbarg = cbarg; 5384 5384 } 5385 5385 5386 - /** 5386 + /* 5387 5387 * Free an unsolicited frame back to BFA. 5388 5388 * 5389 5389 * @param[in] uf unsolicited frame to be freed ··· 5399 5399 5400 5400 5401 5401 5402 - /** 5402 + /* 5403 5403 * uf_pub BFA uf module public functions 5404 5404 */ 5405 5405 void
+16 -16
drivers/scsi/bfa/bfad.c
··· 15 15 * General Public License for more details. 16 16 */ 17 17 18 - /** 18 + /* 19 19 * bfad.c Linux driver PCI interface module. 20 20 */ 21 21 #include <linux/module.h> ··· 151 151 static void 152 152 bfad_sm_fcs_exit(struct bfad_s *bfad, enum bfad_sm_event event); 153 153 154 - /** 154 + /* 155 155 * Beginning state for the driver instance, awaiting the pci_probe event 156 156 */ 157 157 static void ··· 181 181 } 182 182 } 183 183 184 - /** 184 + /* 185 185 * Driver Instance is created, awaiting event INIT to initialize the bfad 186 186 */ 187 187 static void ··· 364 364 } 365 365 } 366 366 367 - /** 367 + /* 368 368 * BFA callbacks 369 369 */ 370 370 void ··· 376 376 complete(&fcomp->comp); 377 377 } 378 378 379 - /** 379 + /* 380 380 * bfa_init callback 381 381 */ 382 382 void ··· 401 401 complete(&bfad->comp); 402 402 } 403 403 404 - /** 404 + /* 405 405 * BFA_FCS callbacks 406 406 */ 407 407 struct bfad_port_s * ··· 457 457 } 458 458 } 459 459 460 - /** 460 + /* 461 461 * FCS RPORT alloc callback, after successful PLOGI by FCS 462 462 */ 463 463 bfa_status_t ··· 478 478 return rc; 479 479 } 480 480 481 - /** 481 + /* 482 482 * FCS PBC VPORT Create 483 483 */ 484 484 void ··· 663 663 return rc; 664 664 } 665 665 666 - /** 666 + /* 667 667 * Create a vport under a vf. 668 668 */ 669 669 bfa_status_t ··· 1140 1140 return 0; 1141 1141 } 1142 1142 1143 - /** 1143 + /* 1144 1144 * BFA driver interrupt functions 1145 1145 */ 1146 1146 irqreturn_t ··· 1199 1199 return IRQ_HANDLED; 1200 1200 } 1201 1201 1202 - /** 1202 + /* 1203 1203 * Initialize the MSIX entry table. 1204 1204 */ 1205 1205 static void ··· 1252 1252 return 0; 1253 1253 } 1254 1254 1255 - /** 1255 + /* 1256 1256 * Setup MSIX based interrupt. 1257 1257 */ 1258 1258 int ··· 1333 1333 } 1334 1334 } 1335 1335 1336 - /** 1336 + /* 1337 1337 * PCI probe entry. 1338 1338 */ 1339 1339 int ··· 1419 1419 return error; 1420 1420 } 1421 1421 1422 - /** 1422 + /* 1423 1423 * PCI remove entry. 1424 1424 */ 1425 1425 void ··· 1500 1500 .remove = __devexit_p(bfad_pci_remove), 1501 1501 }; 1502 1502 1503 - /** 1503 + /* 1504 1504 * Driver module init. 1505 1505 */ 1506 1506 static int __init ··· 1540 1540 return error; 1541 1541 } 1542 1542 1543 - /** 1543 + /* 1544 1544 * Driver module exit. 1545 1545 */ 1546 1546 static void __exit
+15 -15
drivers/scsi/bfa/bfad_attr.c
··· 15 15 * General Public License for more details. 16 16 */ 17 17 18 - /** 18 + /* 19 19 * bfa_attr.c Linux driver configuration interface module. 20 20 */ 21 21 22 22 #include "bfad_drv.h" 23 23 #include "bfad_im.h" 24 24 25 - /** 25 + /* 26 26 * FC transport template entry, get SCSI target port ID. 27 27 */ 28 28 void ··· 48 48 spin_unlock_irqrestore(&bfad->bfad_lock, flags); 49 49 } 50 50 51 - /** 51 + /* 52 52 * FC transport template entry, get SCSI target nwwn. 53 53 */ 54 54 void ··· 74 74 spin_unlock_irqrestore(&bfad->bfad_lock, flags); 75 75 } 76 76 77 - /** 77 + /* 78 78 * FC transport template entry, get SCSI target pwwn. 79 79 */ 80 80 void ··· 100 100 spin_unlock_irqrestore(&bfad->bfad_lock, flags); 101 101 } 102 102 103 - /** 103 + /* 104 104 * FC transport template entry, get SCSI host port ID. 105 105 */ 106 106 void ··· 114 114 bfa_os_hton3b(bfa_fcs_lport_get_fcid(port->fcs_port)); 115 115 } 116 116 117 - /** 117 + /* 118 118 * FC transport template entry, get SCSI host port type. 119 119 */ 120 120 static void ··· 146 146 } 147 147 } 148 148 149 - /** 149 + /* 150 150 * FC transport template entry, get SCSI host port state. 151 151 */ 152 152 static void ··· 183 183 } 184 184 } 185 185 186 - /** 186 + /* 187 187 * FC transport template entry, get SCSI host active fc4s. 188 188 */ 189 189 static void ··· 202 202 fc_host_active_fc4s(shost)[7] = 1; 203 203 } 204 204 205 - /** 205 + /* 206 206 * FC transport template entry, get SCSI host link speed. 207 207 */ 208 208 static void ··· 236 236 } 237 237 } 238 238 239 - /** 239 + /* 240 240 * FC transport template entry, get SCSI host port type. 241 241 */ 242 242 static void ··· 253 253 254 254 } 255 255 256 - /** 256 + /* 257 257 * FC transport template entry, get BFAD statistics. 258 258 */ 259 259 static struct fc_host_statistics * ··· 304 304 return hstats; 305 305 } 306 306 307 - /** 307 + /* 308 308 * FC transport template entry, reset BFAD statistics. 309 309 */ 310 310 static void ··· 331 331 return; 332 332 } 333 333 334 - /** 334 + /* 335 335 * FC transport template entry, get rport loss timeout. 336 336 */ 337 337 static void ··· 347 347 spin_unlock_irqrestore(&bfad->bfad_lock, flags); 348 348 } 349 349 350 - /** 350 + /* 351 351 * FC transport template entry, set rport loss timeout. 352 352 */ 353 353 static void ··· 633 633 .set_rport_dev_loss_tmo = bfad_im_set_rport_loss_tmo, 634 634 }; 635 635 636 - /** 636 + /* 637 637 * Scsi_Host_attrs SCSI host attributes 638 638 */ 639 639 static ssize_t
+19 -19
drivers/scsi/bfa/bfad_im.c
··· 15 15 * General Public License for more details. 16 16 */ 17 17 18 - /** 18 + /* 19 19 * bfad_im.c Linux driver IM module. 20 20 */ 21 21 ··· 164 164 wake_up(wq); 165 165 } 166 166 167 - /** 167 + /* 168 168 * Scsi_Host_template SCSI host template 169 169 */ 170 - /** 170 + /* 171 171 * Scsi_Host template entry, returns BFAD PCI info. 172 172 */ 173 173 static const char * ··· 196 196 return bfa_buf; 197 197 } 198 198 199 - /** 199 + /* 200 200 * Scsi_Host template entry, aborts the specified SCSI command. 201 201 * 202 202 * Returns: SUCCESS or FAILED. ··· 280 280 return rc; 281 281 } 282 282 283 - /** 283 + /* 284 284 * Scsi_Host template entry, resets a LUN and abort its all commands. 285 285 * 286 286 * Returns: SUCCESS or FAILED. ··· 319 319 goto out; 320 320 } 321 321 322 - /** 322 + /* 323 323 * Set host_scribble to NULL to avoid aborting a task command 324 324 * if happens. 325 325 */ ··· 346 346 return rc; 347 347 } 348 348 349 - /** 349 + /* 350 350 * Scsi_Host template entry, resets the bus and abort all commands. 351 351 */ 352 352 static int ··· 396 396 return SUCCESS; 397 397 } 398 398 399 - /** 399 + /* 400 400 * Scsi_Host template entry slave_destroy. 401 401 */ 402 402 static void ··· 406 406 return; 407 407 } 408 408 409 - /** 409 + /* 410 410 * BFA FCS itnim callbacks 411 411 */ 412 412 413 - /** 413 + /* 414 414 * BFA FCS itnim alloc callback, after successful PRLI 415 415 * Context: Interrupt 416 416 */ ··· 433 433 bfad->bfad_flags |= BFAD_RPORT_ONLINE; 434 434 } 435 435 436 - /** 436 + /* 437 437 * BFA FCS itnim free callback. 438 438 * Context: Interrupt. bfad_lock is held 439 439 */ ··· 471 471 queue_work(im->drv_workq, &itnim_drv->itnim_work); 472 472 } 473 473 474 - /** 474 + /* 475 475 * BFA FCS itnim online callback. 476 476 * Context: Interrupt. bfad_lock is held 477 477 */ ··· 492 492 queue_work(im->drv_workq, &itnim_drv->itnim_work); 493 493 } 494 494 495 - /** 495 + /* 496 496 * BFA FCS itnim offline callback. 497 497 * Context: Interrupt. bfad_lock is held 498 498 */ ··· 519 519 queue_work(im->drv_workq, &itnim_drv->itnim_work); 520 520 } 521 521 522 - /** 522 + /* 523 523 * Allocate a Scsi_Host for a port. 524 524 */ 525 525 int ··· 751 751 return BFA_STATUS_OK; 752 752 } 753 753 754 - /** 754 + /* 755 755 * Scsi_Host template entry. 756 756 * 757 757 * Description: ··· 896 896 return NULL; 897 897 } 898 898 899 - /** 899 + /* 900 900 * Scsi_Host template entry slave_alloc 901 901 */ 902 902 static int ··· 973 973 sprintf(fc_host_symbolic_name(host), "%s", symname); 974 974 975 975 fc_host_supported_speeds(host) = bfad_im_supported_speeds(&bfad->bfa); 976 - fc_host_maxframe_size(host) = fcport->cfg.maxfrsize; 976 + fc_host_maxframe_size(host) = fcport->cfg.maxfrsize; 977 977 } 978 978 979 979 static void ··· 1016 1016 return; 1017 1017 } 1018 1018 1019 - /** 1019 + /* 1020 1020 * Work queue handler using FC transport service 1021 1021 * Context: kernel 1022 1022 */ ··· 1116 1116 spin_unlock_irqrestore(&bfad->bfad_lock, flags); 1117 1117 } 1118 1118 1119 - /** 1119 + /* 1120 1120 * Scsi_Host template entry, queue a SCSI command to the BFAD. 1121 1121 */ 1122 1122 static int