Lines Matching refs:dport

2664 		 * Ignore event for a port that is dport
5623 BFA_DPORT_ST_DISABLED = 0, /*!< dport is disabled */
5627 BFA_DPORT_ST_NOTSTART = 4, /*!< test not start dport is enabled */
5630 static void bfa_dport_sm_disabled(struct bfa_dport_s *dport,
5632 static void bfa_dport_sm_enabling_qwait(struct bfa_dport_s *dport,
5634 static void bfa_dport_sm_enabling(struct bfa_dport_s *dport,
5636 static void bfa_dport_sm_enabled(struct bfa_dport_s *dport,
5638 static void bfa_dport_sm_disabling_qwait(struct bfa_dport_s *dport,
5640 static void bfa_dport_sm_disabling(struct bfa_dport_s *dport,
5642 static void bfa_dport_sm_starting_qwait(struct bfa_dport_s *dport,
5644 static void bfa_dport_sm_starting(struct bfa_dport_s *dport,
5646 static void bfa_dport_sm_dynamic_disabling(struct bfa_dport_s *dport,
5648 static void bfa_dport_sm_dynamic_disabling_qwait(struct bfa_dport_s *dport,
5651 static void bfa_dport_req_comp(struct bfa_dport_s *dport,
5653 static void bfa_dport_scn(struct bfa_dport_s *dport,
5680 struct bfa_dport_s *dport = &fcdiag->dport;
5685 dport->bfa = bfa;
5686 bfa_sm_set_state(dport, bfa_dport_sm_disabled);
5687 bfa_reqq_winit(&dport->reqq_wait, bfa_dport_qresume, dport);
5688 dport->cbfn = NULL;
5689 dport->cbarg = NULL;
5690 dport->test_state = BFA_DPORT_ST_DISABLED;
5691 memset(&dport->result, 0, sizeof(struct bfa_diag_dport_result_s));
5698 struct bfa_dport_s *dport = &fcdiag->dport;
5708 bfa_sm_send_event(dport, BFA_DPORT_SM_HWFAIL);
5879 bfa_dport_req_comp(&fcdiag->dport,
5883 bfa_dport_scn(&fcdiag->dport,
5979 /* check to see if fcport is dport */
6096 static bfa_boolean_t bfa_dport_send_req(struct bfa_dport_s *dport,
6099 bfa_cb_fcdiag_dport(struct bfa_dport_s *dport, bfa_status_t bfa_status)
6101 if (dport->cbfn != NULL) {
6102 dport->cbfn(dport->cbarg, bfa_status);
6103 dport->cbfn = NULL;
6104 dport->cbarg = NULL;
6109 bfa_dport_sm_disabled(struct bfa_dport_s *dport, enum bfa_dport_sm_event event)
6111 bfa_trc(dport->bfa, event);
6115 bfa_fcport_dportenable(dport->bfa);
6116 if (bfa_dport_send_req(dport, BFI_DPORT_ENABLE))
6117 bfa_sm_set_state(dport, bfa_dport_sm_enabling);
6119 bfa_sm_set_state(dport, bfa_dport_sm_enabling_qwait);
6131 if (dport->i2hmsg.scn.state == BFI_DPORT_SCN_DDPORT_ENABLE) {
6132 bfa_fcport_ddportenable(dport->bfa);
6133 dport->dynamic = BFA_TRUE;
6134 dport->test_state = BFA_DPORT_ST_NOTSTART;
6135 bfa_sm_set_state(dport, bfa_dport_sm_enabled);
6137 bfa_trc(dport->bfa, dport->i2hmsg.scn.state);
6143 bfa_sm_fault(dport->bfa, event);
6148 bfa_dport_sm_enabling_qwait(struct bfa_dport_s *dport,
6151 bfa_trc(dport->bfa, event);
6155 bfa_sm_set_state(dport, bfa_dport_sm_enabling);
6156 bfa_dport_send_req(dport, BFI_DPORT_ENABLE);
6160 bfa_reqq_wcancel(&dport->reqq_wait);
6161 bfa_sm_set_state(dport, bfa_dport_sm_disabled);
6162 bfa_cb_fcdiag_dport(dport, BFA_STATUS_FAILED);
6166 bfa_sm_fault(dport->bfa, event);
6171 bfa_dport_sm_enabling(struct bfa_dport_s *dport, enum bfa_dport_sm_event event)
6173 bfa_trc(dport->bfa, event);
6177 memset(&dport->result, 0,
6179 if (dport->i2hmsg.rsp.status == BFA_STATUS_DPORT_INV_SFP) {
6180 dport->test_state = BFA_DPORT_ST_NO_SFP;
6182 dport->test_state = BFA_DPORT_ST_INP;
6183 bfa_dport_result_start(dport, BFA_DPORT_OPMODE_AUTO);
6185 bfa_sm_set_state(dport, bfa_dport_sm_enabled);
6189 dport->test_state = BFA_DPORT_ST_DISABLED;
6190 bfa_fcport_dportdisable(dport->bfa);
6191 bfa_sm_set_state(dport, bfa_dport_sm_disabled);
6195 bfa_sm_set_state(dport, bfa_dport_sm_disabled);
6196 bfa_cb_fcdiag_dport(dport, BFA_STATUS_FAILED);
6200 bfa_sm_fault(dport->bfa, event);
6205 bfa_dport_sm_enabled(struct bfa_dport_s *dport, enum bfa_dport_sm_event event)
6207 bfa_trc(dport->bfa, event);
6211 if (bfa_dport_send_req(dport, BFI_DPORT_START))
6212 bfa_sm_set_state(dport, bfa_dport_sm_starting);
6214 bfa_sm_set_state(dport, bfa_dport_sm_starting_qwait);
6218 bfa_fcport_dportdisable(dport->bfa);
6219 if (bfa_dport_send_req(dport, BFI_DPORT_DISABLE))
6220 bfa_sm_set_state(dport, bfa_dport_sm_disabling);
6222 bfa_sm_set_state(dport, bfa_dport_sm_disabling_qwait);
6226 bfa_sm_set_state(dport, bfa_dport_sm_disabled);
6230 switch (dport->i2hmsg.scn.state) {
6232 dport->test_state = BFA_DPORT_ST_COMP;
6236 dport->test_state = BFA_DPORT_ST_INP;
6245 dport->test_state = BFA_DPORT_ST_NO_SFP;
6249 bfa_fcport_ddportdisable(dport->bfa);
6251 if (bfa_dport_send_req(dport, BFI_DPORT_DYN_DISABLE))
6252 bfa_sm_set_state(dport,
6255 bfa_sm_set_state(dport,
6260 bfa_fcport_ddportdisable(dport->bfa);
6262 bfa_sm_set_state(dport, bfa_dport_sm_disabled);
6263 dport->dynamic = BFA_FALSE;
6267 bfa_trc(dport->bfa, dport->i2hmsg.scn.state);
6268 bfa_sm_fault(dport->bfa, event);
6272 bfa_sm_fault(dport->bfa, event);
6277 bfa_dport_sm_disabling_qwait(struct bfa_dport_s *dport,
6280 bfa_trc(dport->bfa, event);
6284 bfa_sm_set_state(dport, bfa_dport_sm_disabling);
6285 bfa_dport_send_req(dport, BFI_DPORT_DISABLE);
6289 bfa_sm_set_state(dport, bfa_dport_sm_disabled);
6290 bfa_reqq_wcancel(&dport->reqq_wait);
6291 bfa_cb_fcdiag_dport(dport, BFA_STATUS_OK);
6299 bfa_sm_fault(dport->bfa, event);
6304 bfa_dport_sm_disabling(struct bfa_dport_s *dport, enum bfa_dport_sm_event event)
6306 bfa_trc(dport->bfa, event);
6310 dport->test_state = BFA_DPORT_ST_DISABLED;
6311 bfa_sm_set_state(dport, bfa_dport_sm_disabled);
6315 bfa_sm_set_state(dport, bfa_dport_sm_disabled);
6316 bfa_cb_fcdiag_dport(dport, BFA_STATUS_OK);
6324 bfa_sm_fault(dport->bfa, event);
6329 bfa_dport_sm_starting_qwait(struct bfa_dport_s *dport,
6332 bfa_trc(dport->bfa, event);
6336 bfa_sm_set_state(dport, bfa_dport_sm_starting);
6337 bfa_dport_send_req(dport, BFI_DPORT_START);
6341 bfa_reqq_wcancel(&dport->reqq_wait);
6342 bfa_sm_set_state(dport, bfa_dport_sm_disabled);
6343 bfa_cb_fcdiag_dport(dport, BFA_STATUS_FAILED);
6347 bfa_sm_fault(dport->bfa, event);
6352 bfa_dport_sm_starting(struct bfa_dport_s *dport, enum bfa_dport_sm_event event)
6354 bfa_trc(dport->bfa, event);
6358 memset(&dport->result, 0,
6360 if (dport->i2hmsg.rsp.status == BFA_STATUS_DPORT_INV_SFP) {
6361 dport->test_state = BFA_DPORT_ST_NO_SFP;
6363 dport->test_state = BFA_DPORT_ST_INP;
6364 bfa_dport_result_start(dport, BFA_DPORT_OPMODE_MANU);
6369 bfa_sm_set_state(dport, bfa_dport_sm_enabled);
6373 bfa_sm_set_state(dport, bfa_dport_sm_disabled);
6374 bfa_cb_fcdiag_dport(dport, BFA_STATUS_FAILED);
6378 bfa_sm_fault(dport->bfa, event);
6383 bfa_dport_sm_dynamic_disabling(struct bfa_dport_s *dport,
6386 bfa_trc(dport->bfa, event);
6390 switch (dport->i2hmsg.scn.state) {
6392 bfa_sm_set_state(dport, bfa_dport_sm_disabled);
6393 dport->dynamic = BFA_FALSE;
6394 bfa_fcport_enable(dport->bfa);
6398 bfa_trc(dport->bfa, dport->i2hmsg.scn.state);
6399 bfa_sm_fault(dport->bfa, event);
6405 bfa_sm_set_state(dport, bfa_dport_sm_disabled);
6406 bfa_cb_fcdiag_dport(dport, BFA_STATUS_OK);
6410 bfa_sm_fault(dport->bfa, event);
6415 bfa_dport_sm_dynamic_disabling_qwait(struct bfa_dport_s *dport,
6418 bfa_trc(dport->bfa, event);
6422 bfa_sm_set_state(dport, bfa_dport_sm_dynamic_disabling);
6423 bfa_dport_send_req(dport, BFI_DPORT_DYN_DISABLE);
6427 bfa_sm_set_state(dport, bfa_dport_sm_disabled);
6428 bfa_reqq_wcancel(&dport->reqq_wait);
6429 bfa_cb_fcdiag_dport(dport, BFA_STATUS_OK);
6437 bfa_sm_fault(dport->bfa, event);
6442 bfa_dport_send_req(struct bfa_dport_s *dport, enum bfi_dport_req req)
6449 m = bfa_reqq_next(dport->bfa, BFA_REQQ_DIAG);
6451 bfa_reqq_wait(dport->bfa, BFA_REQQ_PORT, &dport->reqq_wait);
6456 bfa_fn_lpu(dport->bfa));
6459 m->lpcnt = cpu_to_be32(dport->lpcnt);
6460 m->payload = cpu_to_be32(dport->payload);
6466 bfa_reqq_produce(dport->bfa, BFA_REQQ_DIAG, m->mh);
6474 struct bfa_dport_s *dport = cbarg;
6476 bfa_sm_send_event(dport, BFA_DPORT_SM_QRESUME);
6480 bfa_dport_req_comp(struct bfa_dport_s *dport, struct bfi_diag_dport_rsp_s *msg)
6483 dport->i2hmsg.rsp.status = msg->status;
6484 dport->rp_pwwn = msg->pwwn;
6485 dport->rp_nwwn = msg->nwwn;
6489 bfa_trc(dport->bfa, msg->status);
6490 bfa_trc(dport->bfa, dport->rp_pwwn);
6491 bfa_trc(dport->bfa, dport->rp_nwwn);
6492 bfa_sm_send_event(dport, BFA_DPORT_SM_FWRSP);
6495 bfa_trc(dport->bfa, msg->status);
6496 bfa_sm_send_event(dport, BFA_DPORT_SM_REQFAIL);
6498 bfa_cb_fcdiag_dport(dport, msg->status);
6502 bfa_dport_is_sending_req(struct bfa_dport_s *dport)
6504 if (bfa_sm_cmp_state(dport, bfa_dport_sm_enabling) ||
6505 bfa_sm_cmp_state(dport, bfa_dport_sm_enabling_qwait) ||
6506 bfa_sm_cmp_state(dport, bfa_dport_sm_disabling) ||
6507 bfa_sm_cmp_state(dport, bfa_dport_sm_disabling_qwait) ||
6508 bfa_sm_cmp_state(dport, bfa_dport_sm_starting) ||
6509 bfa_sm_cmp_state(dport, bfa_dport_sm_starting_qwait)) {
6517 bfa_dport_scn(struct bfa_dport_s *dport, struct bfi_diag_dport_scn_s *msg)
6522 bfa_trc(dport->bfa, msg->state);
6523 dport->i2hmsg.scn.state = msg->state;
6525 switch (dport->i2hmsg.scn.state) {
6527 dport->result.end_time = ktime_get_real_seconds();
6528 bfa_trc(dport->bfa, dport->result.end_time);
6530 dport->result.status = msg->info.testcomp.status;
6531 bfa_trc(dport->bfa, dport->result.status);
6533 dport->result.roundtrip_latency =
6535 dport->result.est_cable_distance =
6537 dport->result.buffer_required =
6540 dport->result.frmsz = be16_to_cpu(msg->info.testcomp.frm_sz);
6541 dport->result.speed = msg->info.testcomp.speed;
6543 bfa_trc(dport->bfa, dport->result.roundtrip_latency);
6544 bfa_trc(dport->bfa, dport->result.est_cable_distance);
6545 bfa_trc(dport->bfa, dport->result.buffer_required);
6546 bfa_trc(dport->bfa, dport->result.frmsz);
6547 bfa_trc(dport->bfa, dport->result.speed);
6550 dport->result.subtest[i].status =
6552 bfa_trc(dport->bfa, dport->result.subtest[i].status);
6558 memset(&dport->result, 0,
6563 memset(&dport->result, 0,
6565 dport->rp_pwwn = msg->info.teststart.pwwn;
6566 dport->rp_nwwn = msg->info.teststart.nwwn;
6567 dport->lpcnt = cpu_to_be32(msg->info.teststart.numfrm);
6568 bfa_dport_result_start(dport, msg->info.teststart.mode);
6573 dport->result.subtest[subtesttype].start_time =
6575 dport->result.subtest[subtesttype].status =
6578 bfa_trc(dport->bfa, subtesttype);
6579 bfa_trc(dport->bfa,
6580 dport->result.subtest[subtesttype].start_time);
6587 dport->result.status = DPORT_TEST_ST_IDLE;
6591 bfa_sm_fault(dport->bfa, msg->state);
6594 bfa_sm_send_event(dport, BFA_DPORT_SM_SCN);
6607 struct bfa_dport_s *dport = &fcdiag->dport;
6612 if (bfa_mfg_is_mezz(dport->bfa->ioc.attr->card_type)) {
6613 bfa_trc(dport->bfa, BFA_STATUS_PBC);
6620 if (!(bfa_asic_id_ct2(dport->bfa->ioc.pcidev.device_id))) {
6621 bfa_trc(dport->bfa, dport->bfa->ioc.pcidev.device_id);
6633 bfa_trc(dport->bfa, BFA_STATUS_PBC);
6641 bfa_trc(dport->bfa, bfa_ioc_get_type(&bfa->ioc));
6650 bfa_trc(dport->bfa, 0);
6658 bfa_trc(dport->bfa, 0);
6666 bfa_trc(dport->bfa, 0);
6671 * Check to see if port is disable or in dport state
6675 bfa_trc(dport->bfa, 0);
6680 * Check if dport is in dynamic mode
6682 if (dport->dynamic)
6686 * Check if dport is busy
6688 if (bfa_dport_is_sending_req(dport))
6692 * Check if dport is already enabled
6694 if (bfa_sm_cmp_state(dport, bfa_dport_sm_enabled)) {
6695 bfa_trc(dport->bfa, 0);
6699 bfa_trc(dport->bfa, lpcnt);
6700 bfa_trc(dport->bfa, pat);
6701 dport->lpcnt = (lpcnt) ? lpcnt : DPORT_ENABLE_LOOPCNT_DEFAULT;
6702 dport->payload = (pat) ? pat : LB_PATTERN_DEFAULT;
6703 dport->cbfn = cbfn;
6704 dport->cbarg = cbarg;
6706 bfa_sm_send_event(dport, BFA_DPORT_SM_ENABLE);
6719 struct bfa_dport_s *dport = &fcdiag->dport;
6726 bfa_trc(dport->bfa, BFA_STATUS_PBC);
6731 * Check if dport is in dynamic mode
6733 if (dport->dynamic) {
6738 * Check to see if port is disable or in dport state
6742 bfa_trc(dport->bfa, 0);
6747 * Check if dport is busy
6749 if (bfa_dport_is_sending_req(dport))
6753 * Check if dport is already disabled
6755 if (bfa_sm_cmp_state(dport, bfa_dport_sm_disabled)) {
6756 bfa_trc(dport->bfa, 0);
6760 dport->cbfn = cbfn;
6761 dport->cbarg = cbarg;
6763 bfa_sm_send_event(dport, BFA_DPORT_SM_DISABLE);
6768 * Dport start -- restart dport test
6777 struct bfa_dport_s *dport = &fcdiag->dport;
6786 * Check if dport is in dynamic mode
6788 if (dport->dynamic)
6792 * Check if dport is busy
6794 if (bfa_dport_is_sending_req(dport))
6798 * Check if dport is in enabled state.
6801 if (!bfa_sm_cmp_state(dport, bfa_dport_sm_enabled)) {
6802 bfa_trc(dport->bfa, 0);
6806 if (dport->test_state == BFA_DPORT_ST_NO_SFP)
6809 if (dport->test_state == BFA_DPORT_ST_INP)
6812 WARN_ON(dport->test_state != BFA_DPORT_ST_COMP);
6815 bfa_trc(dport->bfa, lpcnt);
6816 bfa_trc(dport->bfa, pat);
6818 dport->lpcnt = (lpcnt) ? lpcnt : DPORT_ENABLE_LOOPCNT_DEFAULT;
6819 dport->payload = (pat) ? pat : LB_PATTERN_DEFAULT;
6821 dport->cbfn = cbfn;
6822 dport->cbarg = cbarg;
6824 bfa_sm_send_event(dport, BFA_DPORT_SM_START);
6829 * Dport show -- return dport test result
6837 struct bfa_dport_s *dport = &fcdiag->dport;
6846 * Check if dport is busy
6848 if (bfa_dport_is_sending_req(dport))
6852 * Check if dport is in enabled state.
6854 if (!bfa_sm_cmp_state(dport, bfa_dport_sm_enabled)) {
6855 bfa_trc(dport->bfa, 0);
6863 if (dport->test_state == BFA_DPORT_ST_NO_SFP)
6866 memcpy(result, &dport->result, sizeof(struct bfa_diag_dport_result_s));