Lines Matching refs:rx

283 	bfi_msgq_mhdr_set(req->mh, BFI_MC_ENET, req_type, 0, rxf->rx->rid);  in bna_bfi_ucast_req()
289 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_ucast_req()
299 0, rxf->rx->rid); in bna_bfi_mcast_add_req()
305 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_mcast_add_req()
315 0, rxf->rx->rid); in bna_bfi_mcast_del_req()
321 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_mcast_del_req()
330 BFI_ENET_H2I_MAC_MCAST_FILTER_REQ, 0, rxf->rx->rid); in bna_bfi_mcast_filter_req()
336 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_mcast_filter_req()
345 BFI_ENET_H2I_RX_PROMISCUOUS_REQ, 0, rxf->rx->rid); in bna_bfi_rx_promisc_req()
351 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_rx_promisc_req()
362 BFI_ENET_H2I_RX_VLAN_SET_REQ, 0, rxf->rx->rid); in bna_bfi_rx_vlan_filter_set()
376 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_rx_vlan_filter_set()
385 BFI_ENET_H2I_RX_VLAN_STRIP_ENABLE_REQ, 0, rxf->rx->rid); in bna_bfi_vlan_strip_enable()
391 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_vlan_strip_enable()
400 BFI_ENET_H2I_RIT_CFG_REQ, 0, rxf->rx->rid); in bna_bfi_rit_cfg()
407 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_rit_cfg()
417 BFI_ENET_H2I_RSS_CFG_REQ, 0, rxf->rx->rid); in bna_bfi_rss_cfg()
427 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_rss_cfg()
436 BFI_ENET_H2I_RSS_ENABLE_REQ, 0, rxf->rx->rid); in bna_bfi_rss_enable()
442 bfa_msgq_cmd_post(&rxf->rx->bna->msgq, &rxf->msgq_cmd); in bna_bfi_rss_enable()
491 mchandle = bna_mcam_mod_handle_get(&rxf->rx->bna->mcam_mod); in bna_rxf_mchandle_attach()
519 bna_mcam_mod_handle_put(&rxf->rx->bna->mcam_mod, mchandle); in bna_rxf_mcast_del()
539 bna_cam_mod_mac_put(bna_mcam_mod_del_q(rxf->rx->bna), mac); in bna_rxf_mcast_cfg_apply()
590 bna_cam_mod_mac_put(bna_mcam_mod_del_q(rxf->rx->bna), mac); in bna_rxf_mcast_cfg_reset()
694 struct bna_rx *rx = rxf->rx; in bna_rit_init() local
700 list_for_each(qe, &rx->rxp_q) { in bna_rit_init()
745 struct bna_rx *rx, in bna_rxf_init() argument
749 rxf->rx = rx; in bna_rxf_init()
800 bna_cam_mod_mac_put(bna_ucam_mod_free_q(rxf->rx->bna), mac); in bna_rxf_uninit()
805 bna_cam_mod_mac_put(bna_ucam_mod_free_q(rxf->rx->bna), in bna_rxf_uninit()
813 bna_cam_mod_mac_put(bna_mcam_mod_free_q(rxf->rx->bna), mac); in bna_rxf_uninit()
818 if (rxf->rx->bna->promisc_rid == rxf->rx->rid) in bna_rxf_uninit()
819 rxf->rx->bna->promisc_rid = BFI_INVALID_RID; in bna_rxf_uninit()
820 if (rxf->rx->bna->default_mode_rid == rxf->rx->rid) in bna_rxf_uninit()
821 rxf->rx->bna->default_mode_rid = BFI_INVALID_RID; in bna_rxf_uninit()
828 rxf->rx = NULL; in bna_rxf_uninit()
832 bna_rx_cb_rxf_started(struct bna_rx *rx) in bna_rx_cb_rxf_started() argument
834 bfa_fsm_send_event(rx, RX_E_RXF_STARTED); in bna_rx_cb_rxf_started()
841 rxf->start_cbarg = rxf->rx; in bna_rxf_start()
846 bna_rx_cb_rxf_stopped(struct bna_rx *rx) in bna_rx_cb_rxf_stopped() argument
848 bfa_fsm_send_event(rx, RX_E_RXF_STOPPED); in bna_rx_cb_rxf_stopped()
855 rxf->stop_cbarg = rxf->rx; in bna_rxf_stop()
866 bna_rx_ucast_set(struct bna_rx *rx, u8 *ucmac, in bna_rx_ucast_set() argument
869 struct bna_rxf *rxf = &rx->rxf; in bna_rx_ucast_set()
873 bna_cam_mod_mac_get(bna_ucam_mod_free_q(rxf->rx->bna)); in bna_rx_ucast_set()
882 rxf->cam_fltr_cbarg = rx->bna->bnad; in bna_rx_ucast_set()
890 bna_rx_mcast_add(struct bna_rx *rx, u8 *addr, in bna_rx_mcast_add() argument
893 struct bna_rxf *rxf = &rx->rxf; in bna_rx_mcast_add()
900 cbfn(rx->bna->bnad, rx); in bna_rx_mcast_add()
904 mac = bna_cam_mod_mac_get(bna_mcam_mod_free_q(rxf->rx->bna)); in bna_rx_mcast_add()
912 rxf->cam_fltr_cbarg = rx->bna->bnad; in bna_rx_mcast_add()
920 bna_rx_ucast_listset(struct bna_rx *rx, int count, u8 *uclist, in bna_rx_ucast_listset() argument
923 struct bna_ucam_mod *ucam_mod = &rx->bna->ucam_mod; in bna_rx_ucast_listset()
924 struct bna_rxf *rxf = &rx->rxf; in bna_rx_ucast_listset()
972 rxf->cam_fltr_cbarg = rx->bna->bnad; in bna_rx_ucast_listset()
989 bna_rx_mcast_listset(struct bna_rx *rx, int count, u8 *mclist, in bna_rx_mcast_listset() argument
992 struct bna_mcam_mod *mcam_mod = &rx->bna->mcam_mod; in bna_rx_mcast_listset()
993 struct bna_rxf *rxf = &rx->rxf; in bna_rx_mcast_listset()
1044 rxf->cam_fltr_cbarg = rx->bna->bnad; in bna_rx_mcast_listset()
1061 bna_rx_mcast_delall(struct bna_rx *rx, in bna_rx_mcast_delall() argument
1064 struct bna_rxf *rxf = &rx->rxf; in bna_rx_mcast_delall()
1074 bna_cam_mod_mac_put(bna_mcam_mod_free_q(rxf->rx->bna), mac); in bna_rx_mcast_delall()
1083 del_mac = bna_cam_mod_mac_get(bna_mcam_mod_del_q(rxf->rx->bna)); in bna_rx_mcast_delall()
1088 bna_cam_mod_mac_put(bna_mcam_mod_free_q(rxf->rx->bna), mac); in bna_rx_mcast_delall()
1094 rxf->cam_fltr_cbarg = rx->bna->bnad; in bna_rx_mcast_delall()
1100 (*cbfn)(rx->bna->bnad, rx); in bna_rx_mcast_delall()
1104 bna_rx_vlan_add(struct bna_rx *rx, int vlan_id) in bna_rx_vlan_add() argument
1106 struct bna_rxf *rxf = &rx->rxf; in bna_rx_vlan_add()
1119 bna_rx_vlan_del(struct bna_rx *rx, int vlan_id) in bna_rx_vlan_del() argument
1121 struct bna_rxf *rxf = &rx->rxf; in bna_rx_vlan_del()
1145 bna_cam_mod_mac_put(bna_ucam_mod_del_q(rxf->rx->bna), mac); in bna_rxf_ucast_cfg_apply()
1185 bna_cam_mod_mac_put(bna_ucam_mod_del_q(rxf->rx->bna), in bna_rxf_ucast_cfg_reset()
1190 bna_cam_mod_mac_put(bna_ucam_mod_del_q(rxf->rx->bna), in bna_rxf_ucast_cfg_reset()
1225 struct bna *bna = rxf->rx->bna; in bna_rxf_promisc_cfg_apply()
1253 struct bna *bna = rxf->rx->bna; in bna_rxf_promisc_cfg_reset()
1339 struct bna *bna = rxf->rx->bna; in bna_rxf_promisc_enable()
1355 bna->promisc_rid = rxf->rx->rid; in bna_rxf_promisc_enable()
1365 struct bna *bna = rxf->rx->bna; in bna_rxf_promisc_disable()
1456 #define call_rx_stop_cbfn(rx) \ argument
1458 if ((rx)->stop_cbfn) { \
1461 cbfn = (rx)->stop_cbfn; \
1462 cbarg = (rx)->stop_cbarg; \
1463 (rx)->stop_cbfn = NULL; \
1464 (rx)->stop_cbarg = NULL; \
1465 cbfn(cbarg, rx); \
1469 #define call_rx_stall_cbfn(rx) \ argument
1471 if ((rx)->rx_stall_cbfn) \
1472 (rx)->rx_stall_cbfn((rx)->bna->bnad, (rx)); \
1487 static void bna_bfi_rx_enet_start(struct bna_rx *rx);
1488 static void bna_rx_enet_stop(struct bna_rx *rx);
1489 static void bna_rx_mod_cb_rx_stopped(void *arg, struct bna_rx *rx);
1512 static void bna_rx_sm_stopped_entry(struct bna_rx *rx) in bna_rx_sm_stopped_entry() argument
1514 call_rx_stop_cbfn(rx); in bna_rx_sm_stopped_entry()
1517 static void bna_rx_sm_stopped(struct bna_rx *rx, in bna_rx_sm_stopped() argument
1522 bfa_fsm_set_state(rx, bna_rx_sm_start_wait); in bna_rx_sm_stopped()
1526 call_rx_stop_cbfn(rx); in bna_rx_sm_stopped()
1539 static void bna_rx_sm_start_wait_entry(struct bna_rx *rx) in bna_rx_sm_start_wait_entry() argument
1541 bna_bfi_rx_enet_start(rx); in bna_rx_sm_start_wait_entry()
1545 bna_rx_sm_stop_wait_entry(struct bna_rx *rx) in bna_rx_sm_stop_wait_entry() argument
1550 bna_rx_sm_stop_wait(struct bna_rx *rx, enum bna_rx_event event) in bna_rx_sm_stop_wait() argument
1555 bfa_fsm_set_state(rx, bna_rx_sm_cleanup_wait); in bna_rx_sm_stop_wait()
1556 rx->rx_cleanup_cbfn(rx->bna->bnad, rx); in bna_rx_sm_stop_wait()
1560 bna_rx_enet_stop(rx); in bna_rx_sm_stop_wait()
1569 static void bna_rx_sm_start_wait(struct bna_rx *rx, in bna_rx_sm_start_wait() argument
1574 bfa_fsm_set_state(rx, bna_rx_sm_start_stop_wait); in bna_rx_sm_start_wait()
1578 bfa_fsm_set_state(rx, bna_rx_sm_stopped); in bna_rx_sm_start_wait()
1582 bfa_fsm_set_state(rx, bna_rx_sm_rxf_start_wait); in bna_rx_sm_start_wait()
1591 static void bna_rx_sm_rxf_start_wait_entry(struct bna_rx *rx) in bna_rx_sm_rxf_start_wait_entry() argument
1593 rx->rx_post_cbfn(rx->bna->bnad, rx); in bna_rx_sm_rxf_start_wait_entry()
1594 bna_rxf_start(&rx->rxf); in bna_rx_sm_rxf_start_wait_entry()
1598 bna_rx_sm_rxf_stop_wait_entry(struct bna_rx *rx) in bna_rx_sm_rxf_stop_wait_entry() argument
1603 bna_rx_sm_rxf_stop_wait(struct bna_rx *rx, enum bna_rx_event event) in bna_rx_sm_rxf_stop_wait() argument
1607 bfa_fsm_set_state(rx, bna_rx_sm_cleanup_wait); in bna_rx_sm_rxf_stop_wait()
1608 bna_rxf_fail(&rx->rxf); in bna_rx_sm_rxf_stop_wait()
1609 call_rx_stall_cbfn(rx); in bna_rx_sm_rxf_stop_wait()
1610 rx->rx_cleanup_cbfn(rx->bna->bnad, rx); in bna_rx_sm_rxf_stop_wait()
1614 bna_rxf_stop(&rx->rxf); in bna_rx_sm_rxf_stop_wait()
1618 bfa_fsm_set_state(rx, bna_rx_sm_stop_wait); in bna_rx_sm_rxf_stop_wait()
1619 call_rx_stall_cbfn(rx); in bna_rx_sm_rxf_stop_wait()
1620 bna_rx_enet_stop(rx); in bna_rx_sm_rxf_stop_wait()
1631 bna_rx_sm_start_stop_wait_entry(struct bna_rx *rx) in bna_rx_sm_start_stop_wait_entry() argument
1636 bna_rx_sm_start_stop_wait(struct bna_rx *rx, enum bna_rx_event event) in bna_rx_sm_start_stop_wait() argument
1641 bfa_fsm_set_state(rx, bna_rx_sm_stopped); in bna_rx_sm_start_stop_wait()
1645 bna_rx_enet_stop(rx); in bna_rx_sm_start_stop_wait()
1654 bna_rx_sm_started_entry(struct bna_rx *rx) in bna_rx_sm_started_entry() argument
1658 int is_regular = (rx->type == BNA_RX_T_REGULAR); in bna_rx_sm_started_entry()
1661 list_for_each(qe_rxp, &rx->rxp_q) { in bna_rx_sm_started_entry()
1663 bna_ib_start(rx->bna, &rxp->cq.ib, is_regular); in bna_rx_sm_started_entry()
1666 bna_ethport_cb_rx_started(&rx->bna->ethport); in bna_rx_sm_started_entry()
1670 bna_rx_sm_started(struct bna_rx *rx, enum bna_rx_event event) in bna_rx_sm_started() argument
1674 bfa_fsm_set_state(rx, bna_rx_sm_rxf_stop_wait); in bna_rx_sm_started()
1675 bna_ethport_cb_rx_stopped(&rx->bna->ethport); in bna_rx_sm_started()
1676 bna_rxf_stop(&rx->rxf); in bna_rx_sm_started()
1680 bfa_fsm_set_state(rx, bna_rx_sm_failed); in bna_rx_sm_started()
1681 bna_ethport_cb_rx_stopped(&rx->bna->ethport); in bna_rx_sm_started()
1682 bna_rxf_fail(&rx->rxf); in bna_rx_sm_started()
1683 call_rx_stall_cbfn(rx); in bna_rx_sm_started()
1684 rx->rx_cleanup_cbfn(rx->bna->bnad, rx); in bna_rx_sm_started()
1693 static void bna_rx_sm_rxf_start_wait(struct bna_rx *rx, in bna_rx_sm_rxf_start_wait() argument
1698 bfa_fsm_set_state(rx, bna_rx_sm_rxf_stop_wait); in bna_rx_sm_rxf_start_wait()
1702 bfa_fsm_set_state(rx, bna_rx_sm_failed); in bna_rx_sm_rxf_start_wait()
1703 bna_rxf_fail(&rx->rxf); in bna_rx_sm_rxf_start_wait()
1704 call_rx_stall_cbfn(rx); in bna_rx_sm_rxf_start_wait()
1705 rx->rx_cleanup_cbfn(rx->bna->bnad, rx); in bna_rx_sm_rxf_start_wait()
1709 bfa_fsm_set_state(rx, bna_rx_sm_started); in bna_rx_sm_rxf_start_wait()
1719 bna_rx_sm_cleanup_wait_entry(struct bna_rx *rx) in bna_rx_sm_cleanup_wait_entry() argument
1724 bna_rx_sm_cleanup_wait(struct bna_rx *rx, enum bna_rx_event event) in bna_rx_sm_cleanup_wait() argument
1733 bfa_fsm_set_state(rx, bna_rx_sm_stopped); in bna_rx_sm_cleanup_wait()
1743 bna_rx_sm_failed_entry(struct bna_rx *rx) in bna_rx_sm_failed_entry() argument
1748 bna_rx_sm_failed(struct bna_rx *rx, enum bna_rx_event event) in bna_rx_sm_failed() argument
1752 bfa_fsm_set_state(rx, bna_rx_sm_quiesce_wait); in bna_rx_sm_failed()
1756 bfa_fsm_set_state(rx, bna_rx_sm_cleanup_wait); in bna_rx_sm_failed()
1766 bfa_fsm_set_state(rx, bna_rx_sm_stopped); in bna_rx_sm_failed()
1775 bna_rx_sm_quiesce_wait_entry(struct bna_rx *rx) in bna_rx_sm_quiesce_wait_entry() argument
1780 bna_rx_sm_quiesce_wait(struct bna_rx *rx, enum bna_rx_event event) in bna_rx_sm_quiesce_wait() argument
1784 bfa_fsm_set_state(rx, bna_rx_sm_cleanup_wait); in bna_rx_sm_quiesce_wait()
1788 bfa_fsm_set_state(rx, bna_rx_sm_failed); in bna_rx_sm_quiesce_wait()
1792 bfa_fsm_set_state(rx, bna_rx_sm_start_wait); in bna_rx_sm_quiesce_wait()
1802 bna_bfi_rx_enet_start(struct bna_rx *rx) in bna_bfi_rx_enet_start() argument
1804 struct bfi_enet_rx_cfg_req *cfg_req = &rx->bfi_enet_cmd.cfg_req; in bna_bfi_rx_enet_start()
1811 BFI_ENET_H2I_RX_CFG_SET_REQ, 0, rx->rid); in bna_bfi_rx_enet_start()
1815 cfg_req->rx_cfg.frame_size = bna_enet_mtu_get(&rx->bna->enet); in bna_bfi_rx_enet_start()
1816 cfg_req->num_queue_sets = rx->num_paths; in bna_bfi_rx_enet_start()
1817 for (i = 0, rxp_qe = bfa_q_first(&rx->rxp_q); in bna_bfi_rx_enet_start()
1818 i < rx->num_paths; in bna_bfi_rx_enet_start()
1847 bna_enet_mtu_get(&rx->bna->enet); in bna_bfi_rx_enet_start()
1887 cfg_req->rx_cfg.hds.type = rx->hds_cfg.hdr_type; in bna_bfi_rx_enet_start()
1888 cfg_req->rx_cfg.hds.force_offset = rx->hds_cfg.forced_offset; in bna_bfi_rx_enet_start()
1889 cfg_req->rx_cfg.hds.max_header_size = rx->hds_cfg.forced_offset; in bna_bfi_rx_enet_start()
1899 cfg_req->rx_cfg.strip_vlan = rx->rxf.vlan_strip_status; in bna_bfi_rx_enet_start()
1901 bfa_msgq_cmd_set(&rx->msgq_cmd, NULL, NULL, in bna_bfi_rx_enet_start()
1903 bfa_msgq_cmd_post(&rx->bna->msgq, &rx->msgq_cmd); in bna_bfi_rx_enet_start()
1907 bna_bfi_rx_enet_stop(struct bna_rx *rx) in bna_bfi_rx_enet_stop() argument
1909 struct bfi_enet_req *req = &rx->bfi_enet_cmd.req; in bna_bfi_rx_enet_stop()
1912 BFI_ENET_H2I_RX_CFG_CLR_REQ, 0, rx->rid); in bna_bfi_rx_enet_stop()
1915 bfa_msgq_cmd_set(&rx->msgq_cmd, NULL, NULL, sizeof(struct bfi_enet_req), in bna_bfi_rx_enet_stop()
1917 bfa_msgq_cmd_post(&rx->bna->msgq, &rx->msgq_cmd); in bna_bfi_rx_enet_stop()
1921 bna_rx_enet_stop(struct bna_rx *rx) in bna_rx_enet_stop() argument
1927 list_for_each(qe_rxp, &rx->rxp_q) { in bna_rx_enet_stop()
1929 bna_ib_stop(rx->bna, &rxp->cq.ib); in bna_rx_enet_stop()
1932 bna_bfi_rx_enet_stop(rx); in bna_rx_enet_stop()
2004 struct bna_rx *rx = NULL; in bna_rx_get() local
2012 rx = (struct bna_rx *)qe; in bna_rx_get()
2013 bfa_q_qe_init(&rx->qe); in bna_rx_get()
2014 list_add_tail(&rx->qe, &rx_mod->rx_active_q); in bna_rx_get()
2015 rx->type = type; in bna_rx_get()
2017 return rx; in bna_rx_get()
2021 bna_rx_put(struct bna_rx_mod *rx_mod, struct bna_rx *rx) in bna_rx_put() argument
2026 bfa_q_qe_init(&rx->qe); in bna_rx_put()
2029 if (((struct bna_rx *)qe)->rid < rx->rid) in bna_rx_put()
2037 bfa_q_enq_head(&rx_mod->rx_free_q, &rx->qe); in bna_rx_put()
2040 list_add_tail(&rx->qe, &rx_mod->rx_free_q); in bna_rx_put()
2043 bfa_q_next(&rx->qe) = bfa_q_next(prev_qe); in bna_rx_put()
2044 bfa_q_prev(&rx->qe) = prev_qe; in bna_rx_put()
2045 bfa_q_next(prev_qe) = &rx->qe; in bna_rx_put()
2046 bfa_q_prev(bfa_q_next(&rx->qe)) = &rx->qe; in bna_rx_put()
2152 bna_rx_mod_cb_rx_stopped(void *arg, struct bna_rx *rx) in bna_rx_mod_cb_rx_stopped() argument
2170 bna_rx_start(struct bna_rx *rx) in bna_rx_start() argument
2172 rx->rx_flags |= BNA_RX_F_ENET_STARTED; in bna_rx_start()
2173 if (rx->rx_flags & BNA_RX_F_ENABLED) in bna_rx_start()
2174 bfa_fsm_send_event(rx, RX_E_START); in bna_rx_start()
2178 bna_rx_stop(struct bna_rx *rx) in bna_rx_stop() argument
2180 rx->rx_flags &= ~BNA_RX_F_ENET_STARTED; in bna_rx_stop()
2181 if (rx->fsm == (bfa_fsm_t) bna_rx_sm_stopped) in bna_rx_stop()
2182 bna_rx_mod_cb_rx_stopped(&rx->bna->rx_mod, rx); in bna_rx_stop()
2184 rx->stop_cbfn = bna_rx_mod_cb_rx_stopped; in bna_rx_stop()
2185 rx->stop_cbarg = &rx->bna->rx_mod; in bna_rx_stop()
2186 bfa_fsm_send_event(rx, RX_E_STOP); in bna_rx_stop()
2191 bna_rx_fail(struct bna_rx *rx) in bna_rx_fail() argument
2194 rx->rx_flags &= ~BNA_RX_F_ENET_STARTED; in bna_rx_fail()
2195 bfa_fsm_send_event(rx, RX_E_FAIL); in bna_rx_fail()
2201 struct bna_rx *rx; in bna_rx_mod_start() local
2209 rx = (struct bna_rx *)qe; in bna_rx_mod_start()
2210 if (rx->type == type) in bna_rx_mod_start()
2211 bna_rx_start(rx); in bna_rx_mod_start()
2218 struct bna_rx *rx; in bna_rx_mod_stop() local
2229 rx = (struct bna_rx *)qe; in bna_rx_mod_stop()
2230 if (rx->type == type) { in bna_rx_mod_stop()
2232 bna_rx_stop(rx); in bna_rx_mod_stop()
2242 struct bna_rx *rx; in bna_rx_mod_fail() local
2249 rx = (struct bna_rx *)qe; in bna_rx_mod_fail()
2250 bna_rx_fail(rx); in bna_rx_mod_fail()
2265 rx_mod->rx = (struct bna_rx *) in bna_rx_mod_init()
2283 rx_ptr = &rx_mod->rx[index]; in bna_rx_mod_init()
2335 bna_bfi_rx_enet_start_rsp(struct bna_rx *rx, struct bfi_msgq_mhdr *msghdr) in bna_bfi_rx_enet_start_rsp() argument
2337 struct bfi_enet_rx_cfg_rsp *cfg_rsp = &rx->bfi_enet_cmd.cfg_rsp; in bna_bfi_rx_enet_start_rsp()
2343 bfa_msgq_rsp_copy(&rx->bna->msgq, (u8 *)cfg_rsp, in bna_bfi_rx_enet_start_rsp()
2346 rx->hw_id = cfg_rsp->hw_id; in bna_bfi_rx_enet_start_rsp()
2348 for (i = 0, rxp_qe = bfa_q_first(&rx->rxp_q); in bna_bfi_rx_enet_start_rsp()
2349 i < rx->num_paths; in bna_bfi_rx_enet_start_rsp()
2356 rx->bna->pcidev.pci_bar_kva in bna_bfi_rx_enet_start_rsp()
2360 rx->bna->pcidev.pci_bar_kva in bna_bfi_rx_enet_start_rsp()
2365 rx->bna->pcidev.pci_bar_kva in bna_bfi_rx_enet_start_rsp()
2378 bfa_fsm_send_event(rx, RX_E_STARTED); in bna_bfi_rx_enet_start_rsp()
2382 bna_bfi_rx_enet_stop_rsp(struct bna_rx *rx, struct bfi_msgq_mhdr *msghdr) in bna_bfi_rx_enet_stop_rsp() argument
2384 bfa_fsm_send_event(rx, RX_E_STOPPED); in bna_bfi_rx_enet_stop_rsp()
2510 struct bna_rx *rx; in bna_rx_create() local
2560 rx = bna_rx_get(rx_mod, rx_cfg->rx_type); in bna_rx_create()
2561 rx->bna = bna; in bna_rx_create()
2562 rx->rx_flags = 0; in bna_rx_create()
2563 INIT_LIST_HEAD(&rx->rxp_q); in bna_rx_create()
2564 rx->stop_cbfn = NULL; in bna_rx_create()
2565 rx->stop_cbarg = NULL; in bna_rx_create()
2566 rx->priv = priv; in bna_rx_create()
2568 rx->rcb_setup_cbfn = rx_cbfn->rcb_setup_cbfn; in bna_rx_create()
2569 rx->rcb_destroy_cbfn = rx_cbfn->rcb_destroy_cbfn; in bna_rx_create()
2570 rx->ccb_setup_cbfn = rx_cbfn->ccb_setup_cbfn; in bna_rx_create()
2571 rx->ccb_destroy_cbfn = rx_cbfn->ccb_destroy_cbfn; in bna_rx_create()
2572 rx->rx_stall_cbfn = rx_cbfn->rx_stall_cbfn; in bna_rx_create()
2574 rx->rx_cleanup_cbfn = rx_cbfn->rx_cleanup_cbfn; in bna_rx_create()
2575 rx->rx_post_cbfn = rx_cbfn->rx_post_cbfn; in bna_rx_create()
2577 if (rx->bna->rx_mod.flags & BNA_RX_MOD_F_ENET_STARTED) { in bna_rx_create()
2578 switch (rx->type) { in bna_rx_create()
2580 if (!(rx->bna->rx_mod.flags & in bna_rx_create()
2582 rx->rx_flags |= BNA_RX_F_ENET_STARTED; in bna_rx_create()
2585 if (rx->bna->rx_mod.flags & BNA_RX_MOD_F_ENET_LOOPBACK) in bna_rx_create()
2586 rx->rx_flags |= BNA_RX_F_ENET_STARTED; in bna_rx_create()
2591 rx->num_paths = rx_cfg->num_paths; in bna_rx_create()
2593 i < rx->num_paths; i++) { in bna_rx_create()
2595 list_add_tail(&rxp->qe, &rx->rxp_q); in bna_rx_create()
2597 rxp->rx = rx; in bna_rx_create()
2598 rxp->cq.rx = rx; in bna_rx_create()
2632 q0->rx = rx; in bna_rx_create()
2652 if (rx->rcb_setup_cbfn) in bna_rx_create()
2653 rx->rcb_setup_cbfn(bnad, q0->rcb); in bna_rx_create()
2658 q1->rx = rx; in bna_rx_create()
2681 if (rx->rcb_setup_cbfn) in bna_rx_create()
2682 rx->rcb_setup_cbfn(bnad, q1->rcb); in bna_rx_create()
2718 if (rx->ccb_setup_cbfn) in bna_rx_create()
2719 rx->ccb_setup_cbfn(bnad, rxp->cq.ccb); in bna_rx_create()
2722 rx->hds_cfg = rx_cfg->hds_config; in bna_rx_create()
2724 bna_rxf_init(&rx->rxf, rx, rx_cfg, res_info); in bna_rx_create()
2726 bfa_fsm_set_state(rx, bna_rx_sm_stopped); in bna_rx_create()
2728 rx_mod->rid_mask |= (1 << rx->rid); in bna_rx_create()
2730 return rx; in bna_rx_create()
2734 bna_rx_destroy(struct bna_rx *rx) in bna_rx_destroy() argument
2736 struct bna_rx_mod *rx_mod = &rx->bna->rx_mod; in bna_rx_destroy()
2742 bna_rxf_uninit(&rx->rxf); in bna_rx_destroy()
2744 while (!list_empty(&rx->rxp_q)) { in bna_rx_destroy()
2745 bfa_q_deq(&rx->rxp_q, &rxp); in bna_rx_destroy()
2747 if (rx->rcb_destroy_cbfn) in bna_rx_destroy()
2748 rx->rcb_destroy_cbfn(rx->bna->bnad, q0->rcb); in bna_rx_destroy()
2751 q0->rx = NULL; in bna_rx_destroy()
2755 if (rx->rcb_destroy_cbfn) in bna_rx_destroy()
2756 rx->rcb_destroy_cbfn(rx->bna->bnad, q1->rcb); in bna_rx_destroy()
2759 q1->rx = NULL; in bna_rx_destroy()
2765 if (rx->ccb_destroy_cbfn) in bna_rx_destroy()
2766 rx->ccb_destroy_cbfn(rx->bna->bnad, rxp->cq.ccb); in bna_rx_destroy()
2768 rxp->rx = NULL; in bna_rx_destroy()
2773 if (qe == &rx->qe) { in bna_rx_destroy()
2774 list_del(&rx->qe); in bna_rx_destroy()
2775 bfa_q_qe_init(&rx->qe); in bna_rx_destroy()
2780 rx_mod->rid_mask &= ~(1 << rx->rid); in bna_rx_destroy()
2782 rx->bna = NULL; in bna_rx_destroy()
2783 rx->priv = NULL; in bna_rx_destroy()
2784 bna_rx_put(rx_mod, rx); in bna_rx_destroy()
2788 bna_rx_enable(struct bna_rx *rx) in bna_rx_enable() argument
2790 if (rx->fsm != (bfa_sm_t)bna_rx_sm_stopped) in bna_rx_enable()
2793 rx->rx_flags |= BNA_RX_F_ENABLED; in bna_rx_enable()
2794 if (rx->rx_flags & BNA_RX_F_ENET_STARTED) in bna_rx_enable()
2795 bfa_fsm_send_event(rx, RX_E_START); in bna_rx_enable()
2799 bna_rx_disable(struct bna_rx *rx, enum bna_cleanup_type type, in bna_rx_disable() argument
2804 (*cbfn)(rx->bna->bnad, rx); in bna_rx_disable()
2806 rx->stop_cbfn = cbfn; in bna_rx_disable()
2807 rx->stop_cbarg = rx->bna->bnad; in bna_rx_disable()
2809 rx->rx_flags &= ~BNA_RX_F_ENABLED; in bna_rx_disable()
2811 bfa_fsm_send_event(rx, RX_E_STOP); in bna_rx_disable()
2816 bna_rx_cleanup_complete(struct bna_rx *rx) in bna_rx_cleanup_complete() argument
2818 bfa_fsm_send_event(rx, RX_E_CLEANUP_DONE); in bna_rx_cleanup_complete()
2822 bna_rx_vlan_strip_enable(struct bna_rx *rx) in bna_rx_vlan_strip_enable() argument
2824 struct bna_rxf *rxf = &rx->rxf; in bna_rx_vlan_strip_enable()
2834 bna_rx_vlan_strip_disable(struct bna_rx *rx) in bna_rx_vlan_strip_disable() argument
2836 struct bna_rxf *rxf = &rx->rxf; in bna_rx_vlan_strip_disable()
2846 bna_rx_mode_set(struct bna_rx *rx, enum bna_rxmode new_mode, in bna_rx_mode_set() argument
2850 struct bna_rxf *rxf = &rx->rxf; in bna_rx_mode_set()
2857 if ((rx->bna->promisc_rid != BFI_INVALID_RID) && in bna_rx_mode_set()
2858 (rx->bna->promisc_rid != rxf->rx->rid)) in bna_rx_mode_set()
2862 if (rx->bna->default_mode_rid != BFI_INVALID_RID) in bna_rx_mode_set()
2872 if ((rx->bna->default_mode_rid != BFI_INVALID_RID) && in bna_rx_mode_set()
2873 (rx->bna->default_mode_rid != rxf->rx->rid)) { in bna_rx_mode_set()
2878 if (rx->bna->promisc_rid != BFI_INVALID_RID) in bna_rx_mode_set()
2904 rxf->cam_fltr_cbarg = rx->bna->bnad; in bna_rx_mode_set()
2907 (*cbfn)(rx->bna->bnad, rx); in bna_rx_mode_set()
2916 bna_rx_vlanfilter_enable(struct bna_rx *rx) in bna_rx_vlanfilter_enable() argument
2918 struct bna_rxf *rxf = &rx->rxf; in bna_rx_vlanfilter_enable()
2928 bna_rx_coalescing_timeo_set(struct bna_rx *rx, int coalescing_timeo) in bna_rx_coalescing_timeo_set() argument
2933 list_for_each(qe, &rx->rxp_q) { in bna_rx_coalescing_timeo_set()
2953 struct bna *bna = ccb->cq->rx->bna; in bna_rx_dim_update()