Lines Matching refs:rx

192 	bfi_msgq_mhdr_set(req->mh, BFI_MC_ENET, req_type, 0, rxf->rx->rid);  in bna_bfi_ucast_req()
198 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_ucast_req()
208 0, rxf->rx->rid); in bna_bfi_mcast_add_req()
214 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_mcast_add_req()
224 0, rxf->rx->rid); in bna_bfi_mcast_del_req()
230 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_mcast_del_req()
239 BFI_ENET_H2I_MAC_MCAST_FILTER_REQ, 0, rxf->rx->rid); in bna_bfi_mcast_filter_req()
245 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_mcast_filter_req()
254 BFI_ENET_H2I_RX_PROMISCUOUS_REQ, 0, rxf->rx->rid); in bna_bfi_rx_promisc_req()
260 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_rx_promisc_req()
271 BFI_ENET_H2I_RX_VLAN_SET_REQ, 0, rxf->rx->rid); in bna_bfi_rx_vlan_filter_set()
285 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_rx_vlan_filter_set()
294 BFI_ENET_H2I_RX_VLAN_STRIP_ENABLE_REQ, 0, rxf->rx->rid); in bna_bfi_vlan_strip_enable()
300 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_vlan_strip_enable()
309 BFI_ENET_H2I_RIT_CFG_REQ, 0, rxf->rx->rid); in bna_bfi_rit_cfg()
316 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_rit_cfg()
326 BFI_ENET_H2I_RSS_CFG_REQ, 0, rxf->rx->rid); in bna_bfi_rss_cfg()
336 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_rss_cfg()
345 BFI_ENET_H2I_RSS_ENABLE_REQ, 0, rxf->rx->rid); in bna_bfi_rss_enable()
351 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_rss_enable()
392 mchandle = bna_mcam_mod_handle_get(&rxf->rx->bna->mcam_mod); in bna_rxf_mchandle_attach()
419 bna_mcam_mod_handle_put(&rxf->rx->bna->mcam_mod, mchandle); in bna_rxf_mcast_del()
437 list_move_tail(&mac->qe, bna_mcam_mod_del_q(rxf->rx->bna)); in bna_rxf_mcast_cfg_apply()
485 list_move_tail(&mac->qe, bna_mcam_mod_del_q(rxf->rx->bna)); in bna_rxf_mcast_cfg_reset()
569 struct bna_rx *rx = rxf->rx; in bna_rit_init() local
574 list_for_each_entry(rxp, &rx->rxp_q, qe) { in bna_rit_init()
617 struct bna_rx *rx, in bna_rxf_init() argument
621 rxf->rx = rx; in bna_rxf_init()
669 list_move_tail(&mac->qe, bna_ucam_mod_free_q(rxf->rx->bna)); in bna_rxf_uninit()
674 bna_ucam_mod_free_q(rxf->rx->bna)); in bna_rxf_uninit()
681 list_move_tail(&mac->qe, bna_mcam_mod_free_q(rxf->rx->bna)); in bna_rxf_uninit()
686 if (rxf->rx->bna->promisc_rid == rxf->rx->rid) in bna_rxf_uninit()
687 rxf->rx->bna->promisc_rid = BFI_INVALID_RID; in bna_rxf_uninit()
688 if (rxf->rx->bna->default_mode_rid == rxf->rx->rid) in bna_rxf_uninit()
689 rxf->rx->bna->default_mode_rid = BFI_INVALID_RID; in bna_rxf_uninit()
694 rxf->rx = NULL; in bna_rxf_uninit()
698 bna_rx_cb_rxf_started(struct bna_rx *rx) in bna_rx_cb_rxf_started() argument
700 bfa_fsm_send_event(rx, RX_E_RXF_STARTED); in bna_rx_cb_rxf_started()
707 rxf->start_cbarg = rxf->rx; in bna_rxf_start()
712 bna_rx_cb_rxf_stopped(struct bna_rx *rx) in bna_rx_cb_rxf_stopped() argument
714 bfa_fsm_send_event(rx, RX_E_RXF_STOPPED); in bna_rx_cb_rxf_stopped()
721 rxf->stop_cbarg = rxf->rx; in bna_rxf_stop()
732 bna_rx_ucast_set(struct bna_rx *rx, const u8 *ucmac) in bna_rx_ucast_set() argument
734 struct bna_rxf *rxf = &rx->rxf; in bna_rx_ucast_set()
738 bna_cam_mod_mac_get(bna_ucam_mod_free_q(rxf->rx->bna)); in bna_rx_ucast_set()
746 rxf->cam_fltr_cbarg = rx->bna->bnad; in bna_rx_ucast_set()
754 bna_rx_mcast_add(struct bna_rx *rx, const u8 *addr, in bna_rx_mcast_add() argument
757 struct bna_rxf *rxf = &rx->rxf; in bna_rx_mcast_add()
764 cbfn(rx->bna->bnad, rx); in bna_rx_mcast_add()
768 mac = bna_cam_mod_mac_get(bna_mcam_mod_free_q(rxf->rx->bna)); in bna_rx_mcast_add()
775 rxf->cam_fltr_cbarg = rx->bna->bnad; in bna_rx_mcast_add()
783 bna_rx_ucast_listset(struct bna_rx *rx, int count, const u8 *uclist) in bna_rx_ucast_listset() argument
785 struct bna_ucam_mod *ucam_mod = &rx->bna->ucam_mod; in bna_rx_ucast_listset()
786 struct bna_rxf *rxf = &rx->rxf; in bna_rx_ucast_listset()
841 bna_rx_mcast_listset(struct bna_rx *rx, int count, const u8 *mclist) in bna_rx_mcast_listset() argument
843 struct bna_mcam_mod *mcam_mod = &rx->bna->mcam_mod; in bna_rx_mcast_listset()
844 struct bna_rxf *rxf = &rx->rxf; in bna_rx_mcast_listset()
901 bna_rx_mcast_delall(struct bna_rx *rx) in bna_rx_mcast_delall() argument
903 struct bna_rxf *rxf = &rx->rxf; in bna_rx_mcast_delall()
911 list_move_tail(&mac->qe, bna_mcam_mod_free_q(rxf->rx->bna)); in bna_rx_mcast_delall()
919 del_mac = bna_cam_mod_mac_get(bna_mcam_mod_del_q(rxf->rx->bna)); in bna_rx_mcast_delall()
923 list_add_tail(&mac->qe, bna_mcam_mod_free_q(rxf->rx->bna)); in bna_rx_mcast_delall()
932 bna_rx_vlan_add(struct bna_rx *rx, int vlan_id) in bna_rx_vlan_add() argument
934 struct bna_rxf *rxf = &rx->rxf; in bna_rx_vlan_add()
947 bna_rx_vlan_del(struct bna_rx *rx, int vlan_id) in bna_rx_vlan_del() argument
949 struct bna_rxf *rxf = &rx->rxf; in bna_rx_vlan_del()
971 list_move_tail(&mac->qe, bna_ucam_mod_del_q(rxf->rx->bna)); in bna_rxf_ucast_cfg_apply()
1009 bna_ucam_mod_del_q(rxf->rx->bna)); in bna_rxf_ucast_cfg_reset()
1014 bna_ucam_mod_del_q(rxf->rx->bna)); in bna_rxf_ucast_cfg_reset()
1047 struct bna *bna = rxf->rx->bna; in bna_rxf_promisc_cfg_apply()
1075 struct bna *bna = rxf->rx->bna; in bna_rxf_promisc_cfg_reset()
1161 struct bna *bna = rxf->rx->bna; in bna_rxf_promisc_enable()
1177 bna->promisc_rid = rxf->rx->rid; in bna_rxf_promisc_enable()
1187 struct bna *bna = rxf->rx->bna; in bna_rxf_promisc_disable()
1278 #define call_rx_stop_cbfn(rx) \ argument
1280 if ((rx)->stop_cbfn) { \
1283 cbfn = (rx)->stop_cbfn; \
1284 cbarg = (rx)->stop_cbarg; \
1285 (rx)->stop_cbfn = NULL; \
1286 (rx)->stop_cbarg = NULL; \
1287 cbfn(cbarg, rx); \
1291 #define call_rx_stall_cbfn(rx) \ argument
1293 if ((rx)->rx_stall_cbfn) \
1294 (rx)->rx_stall_cbfn((rx)->bna->bnad, (rx)); \
1309 static void bna_bfi_rx_enet_start(struct bna_rx *rx);
1310 static void bna_rx_enet_stop(struct bna_rx *rx);
1311 static void bna_rx_mod_cb_rx_stopped(void *arg, struct bna_rx *rx);
1334 static void bna_rx_sm_stopped_entry(struct bna_rx *rx) in bna_rx_sm_stopped_entry() argument
1336 call_rx_stop_cbfn(rx); in bna_rx_sm_stopped_entry()
1339 static void bna_rx_sm_stopped(struct bna_rx *rx, in bna_rx_sm_stopped() argument
1344 bfa_fsm_set_state(rx, bna_rx_sm_start_wait); in bna_rx_sm_stopped()
1348 call_rx_stop_cbfn(rx); in bna_rx_sm_stopped()
1361 static void bna_rx_sm_start_wait_entry(struct bna_rx *rx) in bna_rx_sm_start_wait_entry() argument
1363 bna_bfi_rx_enet_start(rx); in bna_rx_sm_start_wait_entry()
1367 bna_rx_sm_stop_wait_entry(struct bna_rx *rx) in bna_rx_sm_stop_wait_entry() argument
1372 bna_rx_sm_stop_wait(struct bna_rx *rx, enum bna_rx_event event) in bna_rx_sm_stop_wait() argument
1377 bfa_fsm_set_state(rx, bna_rx_sm_cleanup_wait); in bna_rx_sm_stop_wait()
1378 rx->rx_cleanup_cbfn(rx->bna->bnad, rx); in bna_rx_sm_stop_wait()
1382 bna_rx_enet_stop(rx); in bna_rx_sm_stop_wait()
1391 static void bna_rx_sm_start_wait(struct bna_rx *rx, in bna_rx_sm_start_wait() argument
1396 bfa_fsm_set_state(rx, bna_rx_sm_start_stop_wait); in bna_rx_sm_start_wait()
1400 bfa_fsm_set_state(rx, bna_rx_sm_stopped); in bna_rx_sm_start_wait()
1404 bfa_fsm_set_state(rx, bna_rx_sm_rxf_start_wait); in bna_rx_sm_start_wait()
1413 static void bna_rx_sm_rxf_start_wait_entry(struct bna_rx *rx) in bna_rx_sm_rxf_start_wait_entry() argument
1415 rx->rx_post_cbfn(rx->bna->bnad, rx); in bna_rx_sm_rxf_start_wait_entry()
1416 bna_rxf_start(&rx->rxf); in bna_rx_sm_rxf_start_wait_entry()
1420 bna_rx_sm_rxf_stop_wait_entry(struct bna_rx *rx) in bna_rx_sm_rxf_stop_wait_entry() argument
1425 bna_rx_sm_rxf_stop_wait(struct bna_rx *rx, enum bna_rx_event event) in bna_rx_sm_rxf_stop_wait() argument
1429 bfa_fsm_set_state(rx, bna_rx_sm_cleanup_wait); in bna_rx_sm_rxf_stop_wait()
1430 bna_rxf_fail(&rx->rxf); in bna_rx_sm_rxf_stop_wait()
1431 call_rx_stall_cbfn(rx); in bna_rx_sm_rxf_stop_wait()
1432 rx->rx_cleanup_cbfn(rx->bna->bnad, rx); in bna_rx_sm_rxf_stop_wait()
1436 bna_rxf_stop(&rx->rxf); in bna_rx_sm_rxf_stop_wait()
1440 bfa_fsm_set_state(rx, bna_rx_sm_stop_wait); in bna_rx_sm_rxf_stop_wait()
1441 call_rx_stall_cbfn(rx); in bna_rx_sm_rxf_stop_wait()
1442 bna_rx_enet_stop(rx); in bna_rx_sm_rxf_stop_wait()
1453 bna_rx_sm_start_stop_wait_entry(struct bna_rx *rx) in bna_rx_sm_start_stop_wait_entry() argument
1458 bna_rx_sm_start_stop_wait(struct bna_rx *rx, enum bna_rx_event event) in bna_rx_sm_start_stop_wait() argument
1463 bfa_fsm_set_state(rx, bna_rx_sm_stopped); in bna_rx_sm_start_stop_wait()
1467 bna_rx_enet_stop(rx); in bna_rx_sm_start_stop_wait()
1476 bna_rx_sm_started_entry(struct bna_rx *rx) in bna_rx_sm_started_entry() argument
1479 int is_regular = (rx->type == BNA_RX_T_REGULAR); in bna_rx_sm_started_entry()
1482 list_for_each_entry(rxp, &rx->rxp_q, qe) in bna_rx_sm_started_entry()
1483 bna_ib_start(rx->bna, &rxp->cq.ib, is_regular); in bna_rx_sm_started_entry()
1485 bna_ethport_cb_rx_started(&rx->bna->ethport); in bna_rx_sm_started_entry()
1489 bna_rx_sm_started(struct bna_rx *rx, enum bna_rx_event event) in bna_rx_sm_started() argument
1493 bfa_fsm_set_state(rx, bna_rx_sm_rxf_stop_wait); in bna_rx_sm_started()
1494 bna_ethport_cb_rx_stopped(&rx->bna->ethport); in bna_rx_sm_started()
1495 bna_rxf_stop(&rx->rxf); in bna_rx_sm_started()
1499 bfa_fsm_set_state(rx, bna_rx_sm_failed); in bna_rx_sm_started()
1500 bna_ethport_cb_rx_stopped(&rx->bna->ethport); in bna_rx_sm_started()
1501 bna_rxf_fail(&rx->rxf); in bna_rx_sm_started()
1502 call_rx_stall_cbfn(rx); in bna_rx_sm_started()
1503 rx->rx_cleanup_cbfn(rx->bna->bnad, rx); in bna_rx_sm_started()
1512 static void bna_rx_sm_rxf_start_wait(struct bna_rx *rx, in bna_rx_sm_rxf_start_wait() argument
1517 bfa_fsm_set_state(rx, bna_rx_sm_rxf_stop_wait); in bna_rx_sm_rxf_start_wait()
1521 bfa_fsm_set_state(rx, bna_rx_sm_failed); in bna_rx_sm_rxf_start_wait()
1522 bna_rxf_fail(&rx->rxf); in bna_rx_sm_rxf_start_wait()
1523 call_rx_stall_cbfn(rx); in bna_rx_sm_rxf_start_wait()
1524 rx->rx_cleanup_cbfn(rx->bna->bnad, rx); in bna_rx_sm_rxf_start_wait()
1528 bfa_fsm_set_state(rx, bna_rx_sm_started); in bna_rx_sm_rxf_start_wait()
1538 bna_rx_sm_cleanup_wait_entry(struct bna_rx *rx) in bna_rx_sm_cleanup_wait_entry() argument
1543 bna_rx_sm_cleanup_wait(struct bna_rx *rx, enum bna_rx_event event) in bna_rx_sm_cleanup_wait() argument
1552 bfa_fsm_set_state(rx, bna_rx_sm_stopped); in bna_rx_sm_cleanup_wait()
1562 bna_rx_sm_failed_entry(struct bna_rx *rx) in bna_rx_sm_failed_entry() argument
1567 bna_rx_sm_failed(struct bna_rx *rx, enum bna_rx_event event) in bna_rx_sm_failed() argument
1571 bfa_fsm_set_state(rx, bna_rx_sm_quiesce_wait); in bna_rx_sm_failed()
1575 bfa_fsm_set_state(rx, bna_rx_sm_cleanup_wait); in bna_rx_sm_failed()
1585 bfa_fsm_set_state(rx, bna_rx_sm_stopped); in bna_rx_sm_failed()
1594 bna_rx_sm_quiesce_wait_entry(struct bna_rx *rx) in bna_rx_sm_quiesce_wait_entry() argument
1599 bna_rx_sm_quiesce_wait(struct bna_rx *rx, enum bna_rx_event event) in bna_rx_sm_quiesce_wait() argument
1603 bfa_fsm_set_state(rx, bna_rx_sm_cleanup_wait); in bna_rx_sm_quiesce_wait()
1607 bfa_fsm_set_state(rx, bna_rx_sm_failed); in bna_rx_sm_quiesce_wait()
1611 bfa_fsm_set_state(rx, bna_rx_sm_start_wait); in bna_rx_sm_quiesce_wait()
1621 bna_bfi_rx_enet_start(struct bna_rx *rx) in bna_bfi_rx_enet_start() argument
1623 struct bfi_enet_rx_cfg_req *cfg_req = &rx->bfi_enet_cmd.cfg_req; in bna_bfi_rx_enet_start()
1629 BFI_ENET_H2I_RX_CFG_SET_REQ, 0, rx->rid); in bna_bfi_rx_enet_start()
1633 cfg_req->rx_cfg.frame_size = bna_enet_mtu_get(&rx->bna->enet); in bna_bfi_rx_enet_start()
1634 cfg_req->num_queue_sets = rx->num_paths; in bna_bfi_rx_enet_start()
1635 for (i = 0; i < rx->num_paths; i++) { in bna_bfi_rx_enet_start()
1637 : list_first_entry(&rx->rxp_q, struct bna_rxp, qe); in bna_bfi_rx_enet_start()
1663 bna_enet_mtu_get(&rx->bna->enet); in bna_bfi_rx_enet_start()
1703 cfg_req->rx_cfg.hds.type = rx->hds_cfg.hdr_type; in bna_bfi_rx_enet_start()
1704 cfg_req->rx_cfg.hds.force_offset = rx->hds_cfg.forced_offset; in bna_bfi_rx_enet_start()
1705 cfg_req->rx_cfg.hds.max_header_size = rx->hds_cfg.forced_offset; in bna_bfi_rx_enet_start()
1715 cfg_req->rx_cfg.strip_vlan = rx->rxf.vlan_strip_status; in bna_bfi_rx_enet_start()
1717 bfa_msgq_cmd_set(&rx->msgq_cmd, NULL, NULL, in bna_bfi_rx_enet_start()
1719 bfa_msgq_cmd_post(&rx->bna->msgq, &rx->msgq_cmd); in bna_bfi_rx_enet_start()
1723 bna_bfi_rx_enet_stop(struct bna_rx *rx) in bna_bfi_rx_enet_stop() argument
1725 struct bfi_enet_req *req = &rx->bfi_enet_cmd.req; in bna_bfi_rx_enet_stop()
1728 BFI_ENET_H2I_RX_CFG_CLR_REQ, 0, rx->rid); in bna_bfi_rx_enet_stop()
1731 bfa_msgq_cmd_set(&rx->msgq_cmd, NULL, NULL, sizeof(struct bfi_enet_req), in bna_bfi_rx_enet_stop()
1733 bfa_msgq_cmd_post(&rx->bna->msgq, &rx->msgq_cmd); in bna_bfi_rx_enet_stop()
1737 bna_rx_enet_stop(struct bna_rx *rx) in bna_rx_enet_stop() argument
1742 list_for_each_entry(rxp, &rx->rxp_q, qe) in bna_rx_enet_stop()
1743 bna_ib_stop(rx->bna, &rxp->cq.ib); in bna_rx_enet_stop()
1745 bna_bfi_rx_enet_stop(rx); in bna_rx_enet_stop()
1810 struct bna_rx *rx = NULL; in bna_rx_get() local
1814 rx = list_first_entry(&rx_mod->rx_free_q, struct bna_rx, qe); in bna_rx_get()
1816 rx = list_last_entry(&rx_mod->rx_free_q, struct bna_rx, qe); in bna_rx_get()
1819 list_move_tail(&rx->qe, &rx_mod->rx_active_q); in bna_rx_get()
1820 rx->type = type; in bna_rx_get()
1822 return rx; in bna_rx_get()
1826 bna_rx_put(struct bna_rx_mod *rx_mod, struct bna_rx *rx) in bna_rx_put() argument
1831 if (((struct bna_rx *)qe)->rid < rx->rid) in bna_rx_put()
1834 list_add(&rx->qe, qe); in bna_rx_put()
1938 bna_rx_mod_cb_rx_stopped(void *arg, struct bna_rx *rx) in bna_rx_mod_cb_rx_stopped() argument
1956 bna_rx_start(struct bna_rx *rx) in bna_rx_start() argument
1958 rx->rx_flags |= BNA_RX_F_ENET_STARTED; in bna_rx_start()
1959 if (rx->rx_flags & BNA_RX_F_ENABLED) in bna_rx_start()
1960 bfa_fsm_send_event(rx, RX_E_START); in bna_rx_start()
1964 bna_rx_stop(struct bna_rx *rx) in bna_rx_stop() argument
1966 rx->rx_flags &= ~BNA_RX_F_ENET_STARTED; in bna_rx_stop()
1967 if (rx->fsm == (bfa_fsm_t) bna_rx_sm_stopped) in bna_rx_stop()
1968 bna_rx_mod_cb_rx_stopped(&rx->bna->rx_mod, rx); in bna_rx_stop()
1970 rx->stop_cbfn = bna_rx_mod_cb_rx_stopped; in bna_rx_stop()
1971 rx->stop_cbarg = &rx->bna->rx_mod; in bna_rx_stop()
1972 bfa_fsm_send_event(rx, RX_E_STOP); in bna_rx_stop()
1977 bna_rx_fail(struct bna_rx *rx) in bna_rx_fail() argument
1980 rx->rx_flags &= ~BNA_RX_F_ENET_STARTED; in bna_rx_fail()
1981 bfa_fsm_send_event(rx, RX_E_FAIL); in bna_rx_fail()
1987 struct bna_rx *rx; in bna_rx_mod_start() local
1993 list_for_each_entry(rx, &rx_mod->rx_active_q, qe) in bna_rx_mod_start()
1994 if (rx->type == type) in bna_rx_mod_start()
1995 bna_rx_start(rx); in bna_rx_mod_start()
2001 struct bna_rx *rx; in bna_rx_mod_stop() local
2010 list_for_each_entry(rx, &rx_mod->rx_active_q, qe) in bna_rx_mod_stop()
2011 if (rx->type == type) { in bna_rx_mod_stop()
2013 bna_rx_stop(rx); in bna_rx_mod_stop()
2022 struct bna_rx *rx; in bna_rx_mod_fail() local
2027 list_for_each_entry(rx, &rx_mod->rx_active_q, qe) in bna_rx_mod_fail()
2028 bna_rx_fail(rx); in bna_rx_mod_fail()
2042 rx_mod->rx = (struct bna_rx *) in bna_rx_mod_init()
2060 rx_ptr = &rx_mod->rx[index]; in bna_rx_mod_init()
2094 bna_bfi_rx_enet_start_rsp(struct bna_rx *rx, struct bfi_msgq_mhdr *msghdr) in bna_bfi_rx_enet_start_rsp() argument
2096 struct bfi_enet_rx_cfg_rsp *cfg_rsp = &rx->bfi_enet_cmd.cfg_rsp; in bna_bfi_rx_enet_start_rsp()
2101 bfa_msgq_rsp_copy(&rx->bna->msgq, (u8 *)cfg_rsp, in bna_bfi_rx_enet_start_rsp()
2104 rx->hw_id = cfg_rsp->hw_id; in bna_bfi_rx_enet_start_rsp()
2106 for (i = 0, rxp = list_first_entry(&rx->rxp_q, struct bna_rxp, qe); in bna_bfi_rx_enet_start_rsp()
2107 i < rx->num_paths; i++, rxp = list_next_entry(rxp, qe)) { in bna_bfi_rx_enet_start_rsp()
2112 rx->bna->pcidev.pci_bar_kva in bna_bfi_rx_enet_start_rsp()
2116 rx->bna->pcidev.pci_bar_kva in bna_bfi_rx_enet_start_rsp()
2121 rx->bna->pcidev.pci_bar_kva in bna_bfi_rx_enet_start_rsp()
2134 bfa_fsm_send_event(rx, RX_E_STARTED); in bna_bfi_rx_enet_start_rsp()
2138 bna_bfi_rx_enet_stop_rsp(struct bna_rx *rx, struct bfi_msgq_mhdr *msghdr) in bna_bfi_rx_enet_stop_rsp() argument
2140 bfa_fsm_send_event(rx, RX_E_STOPPED); in bna_bfi_rx_enet_stop_rsp()
2265 struct bna_rx *rx; in bna_rx_create() local
2315 rx = bna_rx_get(rx_mod, rx_cfg->rx_type); in bna_rx_create()
2316 rx->bna = bna; in bna_rx_create()
2317 rx->rx_flags = 0; in bna_rx_create()
2318 INIT_LIST_HEAD(&rx->rxp_q); in bna_rx_create()
2319 rx->stop_cbfn = NULL; in bna_rx_create()
2320 rx->stop_cbarg = NULL; in bna_rx_create()
2321 rx->priv = priv; in bna_rx_create()
2323 rx->rcb_setup_cbfn = rx_cbfn->rcb_setup_cbfn; in bna_rx_create()
2324 rx->rcb_destroy_cbfn = rx_cbfn->rcb_destroy_cbfn; in bna_rx_create()
2325 rx->ccb_setup_cbfn = rx_cbfn->ccb_setup_cbfn; in bna_rx_create()
2326 rx->ccb_destroy_cbfn = rx_cbfn->ccb_destroy_cbfn; in bna_rx_create()
2327 rx->rx_stall_cbfn = rx_cbfn->rx_stall_cbfn; in bna_rx_create()
2329 rx->rx_cleanup_cbfn = rx_cbfn->rx_cleanup_cbfn; in bna_rx_create()
2330 rx->rx_post_cbfn = rx_cbfn->rx_post_cbfn; in bna_rx_create()
2332 if (rx->bna->rx_mod.flags & BNA_RX_MOD_F_ENET_STARTED) { in bna_rx_create()
2333 switch (rx->type) { in bna_rx_create()
2335 if (!(rx->bna->rx_mod.flags & in bna_rx_create()
2337 rx->rx_flags |= BNA_RX_F_ENET_STARTED; in bna_rx_create()
2340 if (rx->bna->rx_mod.flags & BNA_RX_MOD_F_ENET_LOOPBACK) in bna_rx_create()
2341 rx->rx_flags |= BNA_RX_F_ENET_STARTED; in bna_rx_create()
2346 rx->num_paths = rx_cfg->num_paths; in bna_rx_create()
2348 i < rx->num_paths; i++) { in bna_rx_create()
2350 list_add_tail(&rxp->qe, &rx->rxp_q); in bna_rx_create()
2352 rxp->rx = rx; in bna_rx_create()
2353 rxp->cq.rx = rx; in bna_rx_create()
2387 q0->rx = rx; in bna_rx_create()
2408 if (rx->rcb_setup_cbfn) in bna_rx_create()
2409 rx->rcb_setup_cbfn(bnad, q0->rcb); in bna_rx_create()
2414 q1->rx = rx; in bna_rx_create()
2438 if (rx->rcb_setup_cbfn) in bna_rx_create()
2439 rx->rcb_setup_cbfn(bnad, q1->rcb); in bna_rx_create()
2475 if (rx->ccb_setup_cbfn) in bna_rx_create()
2476 rx->ccb_setup_cbfn(bnad, rxp->cq.ccb); in bna_rx_create()
2479 rx->hds_cfg = rx_cfg->hds_config; in bna_rx_create()
2481 bna_rxf_init(&rx->rxf, rx, rx_cfg, res_info); in bna_rx_create()
2483 bfa_fsm_set_state(rx, bna_rx_sm_stopped); in bna_rx_create()
2485 rx_mod->rid_mask |= BIT(rx->rid); in bna_rx_create()
2487 return rx; in bna_rx_create()
2491 bna_rx_destroy(struct bna_rx *rx) in bna_rx_destroy() argument
2493 struct bna_rx_mod *rx_mod = &rx->bna->rx_mod; in bna_rx_destroy()
2499 bna_rxf_uninit(&rx->rxf); in bna_rx_destroy()
2501 while (!list_empty(&rx->rxp_q)) { in bna_rx_destroy()
2502 rxp = list_first_entry(&rx->rxp_q, struct bna_rxp, qe); in bna_rx_destroy()
2505 if (rx->rcb_destroy_cbfn) in bna_rx_destroy()
2506 rx->rcb_destroy_cbfn(rx->bna->bnad, q0->rcb); in bna_rx_destroy()
2509 q0->rx = NULL; in bna_rx_destroy()
2513 if (rx->rcb_destroy_cbfn) in bna_rx_destroy()
2514 rx->rcb_destroy_cbfn(rx->bna->bnad, q1->rcb); in bna_rx_destroy()
2517 q1->rx = NULL; in bna_rx_destroy()
2523 if (rx->ccb_destroy_cbfn) in bna_rx_destroy()
2524 rx->ccb_destroy_cbfn(rx->bna->bnad, rxp->cq.ccb); in bna_rx_destroy()
2526 rxp->rx = NULL; in bna_rx_destroy()
2531 if (qe == &rx->qe) { in bna_rx_destroy()
2532 list_del(&rx->qe); in bna_rx_destroy()
2536 rx_mod->rid_mask &= ~BIT(rx->rid); in bna_rx_destroy()
2538 rx->bna = NULL; in bna_rx_destroy()
2539 rx->priv = NULL; in bna_rx_destroy()
2540 bna_rx_put(rx_mod, rx); in bna_rx_destroy()
2544 bna_rx_enable(struct bna_rx *rx) in bna_rx_enable() argument
2546 if (rx->fsm != (bfa_sm_t)bna_rx_sm_stopped) in bna_rx_enable()
2549 rx->rx_flags |= BNA_RX_F_ENABLED; in bna_rx_enable()
2550 if (rx->rx_flags & BNA_RX_F_ENET_STARTED) in bna_rx_enable()
2551 bfa_fsm_send_event(rx, RX_E_START); in bna_rx_enable()
2555 bna_rx_disable(struct bna_rx *rx, enum bna_cleanup_type type, in bna_rx_disable() argument
2560 (*cbfn)(rx->bna->bnad, rx); in bna_rx_disable()
2562 rx->stop_cbfn = cbfn; in bna_rx_disable()
2563 rx->stop_cbarg = rx->bna->bnad; in bna_rx_disable()
2565 rx->rx_flags &= ~BNA_RX_F_ENABLED; in bna_rx_disable()
2567 bfa_fsm_send_event(rx, RX_E_STOP); in bna_rx_disable()
2572 bna_rx_cleanup_complete(struct bna_rx *rx) in bna_rx_cleanup_complete() argument
2574 bfa_fsm_send_event(rx, RX_E_CLEANUP_DONE); in bna_rx_cleanup_complete()
2578 bna_rx_vlan_strip_enable(struct bna_rx *rx) in bna_rx_vlan_strip_enable() argument
2580 struct bna_rxf *rxf = &rx->rxf; in bna_rx_vlan_strip_enable()
2590 bna_rx_vlan_strip_disable(struct bna_rx *rx) in bna_rx_vlan_strip_disable() argument
2592 struct bna_rxf *rxf = &rx->rxf; in bna_rx_vlan_strip_disable()
2602 bna_rx_mode_set(struct bna_rx *rx, enum bna_rxmode new_mode, in bna_rx_mode_set() argument
2605 struct bna_rxf *rxf = &rx->rxf; in bna_rx_mode_set()
2612 if ((rx->bna->promisc_rid != BFI_INVALID_RID) && in bna_rx_mode_set()
2613 (rx->bna->promisc_rid != rxf->rx->rid)) in bna_rx_mode_set()
2617 if (rx->bna->default_mode_rid != BFI_INVALID_RID) in bna_rx_mode_set()
2627 if ((rx->bna->default_mode_rid != BFI_INVALID_RID) && in bna_rx_mode_set()
2628 (rx->bna->default_mode_rid != rxf->rx->rid)) { in bna_rx_mode_set()
2633 if (rx->bna->promisc_rid != BFI_INVALID_RID) in bna_rx_mode_set()
2659 rxf->cam_fltr_cbarg = rx->bna->bnad; in bna_rx_mode_set()
2670 bna_rx_vlanfilter_enable(struct bna_rx *rx) in bna_rx_vlanfilter_enable() argument
2672 struct bna_rxf *rxf = &rx->rxf; in bna_rx_vlanfilter_enable()
2682 bna_rx_coalescing_timeo_set(struct bna_rx *rx, int coalescing_timeo) in bna_rx_coalescing_timeo_set() argument
2686 list_for_each_entry(rxp, &rx->rxp_q, qe) { in bna_rx_coalescing_timeo_set()
2705 struct bna *bna = ccb->cq->rx->bna; in bna_rx_dim_update()