Lines Matching refs:ethport
22 ethport_can_be_up(struct bna_ethport *ethport) in ethport_can_be_up() argument
25 if (ethport->bna->enet.type == BNA_ENET_T_REGULAR) in ethport_can_be_up()
26 ready = ((ethport->flags & BNA_ETHPORT_F_ADMIN_UP) && in ethport_can_be_up()
27 (ethport->flags & BNA_ETHPORT_F_RX_STARTED) && in ethport_can_be_up()
28 (ethport->flags & BNA_ETHPORT_F_PORT_ENABLED)); in ethport_can_be_up()
30 ready = ((ethport->flags & BNA_ETHPORT_F_ADMIN_UP) && in ethport_can_be_up()
31 (ethport->flags & BNA_ETHPORT_F_RX_STARTED) && in ethport_can_be_up()
32 !(ethport->flags & BNA_ETHPORT_F_PORT_ENABLED)); in ethport_can_be_up()
84 bna_bfi_ethport_enable_aen(struct bna_ethport *ethport, in bna_bfi_ethport_enable_aen() argument
87 ethport->flags |= BNA_ETHPORT_F_PORT_ENABLED; in bna_bfi_ethport_enable_aen()
89 if (ethport_can_be_up(ethport)) in bna_bfi_ethport_enable_aen()
90 bfa_fsm_send_event(ethport, ETHPORT_E_UP); in bna_bfi_ethport_enable_aen()
94 bna_bfi_ethport_disable_aen(struct bna_ethport *ethport, in bna_bfi_ethport_disable_aen() argument
97 int ethport_up = ethport_is_up(ethport); in bna_bfi_ethport_disable_aen()
99 ethport->flags &= ~BNA_ETHPORT_F_PORT_ENABLED; in bna_bfi_ethport_disable_aen()
102 bfa_fsm_send_event(ethport, ETHPORT_E_DOWN); in bna_bfi_ethport_disable_aen()
106 bna_bfi_ethport_admin_rsp(struct bna_ethport *ethport, in bna_bfi_ethport_admin_rsp() argument
110 ðport->bfi_enet_cmd.admin_req; in bna_bfi_ethport_admin_rsp()
117 bfa_fsm_send_event(ethport, ETHPORT_E_FWRESP_UP_OK); in bna_bfi_ethport_admin_rsp()
119 ethport->flags &= ~BNA_ETHPORT_F_PORT_ENABLED; in bna_bfi_ethport_admin_rsp()
120 bfa_fsm_send_event(ethport, ETHPORT_E_FWRESP_UP_FAIL); in bna_bfi_ethport_admin_rsp()
125 bfa_fsm_send_event(ethport, ETHPORT_E_FWRESP_DOWN); in bna_bfi_ethport_admin_rsp()
126 ethport->link_status = BNA_LINK_DOWN; in bna_bfi_ethport_admin_rsp()
127 ethport->link_cbfn(ethport->bna->bnad, BNA_LINK_DOWN); in bna_bfi_ethport_admin_rsp()
133 bna_bfi_ethport_lpbk_rsp(struct bna_ethport *ethport, in bna_bfi_ethport_lpbk_rsp() argument
137 ðport->bfi_enet_cmd.lpbk_req; in bna_bfi_ethport_lpbk_rsp()
144 bfa_fsm_send_event(ethport, ETHPORT_E_FWRESP_UP_OK); in bna_bfi_ethport_lpbk_rsp()
146 ethport->flags &= ~BNA_ETHPORT_F_ADMIN_UP; in bna_bfi_ethport_lpbk_rsp()
147 bfa_fsm_send_event(ethport, ETHPORT_E_FWRESP_UP_FAIL); in bna_bfi_ethport_lpbk_rsp()
152 bfa_fsm_send_event(ethport, ETHPORT_E_FWRESP_DOWN); in bna_bfi_ethport_lpbk_rsp()
241 bna_bfi_ethport_linkup_aen(struct bna_ethport *ethport, in bna_bfi_ethport_linkup_aen() argument
244 ethport->link_status = BNA_LINK_UP; in bna_bfi_ethport_linkup_aen()
247 ethport->link_cbfn(ethport->bna->bnad, ethport->link_status); in bna_bfi_ethport_linkup_aen()
251 bna_bfi_ethport_linkdown_aen(struct bna_ethport *ethport, in bna_bfi_ethport_linkdown_aen() argument
254 ethport->link_status = BNA_LINK_DOWN; in bna_bfi_ethport_linkdown_aen()
257 ethport->link_cbfn(ethport->bna->bnad, BNA_LINK_DOWN); in bna_bfi_ethport_linkdown_aen()
342 bna_bfi_ethport_admin_rsp(&bna->ethport, msghdr); in bna_msgq_rsp_handler()
346 bna_bfi_ethport_lpbk_rsp(&bna->ethport, msghdr); in bna_msgq_rsp_handler()
366 bna_bfi_ethport_linkup_aen(&bna->ethport, msghdr); in bna_msgq_rsp_handler()
370 bna_bfi_ethport_linkdown_aen(&bna->ethport, msghdr); in bna_msgq_rsp_handler()
374 bna_bfi_ethport_enable_aen(&bna->ethport, msghdr); in bna_msgq_rsp_handler()
378 bna_bfi_ethport_disable_aen(&bna->ethport, msghdr); in bna_msgq_rsp_handler()
402 #define call_ethport_adminup_cbfn(ethport, status) \ argument
404 if ((ethport)->adminup_cbfn) { \
406 cbfn = (ethport)->adminup_cbfn; \
407 (ethport)->adminup_cbfn = NULL; \
408 cbfn((ethport)->bna->bnad, status); \
413 bna_bfi_ethport_admin_up(struct bna_ethport *ethport) in bna_bfi_ethport_admin_up() argument
416 ðport->bfi_enet_cmd.admin_req; in bna_bfi_ethport_admin_up()
424 bfa_msgq_cmd_set(ðport->msgq_cmd, NULL, NULL, in bna_bfi_ethport_admin_up()
426 bfa_msgq_cmd_post(ðport->bna->msgq, ðport->msgq_cmd); in bna_bfi_ethport_admin_up()
430 bna_bfi_ethport_admin_down(struct bna_ethport *ethport) in bna_bfi_ethport_admin_down() argument
433 ðport->bfi_enet_cmd.admin_req; in bna_bfi_ethport_admin_down()
441 bfa_msgq_cmd_set(ðport->msgq_cmd, NULL, NULL, in bna_bfi_ethport_admin_down()
443 bfa_msgq_cmd_post(ðport->bna->msgq, ðport->msgq_cmd); in bna_bfi_ethport_admin_down()
447 bna_bfi_ethport_lpbk_up(struct bna_ethport *ethport) in bna_bfi_ethport_lpbk_up() argument
450 ðport->bfi_enet_cmd.lpbk_req; in bna_bfi_ethport_lpbk_up()
456 lpbk_up_req->mode = (ethport->bna->enet.type == in bna_bfi_ethport_lpbk_up()
462 bfa_msgq_cmd_set(ðport->msgq_cmd, NULL, NULL, in bna_bfi_ethport_lpbk_up()
464 bfa_msgq_cmd_post(ðport->bna->msgq, ðport->msgq_cmd); in bna_bfi_ethport_lpbk_up()
468 bna_bfi_ethport_lpbk_down(struct bna_ethport *ethport) in bna_bfi_ethport_lpbk_down() argument
471 ðport->bfi_enet_cmd.lpbk_req; in bna_bfi_ethport_lpbk_down()
479 bfa_msgq_cmd_set(ðport->msgq_cmd, NULL, NULL, in bna_bfi_ethport_lpbk_down()
481 bfa_msgq_cmd_post(ðport->bna->msgq, ðport->msgq_cmd); in bna_bfi_ethport_lpbk_down()
485 bna_bfi_ethport_up(struct bna_ethport *ethport) in bna_bfi_ethport_up() argument
487 if (ethport->bna->enet.type == BNA_ENET_T_REGULAR) in bna_bfi_ethport_up()
488 bna_bfi_ethport_admin_up(ethport); in bna_bfi_ethport_up()
490 bna_bfi_ethport_lpbk_up(ethport); in bna_bfi_ethport_up()
494 bna_bfi_ethport_down(struct bna_ethport *ethport) in bna_bfi_ethport_down() argument
496 if (ethport->bna->enet.type == BNA_ENET_T_REGULAR) in bna_bfi_ethport_down()
497 bna_bfi_ethport_admin_down(ethport); in bna_bfi_ethport_down()
499 bna_bfi_ethport_lpbk_down(ethport); in bna_bfi_ethport_down()
516 bna_ethport_sm_stopped_entry(struct bna_ethport *ethport) in bna_ethport_sm_stopped_entry() argument
518 call_ethport_stop_cbfn(ethport); in bna_ethport_sm_stopped_entry()
522 bna_ethport_sm_stopped(struct bna_ethport *ethport, in bna_ethport_sm_stopped() argument
527 bfa_fsm_set_state(ethport, bna_ethport_sm_down); in bna_ethport_sm_stopped()
531 call_ethport_stop_cbfn(ethport); in bna_ethport_sm_stopped()
549 bna_ethport_sm_down_entry(struct bna_ethport *ethport) in bna_ethport_sm_down_entry() argument
554 bna_ethport_sm_down(struct bna_ethport *ethport, in bna_ethport_sm_down() argument
559 bfa_fsm_set_state(ethport, bna_ethport_sm_stopped); in bna_ethport_sm_down()
563 bfa_fsm_set_state(ethport, bna_ethport_sm_stopped); in bna_ethport_sm_down()
567 bfa_fsm_set_state(ethport, bna_ethport_sm_up_resp_wait); in bna_ethport_sm_down()
568 bna_bfi_ethport_up(ethport); in bna_ethport_sm_down()
577 bna_ethport_sm_up_resp_wait_entry(struct bna_ethport *ethport) in bna_ethport_sm_up_resp_wait_entry() argument
582 bna_ethport_sm_up_resp_wait(struct bna_ethport *ethport, in bna_ethport_sm_up_resp_wait() argument
587 bfa_fsm_set_state(ethport, bna_ethport_sm_last_resp_wait); in bna_ethport_sm_up_resp_wait()
591 call_ethport_adminup_cbfn(ethport, BNA_CB_FAIL); in bna_ethport_sm_up_resp_wait()
592 bfa_fsm_set_state(ethport, bna_ethport_sm_stopped); in bna_ethport_sm_up_resp_wait()
596 call_ethport_adminup_cbfn(ethport, BNA_CB_INTERRUPT); in bna_ethport_sm_up_resp_wait()
597 bfa_fsm_set_state(ethport, bna_ethport_sm_down_resp_wait); in bna_ethport_sm_up_resp_wait()
601 call_ethport_adminup_cbfn(ethport, BNA_CB_SUCCESS); in bna_ethport_sm_up_resp_wait()
602 bfa_fsm_set_state(ethport, bna_ethport_sm_up); in bna_ethport_sm_up_resp_wait()
606 call_ethport_adminup_cbfn(ethport, BNA_CB_FAIL); in bna_ethport_sm_up_resp_wait()
607 bfa_fsm_set_state(ethport, bna_ethport_sm_down); in bna_ethport_sm_up_resp_wait()
612 bna_bfi_ethport_up(ethport); in bna_ethport_sm_up_resp_wait()
621 bna_ethport_sm_down_resp_wait_entry(struct bna_ethport *ethport) in bna_ethport_sm_down_resp_wait_entry() argument
631 bna_ethport_sm_down_resp_wait(struct bna_ethport *ethport, in bna_ethport_sm_down_resp_wait() argument
636 bfa_fsm_set_state(ethport, bna_ethport_sm_last_resp_wait); in bna_ethport_sm_down_resp_wait()
640 bfa_fsm_set_state(ethport, bna_ethport_sm_stopped); in bna_ethport_sm_down_resp_wait()
644 bfa_fsm_set_state(ethport, bna_ethport_sm_up_resp_wait); in bna_ethport_sm_down_resp_wait()
649 bna_bfi_ethport_down(ethport); in bna_ethport_sm_down_resp_wait()
654 bfa_fsm_set_state(ethport, bna_ethport_sm_down); in bna_ethport_sm_down_resp_wait()
663 bna_ethport_sm_up_entry(struct bna_ethport *ethport) in bna_ethport_sm_up_entry() argument
668 bna_ethport_sm_up(struct bna_ethport *ethport, in bna_ethport_sm_up() argument
673 bfa_fsm_set_state(ethport, bna_ethport_sm_last_resp_wait); in bna_ethport_sm_up()
674 bna_bfi_ethport_down(ethport); in bna_ethport_sm_up()
678 bfa_fsm_set_state(ethport, bna_ethport_sm_stopped); in bna_ethport_sm_up()
682 bfa_fsm_set_state(ethport, bna_ethport_sm_down_resp_wait); in bna_ethport_sm_up()
683 bna_bfi_ethport_down(ethport); in bna_ethport_sm_up()
692 bna_ethport_sm_last_resp_wait_entry(struct bna_ethport *ethport) in bna_ethport_sm_last_resp_wait_entry() argument
697 bna_ethport_sm_last_resp_wait(struct bna_ethport *ethport, in bna_ethport_sm_last_resp_wait() argument
702 bfa_fsm_set_state(ethport, bna_ethport_sm_stopped); in bna_ethport_sm_last_resp_wait()
715 bna_bfi_ethport_down(ethport); in bna_ethport_sm_last_resp_wait()
720 bfa_fsm_set_state(ethport, bna_ethport_sm_stopped); in bna_ethport_sm_last_resp_wait()
729 bna_ethport_init(struct bna_ethport *ethport, struct bna *bna) in bna_ethport_init() argument
731 ethport->flags |= (BNA_ETHPORT_F_ADMIN_UP | BNA_ETHPORT_F_PORT_ENABLED); in bna_ethport_init()
732 ethport->bna = bna; in bna_ethport_init()
734 ethport->link_status = BNA_LINK_DOWN; in bna_ethport_init()
735 ethport->link_cbfn = bnad_cb_ethport_link_status; in bna_ethport_init()
737 ethport->rx_started_count = 0; in bna_ethport_init()
739 ethport->stop_cbfn = NULL; in bna_ethport_init()
740 ethport->adminup_cbfn = NULL; in bna_ethport_init()
742 bfa_fsm_set_state(ethport, bna_ethport_sm_stopped); in bna_ethport_init()
746 bna_ethport_uninit(struct bna_ethport *ethport) in bna_ethport_uninit() argument
748 ethport->flags &= ~BNA_ETHPORT_F_ADMIN_UP; in bna_ethport_uninit()
749 ethport->flags &= ~BNA_ETHPORT_F_PORT_ENABLED; in bna_ethport_uninit()
751 ethport->bna = NULL; in bna_ethport_uninit()
755 bna_ethport_start(struct bna_ethport *ethport) in bna_ethport_start() argument
757 bfa_fsm_send_event(ethport, ETHPORT_E_START); in bna_ethport_start()
767 bna_ethport_stop(struct bna_ethport *ethport) in bna_ethport_stop() argument
769 ethport->stop_cbfn = bna_enet_cb_ethport_stopped; in bna_ethport_stop()
770 bfa_fsm_send_event(ethport, ETHPORT_E_STOP); in bna_ethport_stop()
774 bna_ethport_fail(struct bna_ethport *ethport) in bna_ethport_fail() argument
777 ethport->flags |= BNA_ETHPORT_F_PORT_ENABLED; in bna_ethport_fail()
779 if (ethport->link_status != BNA_LINK_DOWN) { in bna_ethport_fail()
780 ethport->link_status = BNA_LINK_DOWN; in bna_ethport_fail()
781 ethport->link_cbfn(ethport->bna->bnad, BNA_LINK_DOWN); in bna_ethport_fail()
783 bfa_fsm_send_event(ethport, ETHPORT_E_FAIL); in bna_ethport_fail()
788 bna_ethport_cb_rx_started(struct bna_ethport *ethport) in bna_ethport_cb_rx_started() argument
790 ethport->rx_started_count++; in bna_ethport_cb_rx_started()
792 if (ethport->rx_started_count == 1) { in bna_ethport_cb_rx_started()
793 ethport->flags |= BNA_ETHPORT_F_RX_STARTED; in bna_ethport_cb_rx_started()
795 if (ethport_can_be_up(ethport)) in bna_ethport_cb_rx_started()
796 bfa_fsm_send_event(ethport, ETHPORT_E_UP); in bna_ethport_cb_rx_started()
801 bna_ethport_cb_rx_stopped(struct bna_ethport *ethport) in bna_ethport_cb_rx_stopped() argument
803 int ethport_up = ethport_is_up(ethport); in bna_ethport_cb_rx_stopped()
805 ethport->rx_started_count--; in bna_ethport_cb_rx_stopped()
807 if (ethport->rx_started_count == 0) { in bna_ethport_cb_rx_stopped()
808 ethport->flags &= ~BNA_ETHPORT_F_RX_STARTED; in bna_ethport_cb_rx_stopped()
811 bfa_fsm_send_event(ethport, ETHPORT_E_DOWN); in bna_ethport_cb_rx_stopped()
825 bna_ethport_start(&(enet)->bna->ethport); \
840 bna_ethport_stop(&(enet)->bna->ethport); \
850 bna_ethport_fail(&(enet)->bna->ethport); \
1993 bna_ethport_init(&bna->ethport, bna); in bna_init()
2025 bna_ethport_uninit(&bna->ethport); in bna_uninit()