Lines Matching refs:enet

25 	if (ethport->bna->enet.type == BNA_ENET_T_REGULAR)  in ethport_can_be_up()
158 bna_bfi_pause_set_rsp(struct bna_enet *enet, struct bfi_msgq_mhdr *msghdr) in bna_bfi_pause_set_rsp() argument
160 bfa_fsm_send_event(enet, ENET_E_FWRESP_PAUSE); in bna_bfi_pause_set_rsp()
350 bna_bfi_pause_set_rsp(&bna->enet, msghdr); in bna_msgq_rsp_handler()
398 cbfn(&(_ethport)->bna->enet); \
456 lpbk_up_req->mode = (ethport->bna->enet.type == in bna_bfi_ethport_lpbk_up()
487 if (ethport->bna->enet.type == BNA_ENET_T_REGULAR) in bna_bfi_ethport_up()
496 if (ethport->bna->enet.type == BNA_ENET_T_REGULAR) in bna_bfi_ethport_down()
761 bna_enet_cb_ethport_stopped(struct bna_enet *enet) in bna_enet_cb_ethport_stopped() argument
763 bfa_wc_down(&enet->chld_stop_wc); in bna_enet_cb_ethport_stopped()
817 #define bna_enet_chld_start(enet) \ argument
820 ((enet)->type == BNA_ENET_T_REGULAR) ? \
823 ((enet)->type == BNA_ENET_T_REGULAR) ? \
825 bna_ethport_start(&(enet)->bna->ethport); \
826 bna_tx_mod_start(&(enet)->bna->tx_mod, tx_type); \
827 bna_rx_mod_start(&(enet)->bna->rx_mod, rx_type); \
830 #define bna_enet_chld_stop(enet) \ argument
833 ((enet)->type == BNA_ENET_T_REGULAR) ? \
836 ((enet)->type == BNA_ENET_T_REGULAR) ? \
838 bfa_wc_init(&(enet)->chld_stop_wc, bna_enet_cb_chld_stopped, (enet));\
839 bfa_wc_up(&(enet)->chld_stop_wc); \
840 bna_ethport_stop(&(enet)->bna->ethport); \
841 bfa_wc_up(&(enet)->chld_stop_wc); \
842 bna_tx_mod_stop(&(enet)->bna->tx_mod, tx_type); \
843 bfa_wc_up(&(enet)->chld_stop_wc); \
844 bna_rx_mod_stop(&(enet)->bna->rx_mod, rx_type); \
845 bfa_wc_wait(&(enet)->chld_stop_wc); \
848 #define bna_enet_chld_fail(enet) \ argument
850 bna_ethport_fail(&(enet)->bna->ethport); \
851 bna_tx_mod_fail(&(enet)->bna->tx_mod); \
852 bna_rx_mod_fail(&(enet)->bna->rx_mod); \
855 #define bna_enet_rx_start(enet) \ argument
858 ((enet)->type == BNA_ENET_T_REGULAR) ? \
860 bna_rx_mod_start(&(enet)->bna->rx_mod, rx_type); \
863 #define bna_enet_rx_stop(enet) \ argument
866 ((enet)->type == BNA_ENET_T_REGULAR) ? \
868 bfa_wc_init(&(enet)->chld_stop_wc, bna_enet_cb_chld_stopped, (enet));\
869 bfa_wc_up(&(enet)->chld_stop_wc); \
870 bna_rx_mod_stop(&(enet)->bna->rx_mod, rx_type); \
871 bfa_wc_wait(&(enet)->chld_stop_wc); \
874 #define call_enet_stop_cbfn(enet) \ argument
876 if ((enet)->stop_cbfn) { \
879 cbfn = (enet)->stop_cbfn; \
880 cbarg = (enet)->stop_cbarg; \
881 (enet)->stop_cbfn = NULL; \
882 (enet)->stop_cbarg = NULL; \
887 #define call_enet_pause_cbfn(enet) \ argument
889 if ((enet)->pause_cbfn) { \
891 cbfn = (enet)->pause_cbfn; \
892 (enet)->pause_cbfn = NULL; \
893 cbfn((enet)->bna->bnad); \
897 #define call_enet_mtu_cbfn(enet) \ argument
899 if ((enet)->mtu_cbfn) { \
901 cbfn = (enet)->mtu_cbfn; \
902 (enet)->mtu_cbfn = NULL; \
903 cbfn((enet)->bna->bnad); \
908 static void bna_bfi_pause_set(struct bna_enet *enet);
926 bna_enet_sm_stopped_entry(struct bna_enet *enet) in bna_enet_sm_stopped_entry() argument
928 call_enet_pause_cbfn(enet); in bna_enet_sm_stopped_entry()
929 call_enet_mtu_cbfn(enet); in bna_enet_sm_stopped_entry()
930 call_enet_stop_cbfn(enet); in bna_enet_sm_stopped_entry()
934 bna_enet_sm_stopped(struct bna_enet *enet, enum bna_enet_event event) in bna_enet_sm_stopped() argument
938 bfa_fsm_set_state(enet, bna_enet_sm_pause_init_wait); in bna_enet_sm_stopped()
942 call_enet_stop_cbfn(enet); in bna_enet_sm_stopped()
950 call_enet_pause_cbfn(enet); in bna_enet_sm_stopped()
954 call_enet_mtu_cbfn(enet); in bna_enet_sm_stopped()
971 bna_enet_sm_pause_init_wait_entry(struct bna_enet *enet) in bna_enet_sm_pause_init_wait_entry() argument
973 bna_bfi_pause_set(enet); in bna_enet_sm_pause_init_wait_entry()
977 bna_enet_sm_pause_init_wait(struct bna_enet *enet, in bna_enet_sm_pause_init_wait() argument
982 enet->flags &= ~BNA_ENET_F_PAUSE_CHANGED; in bna_enet_sm_pause_init_wait()
983 bfa_fsm_set_state(enet, bna_enet_sm_last_resp_wait); in bna_enet_sm_pause_init_wait()
987 enet->flags &= ~BNA_ENET_F_PAUSE_CHANGED; in bna_enet_sm_pause_init_wait()
988 bfa_fsm_set_state(enet, bna_enet_sm_stopped); in bna_enet_sm_pause_init_wait()
992 enet->flags |= BNA_ENET_F_PAUSE_CHANGED; in bna_enet_sm_pause_init_wait()
1000 if (enet->flags & BNA_ENET_F_PAUSE_CHANGED) { in bna_enet_sm_pause_init_wait()
1001 enet->flags &= ~BNA_ENET_F_PAUSE_CHANGED; in bna_enet_sm_pause_init_wait()
1002 bna_bfi_pause_set(enet); in bna_enet_sm_pause_init_wait()
1004 bfa_fsm_set_state(enet, bna_enet_sm_started); in bna_enet_sm_pause_init_wait()
1005 bna_enet_chld_start(enet); in bna_enet_sm_pause_init_wait()
1015 bna_enet_sm_last_resp_wait_entry(struct bna_enet *enet) in bna_enet_sm_last_resp_wait_entry() argument
1017 enet->flags &= ~BNA_ENET_F_PAUSE_CHANGED; in bna_enet_sm_last_resp_wait_entry()
1021 bna_enet_sm_last_resp_wait(struct bna_enet *enet, in bna_enet_sm_last_resp_wait() argument
1027 bfa_fsm_set_state(enet, bna_enet_sm_stopped); in bna_enet_sm_last_resp_wait()
1036 bna_enet_sm_started_entry(struct bna_enet *enet) in bna_enet_sm_started_entry() argument
1042 call_enet_pause_cbfn(enet); in bna_enet_sm_started_entry()
1043 call_enet_mtu_cbfn(enet); in bna_enet_sm_started_entry()
1047 bna_enet_sm_started(struct bna_enet *enet, in bna_enet_sm_started() argument
1052 bfa_fsm_set_state(enet, bna_enet_sm_chld_stop_wait); in bna_enet_sm_started()
1056 bfa_fsm_set_state(enet, bna_enet_sm_stopped); in bna_enet_sm_started()
1057 bna_enet_chld_fail(enet); in bna_enet_sm_started()
1061 bfa_fsm_set_state(enet, bna_enet_sm_cfg_wait); in bna_enet_sm_started()
1062 bna_bfi_pause_set(enet); in bna_enet_sm_started()
1066 bfa_fsm_set_state(enet, bna_enet_sm_cfg_wait); in bna_enet_sm_started()
1067 bna_enet_rx_stop(enet); in bna_enet_sm_started()
1076 bna_enet_sm_cfg_wait_entry(struct bna_enet *enet) in bna_enet_sm_cfg_wait_entry() argument
1081 bna_enet_sm_cfg_wait(struct bna_enet *enet, in bna_enet_sm_cfg_wait() argument
1086 enet->flags &= ~BNA_ENET_F_PAUSE_CHANGED; in bna_enet_sm_cfg_wait()
1087 enet->flags &= ~BNA_ENET_F_MTU_CHANGED; in bna_enet_sm_cfg_wait()
1088 bfa_fsm_set_state(enet, bna_enet_sm_cfg_stop_wait); in bna_enet_sm_cfg_wait()
1092 enet->flags &= ~BNA_ENET_F_PAUSE_CHANGED; in bna_enet_sm_cfg_wait()
1093 enet->flags &= ~BNA_ENET_F_MTU_CHANGED; in bna_enet_sm_cfg_wait()
1094 bfa_fsm_set_state(enet, bna_enet_sm_stopped); in bna_enet_sm_cfg_wait()
1095 bna_enet_chld_fail(enet); in bna_enet_sm_cfg_wait()
1099 enet->flags |= BNA_ENET_F_PAUSE_CHANGED; in bna_enet_sm_cfg_wait()
1103 enet->flags |= BNA_ENET_F_MTU_CHANGED; in bna_enet_sm_cfg_wait()
1107 bna_enet_rx_start(enet); in bna_enet_sm_cfg_wait()
1110 if (enet->flags & BNA_ENET_F_PAUSE_CHANGED) { in bna_enet_sm_cfg_wait()
1111 enet->flags &= ~BNA_ENET_F_PAUSE_CHANGED; in bna_enet_sm_cfg_wait()
1112 bna_bfi_pause_set(enet); in bna_enet_sm_cfg_wait()
1113 } else if (enet->flags & BNA_ENET_F_MTU_CHANGED) { in bna_enet_sm_cfg_wait()
1114 enet->flags &= ~BNA_ENET_F_MTU_CHANGED; in bna_enet_sm_cfg_wait()
1115 bna_enet_rx_stop(enet); in bna_enet_sm_cfg_wait()
1117 bfa_fsm_set_state(enet, bna_enet_sm_started); in bna_enet_sm_cfg_wait()
1127 bna_enet_sm_cfg_stop_wait_entry(struct bna_enet *enet) in bna_enet_sm_cfg_stop_wait_entry() argument
1129 enet->flags &= ~BNA_ENET_F_PAUSE_CHANGED; in bna_enet_sm_cfg_stop_wait_entry()
1130 enet->flags &= ~BNA_ENET_F_MTU_CHANGED; in bna_enet_sm_cfg_stop_wait_entry()
1134 bna_enet_sm_cfg_stop_wait(struct bna_enet *enet, in bna_enet_sm_cfg_stop_wait() argument
1139 bfa_fsm_set_state(enet, bna_enet_sm_stopped); in bna_enet_sm_cfg_stop_wait()
1140 bna_enet_chld_fail(enet); in bna_enet_sm_cfg_stop_wait()
1145 bfa_fsm_set_state(enet, bna_enet_sm_chld_stop_wait); in bna_enet_sm_cfg_stop_wait()
1154 bna_enet_sm_chld_stop_wait_entry(struct bna_enet *enet) in bna_enet_sm_chld_stop_wait_entry() argument
1156 bna_enet_chld_stop(enet); in bna_enet_sm_chld_stop_wait_entry()
1160 bna_enet_sm_chld_stop_wait(struct bna_enet *enet, in bna_enet_sm_chld_stop_wait() argument
1165 bfa_fsm_set_state(enet, bna_enet_sm_stopped); in bna_enet_sm_chld_stop_wait()
1166 bna_enet_chld_fail(enet); in bna_enet_sm_chld_stop_wait()
1170 bfa_fsm_set_state(enet, bna_enet_sm_stopped); in bna_enet_sm_chld_stop_wait()
1179 bna_bfi_pause_set(struct bna_enet *enet) in bna_bfi_pause_set() argument
1181 struct bfi_enet_set_pause_req *pause_req = &enet->pause_req; in bna_bfi_pause_set()
1187 pause_req->tx_pause = enet->pause_config.tx_pause; in bna_bfi_pause_set()
1188 pause_req->rx_pause = enet->pause_config.rx_pause; in bna_bfi_pause_set()
1190 bfa_msgq_cmd_set(&enet->msgq_cmd, NULL, NULL, in bna_bfi_pause_set()
1192 bfa_msgq_cmd_post(&enet->bna->msgq, &enet->msgq_cmd); in bna_bfi_pause_set()
1198 struct bna_enet *enet = (struct bna_enet *)arg; in bna_enet_cb_chld_stopped() local
1200 bfa_fsm_send_event(enet, ENET_E_CHLD_STOPPED); in bna_enet_cb_chld_stopped()
1204 bna_enet_init(struct bna_enet *enet, struct bna *bna) in bna_enet_init() argument
1206 enet->bna = bna; in bna_enet_init()
1207 enet->flags = 0; in bna_enet_init()
1208 enet->mtu = 0; in bna_enet_init()
1209 enet->type = BNA_ENET_T_REGULAR; in bna_enet_init()
1211 enet->stop_cbfn = NULL; in bna_enet_init()
1212 enet->stop_cbarg = NULL; in bna_enet_init()
1214 enet->pause_cbfn = NULL; in bna_enet_init()
1216 enet->mtu_cbfn = NULL; in bna_enet_init()
1218 bfa_fsm_set_state(enet, bna_enet_sm_stopped); in bna_enet_init()
1222 bna_enet_uninit(struct bna_enet *enet) in bna_enet_uninit() argument
1224 enet->flags = 0; in bna_enet_uninit()
1226 enet->bna = NULL; in bna_enet_uninit()
1230 bna_enet_start(struct bna_enet *enet) in bna_enet_start() argument
1232 enet->flags |= BNA_ENET_F_IOCETH_READY; in bna_enet_start()
1233 if (enet->flags & BNA_ENET_F_ENABLED) in bna_enet_start()
1234 bfa_fsm_send_event(enet, ENET_E_START); in bna_enet_start()
1246 bna_enet_stop(struct bna_enet *enet) in bna_enet_stop() argument
1248 enet->stop_cbfn = bna_ioceth_cb_enet_stopped; in bna_enet_stop()
1249 enet->stop_cbarg = &enet->bna->ioceth; in bna_enet_stop()
1251 enet->flags &= ~BNA_ENET_F_IOCETH_READY; in bna_enet_stop()
1252 bfa_fsm_send_event(enet, ENET_E_STOP); in bna_enet_stop()
1256 bna_enet_fail(struct bna_enet *enet) in bna_enet_fail() argument
1258 enet->flags &= ~BNA_ENET_F_IOCETH_READY; in bna_enet_fail()
1259 bfa_fsm_send_event(enet, ENET_E_FAIL); in bna_enet_fail()
1263 bna_enet_cb_tx_stopped(struct bna_enet *enet) in bna_enet_cb_tx_stopped() argument
1265 bfa_wc_down(&enet->chld_stop_wc); in bna_enet_cb_tx_stopped()
1269 bna_enet_cb_rx_stopped(struct bna_enet *enet) in bna_enet_cb_rx_stopped() argument
1271 bfa_wc_down(&enet->chld_stop_wc); in bna_enet_cb_rx_stopped()
1275 bna_enet_mtu_get(struct bna_enet *enet) in bna_enet_mtu_get() argument
1277 return enet->mtu; in bna_enet_mtu_get()
1281 bna_enet_enable(struct bna_enet *enet) in bna_enet_enable() argument
1283 if (enet->fsm != (bfa_sm_t)bna_enet_sm_stopped) in bna_enet_enable()
1286 enet->flags |= BNA_ENET_F_ENABLED; in bna_enet_enable()
1288 if (enet->flags & BNA_ENET_F_IOCETH_READY) in bna_enet_enable()
1289 bfa_fsm_send_event(enet, ENET_E_START); in bna_enet_enable()
1293 bna_enet_disable(struct bna_enet *enet, enum bna_cleanup_type type, in bna_enet_disable() argument
1297 (*cbfn)(enet->bna->bnad); in bna_enet_disable()
1301 enet->stop_cbfn = cbfn; in bna_enet_disable()
1302 enet->stop_cbarg = enet->bna->bnad; in bna_enet_disable()
1304 enet->flags &= ~BNA_ENET_F_ENABLED; in bna_enet_disable()
1306 bfa_fsm_send_event(enet, ENET_E_STOP); in bna_enet_disable()
1310 bna_enet_pause_config(struct bna_enet *enet, in bna_enet_pause_config() argument
1314 enet->pause_config = *pause_config; in bna_enet_pause_config()
1316 enet->pause_cbfn = cbfn; in bna_enet_pause_config()
1318 bfa_fsm_send_event(enet, ENET_E_PAUSE_CFG); in bna_enet_pause_config()
1322 bna_enet_mtu_set(struct bna_enet *enet, int mtu, in bna_enet_mtu_set() argument
1325 enet->mtu = mtu; in bna_enet_mtu_set()
1327 enet->mtu_cbfn = cbfn; in bna_enet_mtu_set()
1329 bfa_fsm_send_event(enet, ENET_E_MTU_CFG); in bna_enet_mtu_set()
1333 bna_enet_perm_mac_get(struct bna_enet *enet, mac_t *mac) in bna_enet_perm_mac_get() argument
1335 *mac = bfa_nw_ioc_get_mac(&enet->bna->ioceth.ioc); in bna_enet_perm_mac_get()
1510 bna_enet_start(&ioceth->bna->enet); in bna_ioceth_sm_ready_entry()
1525 bna_enet_fail(&ioceth->bna->enet); in bna_ioceth_sm_ready()
1565 bna_enet_stop(&ioceth->bna->enet); in bna_ioceth_sm_enet_stop_wait_entry()
1576 bna_enet_fail(&ioceth->bna->enet); in bna_ioceth_sm_enet_stop_wait()
2043 bna_enet_init(&bna->enet, bna); in bna_init()
2077 bna_enet_uninit(&bna->enet); in bna_uninit()