Lines Matching full:dport
2641 * Ignore event for a port that is dport in bfa_fcport_sm_dport()
5547 * Dport forward declaration
5551 BFA_DPORT_ST_DISABLED = 0, /*!< dport is disabled */
5555 BFA_DPORT_ST_NOTSTART = 4, /*!< test not start dport is enabled */
5558 static void bfa_dport_sm_disabled(struct bfa_dport_s *dport,
5560 static void bfa_dport_sm_enabling_qwait(struct bfa_dport_s *dport,
5562 static void bfa_dport_sm_enabling(struct bfa_dport_s *dport,
5564 static void bfa_dport_sm_enabled(struct bfa_dport_s *dport,
5566 static void bfa_dport_sm_disabling_qwait(struct bfa_dport_s *dport,
5568 static void bfa_dport_sm_disabling(struct bfa_dport_s *dport,
5570 static void bfa_dport_sm_starting_qwait(struct bfa_dport_s *dport,
5572 static void bfa_dport_sm_starting(struct bfa_dport_s *dport,
5574 static void bfa_dport_sm_dynamic_disabling(struct bfa_dport_s *dport,
5576 static void bfa_dport_sm_dynamic_disabling_qwait(struct bfa_dport_s *dport,
5579 static void bfa_dport_req_comp(struct bfa_dport_s *dport,
5581 static void bfa_dport_scn(struct bfa_dport_s *dport,
5608 struct bfa_dport_s *dport = &fcdiag->dport; in bfa_fcdiag_attach() local
5613 dport->bfa = bfa; in bfa_fcdiag_attach()
5614 bfa_sm_set_state(dport, bfa_dport_sm_disabled); in bfa_fcdiag_attach()
5615 bfa_reqq_winit(&dport->reqq_wait, bfa_dport_qresume, dport); in bfa_fcdiag_attach()
5616 dport->cbfn = NULL; in bfa_fcdiag_attach()
5617 dport->cbarg = NULL; in bfa_fcdiag_attach()
5618 dport->test_state = BFA_DPORT_ST_DISABLED; in bfa_fcdiag_attach()
5619 memset(&dport->result, 0, sizeof(struct bfa_diag_dport_result_s)); in bfa_fcdiag_attach()
5626 struct bfa_dport_s *dport = &fcdiag->dport; in bfa_fcdiag_iocdisable() local
5636 bfa_sm_send_event(dport, BFA_DPORT_SM_HWFAIL); in bfa_fcdiag_iocdisable()
5807 bfa_dport_req_comp(&fcdiag->dport, in bfa_fcdiag_intr()
5811 bfa_dport_scn(&fcdiag->dport, in bfa_fcdiag_intr()
5907 /* check to see if fcport is dport */ in bfa_fcdiag_loopback()
6024 static bfa_boolean_t bfa_dport_send_req(struct bfa_dport_s *dport,
6027 bfa_cb_fcdiag_dport(struct bfa_dport_s *dport, bfa_status_t bfa_status) in bfa_cb_fcdiag_dport() argument
6029 if (dport->cbfn != NULL) { in bfa_cb_fcdiag_dport()
6030 dport->cbfn(dport->cbarg, bfa_status); in bfa_cb_fcdiag_dport()
6031 dport->cbfn = NULL; in bfa_cb_fcdiag_dport()
6032 dport->cbarg = NULL; in bfa_cb_fcdiag_dport()
6037 bfa_dport_sm_disabled(struct bfa_dport_s *dport, enum bfa_dport_sm_event event) in bfa_dport_sm_disabled() argument
6039 bfa_trc(dport->bfa, event); in bfa_dport_sm_disabled()
6043 bfa_fcport_dportenable(dport->bfa); in bfa_dport_sm_disabled()
6044 if (bfa_dport_send_req(dport, BFI_DPORT_ENABLE)) in bfa_dport_sm_disabled()
6045 bfa_sm_set_state(dport, bfa_dport_sm_enabling); in bfa_dport_sm_disabled()
6047 bfa_sm_set_state(dport, bfa_dport_sm_enabling_qwait); in bfa_dport_sm_disabled()
6059 if (dport->i2hmsg.scn.state == BFI_DPORT_SCN_DDPORT_ENABLE) { in bfa_dport_sm_disabled()
6060 bfa_fcport_ddportenable(dport->bfa); in bfa_dport_sm_disabled()
6061 dport->dynamic = BFA_TRUE; in bfa_dport_sm_disabled()
6062 dport->test_state = BFA_DPORT_ST_NOTSTART; in bfa_dport_sm_disabled()
6063 bfa_sm_set_state(dport, bfa_dport_sm_enabled); in bfa_dport_sm_disabled()
6065 bfa_trc(dport->bfa, dport->i2hmsg.scn.state); in bfa_dport_sm_disabled()
6071 bfa_sm_fault(dport->bfa, event); in bfa_dport_sm_disabled()
6076 bfa_dport_sm_enabling_qwait(struct bfa_dport_s *dport, in bfa_dport_sm_enabling_qwait() argument
6079 bfa_trc(dport->bfa, event); in bfa_dport_sm_enabling_qwait()
6083 bfa_sm_set_state(dport, bfa_dport_sm_enabling); in bfa_dport_sm_enabling_qwait()
6084 bfa_dport_send_req(dport, BFI_DPORT_ENABLE); in bfa_dport_sm_enabling_qwait()
6088 bfa_reqq_wcancel(&dport->reqq_wait); in bfa_dport_sm_enabling_qwait()
6089 bfa_sm_set_state(dport, bfa_dport_sm_disabled); in bfa_dport_sm_enabling_qwait()
6090 bfa_cb_fcdiag_dport(dport, BFA_STATUS_FAILED); in bfa_dport_sm_enabling_qwait()
6094 bfa_sm_fault(dport->bfa, event); in bfa_dport_sm_enabling_qwait()
6099 bfa_dport_sm_enabling(struct bfa_dport_s *dport, enum bfa_dport_sm_event event) in bfa_dport_sm_enabling() argument
6101 bfa_trc(dport->bfa, event); in bfa_dport_sm_enabling()
6105 memset(&dport->result, 0, in bfa_dport_sm_enabling()
6107 if (dport->i2hmsg.rsp.status == BFA_STATUS_DPORT_INV_SFP) { in bfa_dport_sm_enabling()
6108 dport->test_state = BFA_DPORT_ST_NO_SFP; in bfa_dport_sm_enabling()
6110 dport->test_state = BFA_DPORT_ST_INP; in bfa_dport_sm_enabling()
6111 bfa_dport_result_start(dport, BFA_DPORT_OPMODE_AUTO); in bfa_dport_sm_enabling()
6113 bfa_sm_set_state(dport, bfa_dport_sm_enabled); in bfa_dport_sm_enabling()
6117 dport->test_state = BFA_DPORT_ST_DISABLED; in bfa_dport_sm_enabling()
6118 bfa_fcport_dportdisable(dport->bfa); in bfa_dport_sm_enabling()
6119 bfa_sm_set_state(dport, bfa_dport_sm_disabled); in bfa_dport_sm_enabling()
6123 bfa_sm_set_state(dport, bfa_dport_sm_disabled); in bfa_dport_sm_enabling()
6124 bfa_cb_fcdiag_dport(dport, BFA_STATUS_FAILED); in bfa_dport_sm_enabling()
6128 bfa_sm_fault(dport->bfa, event); in bfa_dport_sm_enabling()
6133 bfa_dport_sm_enabled(struct bfa_dport_s *dport, enum bfa_dport_sm_event event) in bfa_dport_sm_enabled() argument
6135 bfa_trc(dport->bfa, event); in bfa_dport_sm_enabled()
6139 if (bfa_dport_send_req(dport, BFI_DPORT_START)) in bfa_dport_sm_enabled()
6140 bfa_sm_set_state(dport, bfa_dport_sm_starting); in bfa_dport_sm_enabled()
6142 bfa_sm_set_state(dport, bfa_dport_sm_starting_qwait); in bfa_dport_sm_enabled()
6146 bfa_fcport_dportdisable(dport->bfa); in bfa_dport_sm_enabled()
6147 if (bfa_dport_send_req(dport, BFI_DPORT_DISABLE)) in bfa_dport_sm_enabled()
6148 bfa_sm_set_state(dport, bfa_dport_sm_disabling); in bfa_dport_sm_enabled()
6150 bfa_sm_set_state(dport, bfa_dport_sm_disabling_qwait); in bfa_dport_sm_enabled()
6154 bfa_sm_set_state(dport, bfa_dport_sm_disabled); in bfa_dport_sm_enabled()
6158 switch (dport->i2hmsg.scn.state) { in bfa_dport_sm_enabled()
6160 dport->test_state = BFA_DPORT_ST_COMP; in bfa_dport_sm_enabled()
6164 dport->test_state = BFA_DPORT_ST_INP; in bfa_dport_sm_enabled()
6173 dport->test_state = BFA_DPORT_ST_NO_SFP; in bfa_dport_sm_enabled()
6177 bfa_fcport_ddportdisable(dport->bfa); in bfa_dport_sm_enabled()
6179 if (bfa_dport_send_req(dport, BFI_DPORT_DYN_DISABLE)) in bfa_dport_sm_enabled()
6180 bfa_sm_set_state(dport, in bfa_dport_sm_enabled()
6183 bfa_sm_set_state(dport, in bfa_dport_sm_enabled()
6188 bfa_fcport_ddportdisable(dport->bfa); in bfa_dport_sm_enabled()
6190 bfa_sm_set_state(dport, bfa_dport_sm_disabled); in bfa_dport_sm_enabled()
6191 dport->dynamic = BFA_FALSE; in bfa_dport_sm_enabled()
6195 bfa_trc(dport->bfa, dport->i2hmsg.scn.state); in bfa_dport_sm_enabled()
6196 bfa_sm_fault(dport->bfa, event); in bfa_dport_sm_enabled()
6200 bfa_sm_fault(dport->bfa, event); in bfa_dport_sm_enabled()
6205 bfa_dport_sm_disabling_qwait(struct bfa_dport_s *dport, in bfa_dport_sm_disabling_qwait() argument
6208 bfa_trc(dport->bfa, event); in bfa_dport_sm_disabling_qwait()
6212 bfa_sm_set_state(dport, bfa_dport_sm_disabling); in bfa_dport_sm_disabling_qwait()
6213 bfa_dport_send_req(dport, BFI_DPORT_DISABLE); in bfa_dport_sm_disabling_qwait()
6217 bfa_sm_set_state(dport, bfa_dport_sm_disabled); in bfa_dport_sm_disabling_qwait()
6218 bfa_reqq_wcancel(&dport->reqq_wait); in bfa_dport_sm_disabling_qwait()
6219 bfa_cb_fcdiag_dport(dport, BFA_STATUS_OK); in bfa_dport_sm_disabling_qwait()
6227 bfa_sm_fault(dport->bfa, event); in bfa_dport_sm_disabling_qwait()
6232 bfa_dport_sm_disabling(struct bfa_dport_s *dport, enum bfa_dport_sm_event event) in bfa_dport_sm_disabling() argument
6234 bfa_trc(dport->bfa, event); in bfa_dport_sm_disabling()
6238 dport->test_state = BFA_DPORT_ST_DISABLED; in bfa_dport_sm_disabling()
6239 bfa_sm_set_state(dport, bfa_dport_sm_disabled); in bfa_dport_sm_disabling()
6243 bfa_sm_set_state(dport, bfa_dport_sm_disabled); in bfa_dport_sm_disabling()
6244 bfa_cb_fcdiag_dport(dport, BFA_STATUS_OK); in bfa_dport_sm_disabling()
6252 bfa_sm_fault(dport->bfa, event); in bfa_dport_sm_disabling()
6257 bfa_dport_sm_starting_qwait(struct bfa_dport_s *dport, in bfa_dport_sm_starting_qwait() argument
6260 bfa_trc(dport->bfa, event); in bfa_dport_sm_starting_qwait()
6264 bfa_sm_set_state(dport, bfa_dport_sm_starting); in bfa_dport_sm_starting_qwait()
6265 bfa_dport_send_req(dport, BFI_DPORT_START); in bfa_dport_sm_starting_qwait()
6269 bfa_reqq_wcancel(&dport->reqq_wait); in bfa_dport_sm_starting_qwait()
6270 bfa_sm_set_state(dport, bfa_dport_sm_disabled); in bfa_dport_sm_starting_qwait()
6271 bfa_cb_fcdiag_dport(dport, BFA_STATUS_FAILED); in bfa_dport_sm_starting_qwait()
6275 bfa_sm_fault(dport->bfa, event); in bfa_dport_sm_starting_qwait()
6280 bfa_dport_sm_starting(struct bfa_dport_s *dport, enum bfa_dport_sm_event event) in bfa_dport_sm_starting() argument
6282 bfa_trc(dport->bfa, event); in bfa_dport_sm_starting()
6286 memset(&dport->result, 0, in bfa_dport_sm_starting()
6288 if (dport->i2hmsg.rsp.status == BFA_STATUS_DPORT_INV_SFP) { in bfa_dport_sm_starting()
6289 dport->test_state = BFA_DPORT_ST_NO_SFP; in bfa_dport_sm_starting()
6291 dport->test_state = BFA_DPORT_ST_INP; in bfa_dport_sm_starting()
6292 bfa_dport_result_start(dport, BFA_DPORT_OPMODE_MANU); in bfa_dport_sm_starting()
6297 bfa_sm_set_state(dport, bfa_dport_sm_enabled); in bfa_dport_sm_starting()
6301 bfa_sm_set_state(dport, bfa_dport_sm_disabled); in bfa_dport_sm_starting()
6302 bfa_cb_fcdiag_dport(dport, BFA_STATUS_FAILED); in bfa_dport_sm_starting()
6306 bfa_sm_fault(dport->bfa, event); in bfa_dport_sm_starting()
6311 bfa_dport_sm_dynamic_disabling(struct bfa_dport_s *dport, in bfa_dport_sm_dynamic_disabling() argument
6314 bfa_trc(dport->bfa, event); in bfa_dport_sm_dynamic_disabling()
6318 switch (dport->i2hmsg.scn.state) { in bfa_dport_sm_dynamic_disabling()
6320 bfa_sm_set_state(dport, bfa_dport_sm_disabled); in bfa_dport_sm_dynamic_disabling()
6321 dport->dynamic = BFA_FALSE; in bfa_dport_sm_dynamic_disabling()
6322 bfa_fcport_enable(dport->bfa); in bfa_dport_sm_dynamic_disabling()
6326 bfa_trc(dport->bfa, dport->i2hmsg.scn.state); in bfa_dport_sm_dynamic_disabling()
6327 bfa_sm_fault(dport->bfa, event); in bfa_dport_sm_dynamic_disabling()
6333 bfa_sm_set_state(dport, bfa_dport_sm_disabled); in bfa_dport_sm_dynamic_disabling()
6334 bfa_cb_fcdiag_dport(dport, BFA_STATUS_OK); in bfa_dport_sm_dynamic_disabling()
6338 bfa_sm_fault(dport->bfa, event); in bfa_dport_sm_dynamic_disabling()
6343 bfa_dport_sm_dynamic_disabling_qwait(struct bfa_dport_s *dport, in bfa_dport_sm_dynamic_disabling_qwait() argument
6346 bfa_trc(dport->bfa, event); in bfa_dport_sm_dynamic_disabling_qwait()
6350 bfa_sm_set_state(dport, bfa_dport_sm_dynamic_disabling); in bfa_dport_sm_dynamic_disabling_qwait()
6351 bfa_dport_send_req(dport, BFI_DPORT_DYN_DISABLE); in bfa_dport_sm_dynamic_disabling_qwait()
6355 bfa_sm_set_state(dport, bfa_dport_sm_disabled); in bfa_dport_sm_dynamic_disabling_qwait()
6356 bfa_reqq_wcancel(&dport->reqq_wait); in bfa_dport_sm_dynamic_disabling_qwait()
6357 bfa_cb_fcdiag_dport(dport, BFA_STATUS_OK); in bfa_dport_sm_dynamic_disabling_qwait()
6365 bfa_sm_fault(dport->bfa, event); in bfa_dport_sm_dynamic_disabling_qwait()
6370 bfa_dport_send_req(struct bfa_dport_s *dport, enum bfi_dport_req req) in bfa_dport_send_req() argument
6377 m = bfa_reqq_next(dport->bfa, BFA_REQQ_DIAG); in bfa_dport_send_req()
6379 bfa_reqq_wait(dport->bfa, BFA_REQQ_PORT, &dport->reqq_wait); in bfa_dport_send_req()
6384 bfa_fn_lpu(dport->bfa)); in bfa_dport_send_req()
6387 m->lpcnt = cpu_to_be32(dport->lpcnt); in bfa_dport_send_req()
6388 m->payload = cpu_to_be32(dport->payload); in bfa_dport_send_req()
6394 bfa_reqq_produce(dport->bfa, BFA_REQQ_DIAG, m->mh); in bfa_dport_send_req()
6402 struct bfa_dport_s *dport = cbarg; in bfa_dport_qresume() local
6404 bfa_sm_send_event(dport, BFA_DPORT_SM_QRESUME); in bfa_dport_qresume()
6408 bfa_dport_req_comp(struct bfa_dport_s *dport, struct bfi_diag_dport_rsp_s *msg) in bfa_dport_req_comp() argument
6411 dport->i2hmsg.rsp.status = msg->status; in bfa_dport_req_comp()
6412 dport->rp_pwwn = msg->pwwn; in bfa_dport_req_comp()
6413 dport->rp_nwwn = msg->nwwn; in bfa_dport_req_comp()
6417 bfa_trc(dport->bfa, msg->status); in bfa_dport_req_comp()
6418 bfa_trc(dport->bfa, dport->rp_pwwn); in bfa_dport_req_comp()
6419 bfa_trc(dport->bfa, dport->rp_nwwn); in bfa_dport_req_comp()
6420 bfa_sm_send_event(dport, BFA_DPORT_SM_FWRSP); in bfa_dport_req_comp()
6423 bfa_trc(dport->bfa, msg->status); in bfa_dport_req_comp()
6424 bfa_sm_send_event(dport, BFA_DPORT_SM_REQFAIL); in bfa_dport_req_comp()
6426 bfa_cb_fcdiag_dport(dport, msg->status); in bfa_dport_req_comp()
6430 bfa_dport_is_sending_req(struct bfa_dport_s *dport) in bfa_dport_is_sending_req() argument
6432 if (bfa_sm_cmp_state(dport, bfa_dport_sm_enabling) || in bfa_dport_is_sending_req()
6433 bfa_sm_cmp_state(dport, bfa_dport_sm_enabling_qwait) || in bfa_dport_is_sending_req()
6434 bfa_sm_cmp_state(dport, bfa_dport_sm_disabling) || in bfa_dport_is_sending_req()
6435 bfa_sm_cmp_state(dport, bfa_dport_sm_disabling_qwait) || in bfa_dport_is_sending_req()
6436 bfa_sm_cmp_state(dport, bfa_dport_sm_starting) || in bfa_dport_is_sending_req()
6437 bfa_sm_cmp_state(dport, bfa_dport_sm_starting_qwait)) { in bfa_dport_is_sending_req()
6445 bfa_dport_scn(struct bfa_dport_s *dport, struct bfi_diag_dport_scn_s *msg) in bfa_dport_scn() argument
6450 bfa_trc(dport->bfa, msg->state); in bfa_dport_scn()
6451 dport->i2hmsg.scn.state = msg->state; in bfa_dport_scn()
6453 switch (dport->i2hmsg.scn.state) { in bfa_dport_scn()
6455 dport->result.end_time = ktime_get_real_seconds(); in bfa_dport_scn()
6456 bfa_trc(dport->bfa, dport->result.end_time); in bfa_dport_scn()
6458 dport->result.status = msg->info.testcomp.status; in bfa_dport_scn()
6459 bfa_trc(dport->bfa, dport->result.status); in bfa_dport_scn()
6461 dport->result.roundtrip_latency = in bfa_dport_scn()
6463 dport->result.est_cable_distance = in bfa_dport_scn()
6465 dport->result.buffer_required = in bfa_dport_scn()
6468 dport->result.frmsz = be16_to_cpu(msg->info.testcomp.frm_sz); in bfa_dport_scn()
6469 dport->result.speed = msg->info.testcomp.speed; in bfa_dport_scn()
6471 bfa_trc(dport->bfa, dport->result.roundtrip_latency); in bfa_dport_scn()
6472 bfa_trc(dport->bfa, dport->result.est_cable_distance); in bfa_dport_scn()
6473 bfa_trc(dport->bfa, dport->result.buffer_required); in bfa_dport_scn()
6474 bfa_trc(dport->bfa, dport->result.frmsz); in bfa_dport_scn()
6475 bfa_trc(dport->bfa, dport->result.speed); in bfa_dport_scn()
6478 dport->result.subtest[i].status = in bfa_dport_scn()
6480 bfa_trc(dport->bfa, dport->result.subtest[i].status); in bfa_dport_scn()
6486 memset(&dport->result, 0, in bfa_dport_scn()
6491 memset(&dport->result, 0, in bfa_dport_scn()
6493 dport->rp_pwwn = msg->info.teststart.pwwn; in bfa_dport_scn()
6494 dport->rp_nwwn = msg->info.teststart.nwwn; in bfa_dport_scn()
6495 dport->lpcnt = cpu_to_be32(msg->info.teststart.numfrm); in bfa_dport_scn()
6496 bfa_dport_result_start(dport, msg->info.teststart.mode); in bfa_dport_scn()
6501 dport->result.subtest[subtesttype].start_time = in bfa_dport_scn()
6503 dport->result.subtest[subtesttype].status = in bfa_dport_scn()
6506 bfa_trc(dport->bfa, subtesttype); in bfa_dport_scn()
6507 bfa_trc(dport->bfa, in bfa_dport_scn()
6508 dport->result.subtest[subtesttype].start_time); in bfa_dport_scn()
6515 dport->result.status = DPORT_TEST_ST_IDLE; in bfa_dport_scn()
6519 bfa_sm_fault(dport->bfa, msg->state); in bfa_dport_scn()
6522 bfa_sm_send_event(dport, BFA_DPORT_SM_SCN); in bfa_dport_scn()
6526 * Dport enable
6535 struct bfa_dport_s *dport = &fcdiag->dport; in bfa_dport_enable() local
6538 * Dport is not support in MEZZ card in bfa_dport_enable()
6540 if (bfa_mfg_is_mezz(dport->bfa->ioc.attr->card_type)) { in bfa_dport_enable()
6541 bfa_trc(dport->bfa, BFA_STATUS_PBC); in bfa_dport_enable()
6546 * Dport is supported in CT2 or above in bfa_dport_enable()
6548 if (!(bfa_asic_id_ct2(dport->bfa->ioc.pcidev.device_id))) { in bfa_dport_enable()
6549 bfa_trc(dport->bfa, dport->bfa->ioc.pcidev.device_id); in bfa_dport_enable()
6561 bfa_trc(dport->bfa, BFA_STATUS_PBC); in bfa_dport_enable()
6569 bfa_trc(dport->bfa, bfa_ioc_get_type(&bfa->ioc)); in bfa_dport_enable()
6578 bfa_trc(dport->bfa, 0); in bfa_dport_enable()
6586 bfa_trc(dport->bfa, 0); in bfa_dport_enable()
6594 bfa_trc(dport->bfa, 0); in bfa_dport_enable()
6599 * Check to see if port is disable or in dport state in bfa_dport_enable()
6603 bfa_trc(dport->bfa, 0); in bfa_dport_enable()
6608 * Check if dport is in dynamic mode in bfa_dport_enable()
6610 if (dport->dynamic) in bfa_dport_enable()
6614 * Check if dport is busy in bfa_dport_enable()
6616 if (bfa_dport_is_sending_req(dport)) in bfa_dport_enable()
6620 * Check if dport is already enabled in bfa_dport_enable()
6622 if (bfa_sm_cmp_state(dport, bfa_dport_sm_enabled)) { in bfa_dport_enable()
6623 bfa_trc(dport->bfa, 0); in bfa_dport_enable()
6627 bfa_trc(dport->bfa, lpcnt); in bfa_dport_enable()
6628 bfa_trc(dport->bfa, pat); in bfa_dport_enable()
6629 dport->lpcnt = (lpcnt) ? lpcnt : DPORT_ENABLE_LOOPCNT_DEFAULT; in bfa_dport_enable()
6630 dport->payload = (pat) ? pat : LB_PATTERN_DEFAULT; in bfa_dport_enable()
6631 dport->cbfn = cbfn; in bfa_dport_enable()
6632 dport->cbarg = cbarg; in bfa_dport_enable()
6634 bfa_sm_send_event(dport, BFA_DPORT_SM_ENABLE); in bfa_dport_enable()
6639 * Dport disable
6647 struct bfa_dport_s *dport = &fcdiag->dport; in bfa_dport_disable() local
6654 bfa_trc(dport->bfa, BFA_STATUS_PBC); in bfa_dport_disable()
6659 * Check if dport is in dynamic mode in bfa_dport_disable()
6661 if (dport->dynamic) { in bfa_dport_disable()
6666 * Check to see if port is disable or in dport state in bfa_dport_disable()
6670 bfa_trc(dport->bfa, 0); in bfa_dport_disable()
6675 * Check if dport is busy in bfa_dport_disable()
6677 if (bfa_dport_is_sending_req(dport)) in bfa_dport_disable()
6681 * Check if dport is already disabled in bfa_dport_disable()
6683 if (bfa_sm_cmp_state(dport, bfa_dport_sm_disabled)) { in bfa_dport_disable()
6684 bfa_trc(dport->bfa, 0); in bfa_dport_disable()
6688 dport->cbfn = cbfn; in bfa_dport_disable()
6689 dport->cbarg = cbarg; in bfa_dport_disable()
6691 bfa_sm_send_event(dport, BFA_DPORT_SM_DISABLE); in bfa_dport_disable()
6696 * Dport start -- restart dport test
6705 struct bfa_dport_s *dport = &fcdiag->dport; in bfa_dport_start() local
6714 * Check if dport is in dynamic mode in bfa_dport_start()
6716 if (dport->dynamic) in bfa_dport_start()
6720 * Check if dport is busy in bfa_dport_start()
6722 if (bfa_dport_is_sending_req(dport)) in bfa_dport_start()
6726 * Check if dport is in enabled state. in bfa_dport_start()
6729 if (!bfa_sm_cmp_state(dport, bfa_dport_sm_enabled)) { in bfa_dport_start()
6730 bfa_trc(dport->bfa, 0); in bfa_dport_start()
6734 if (dport->test_state == BFA_DPORT_ST_NO_SFP) in bfa_dport_start()
6737 if (dport->test_state == BFA_DPORT_ST_INP) in bfa_dport_start()
6740 WARN_ON(dport->test_state != BFA_DPORT_ST_COMP); in bfa_dport_start()
6743 bfa_trc(dport->bfa, lpcnt); in bfa_dport_start()
6744 bfa_trc(dport->bfa, pat); in bfa_dport_start()
6746 dport->lpcnt = (lpcnt) ? lpcnt : DPORT_ENABLE_LOOPCNT_DEFAULT; in bfa_dport_start()
6747 dport->payload = (pat) ? pat : LB_PATTERN_DEFAULT; in bfa_dport_start()
6749 dport->cbfn = cbfn; in bfa_dport_start()
6750 dport->cbarg = cbarg; in bfa_dport_start()
6752 bfa_sm_send_event(dport, BFA_DPORT_SM_START); in bfa_dport_start()
6757 * Dport show -- return dport test result
6765 struct bfa_dport_s *dport = &fcdiag->dport; in bfa_dport_show() local
6774 * Check if dport is busy in bfa_dport_show()
6776 if (bfa_dport_is_sending_req(dport)) in bfa_dport_show()
6780 * Check if dport is in enabled state. in bfa_dport_show()
6782 if (!bfa_sm_cmp_state(dport, bfa_dport_sm_enabled)) { in bfa_dport_show()
6783 bfa_trc(dport->bfa, 0); in bfa_dport_show()
6791 if (dport->test_state == BFA_DPORT_ST_NO_SFP) in bfa_dport_show()
6794 memcpy(result, &dport->result, sizeof(struct bfa_diag_dport_result_s)); in bfa_dport_show()