|
@@ -46,7 +46,6 @@ do { \
|
|
|
|
|
|
static int bna_rxf_cfg_apply(struct bna_rxf *rxf);
|
|
static int bna_rxf_cfg_apply(struct bna_rxf *rxf);
|
|
static void bna_rxf_cfg_reset(struct bna_rxf *rxf);
|
|
static void bna_rxf_cfg_reset(struct bna_rxf *rxf);
|
|
-static int bna_rxf_fltr_clear(struct bna_rxf *rxf);
|
|
|
|
static int bna_rxf_ucast_cfg_apply(struct bna_rxf *rxf);
|
|
static int bna_rxf_ucast_cfg_apply(struct bna_rxf *rxf);
|
|
static int bna_rxf_promisc_cfg_apply(struct bna_rxf *rxf);
|
|
static int bna_rxf_promisc_cfg_apply(struct bna_rxf *rxf);
|
|
static int bna_rxf_allmulti_cfg_apply(struct bna_rxf *rxf);
|
|
static int bna_rxf_allmulti_cfg_apply(struct bna_rxf *rxf);
|
|
@@ -66,8 +65,6 @@ bfa_fsm_state_decl(bna_rxf, cfg_wait, struct bna_rxf,
|
|
enum bna_rxf_event);
|
|
enum bna_rxf_event);
|
|
bfa_fsm_state_decl(bna_rxf, started, struct bna_rxf,
|
|
bfa_fsm_state_decl(bna_rxf, started, struct bna_rxf,
|
|
enum bna_rxf_event);
|
|
enum bna_rxf_event);
|
|
-bfa_fsm_state_decl(bna_rxf, fltr_clr_wait, struct bna_rxf,
|
|
|
|
- enum bna_rxf_event);
|
|
|
|
bfa_fsm_state_decl(bna_rxf, last_resp_wait, struct bna_rxf,
|
|
bfa_fsm_state_decl(bna_rxf, last_resp_wait, struct bna_rxf,
|
|
enum bna_rxf_event);
|
|
enum bna_rxf_event);
|
|
|
|
|
|
@@ -101,14 +98,6 @@ bna_rxf_sm_stopped(struct bna_rxf *rxf, enum bna_rxf_event event)
|
|
call_rxf_cam_fltr_cbfn(rxf);
|
|
call_rxf_cam_fltr_cbfn(rxf);
|
|
break;
|
|
break;
|
|
|
|
|
|
- case RXF_E_PAUSE:
|
|
|
|
- rxf->flags |= BNA_RXF_F_PAUSED;
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
- case RXF_E_RESUME:
|
|
|
|
- rxf->flags &= ~BNA_RXF_F_PAUSED;
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
default:
|
|
default:
|
|
bfa_sm_fault(event);
|
|
bfa_sm_fault(event);
|
|
}
|
|
}
|
|
@@ -132,11 +121,6 @@ bna_rxf_sm_paused(struct bna_rxf *rxf, enum bna_rxf_event event)
|
|
call_rxf_cam_fltr_cbfn(rxf);
|
|
call_rxf_cam_fltr_cbfn(rxf);
|
|
break;
|
|
break;
|
|
|
|
|
|
- case RXF_E_RESUME:
|
|
|
|
- rxf->flags &= ~BNA_RXF_F_PAUSED;
|
|
|
|
- bfa_fsm_set_state(rxf, bna_rxf_sm_cfg_wait);
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
default:
|
|
default:
|
|
bfa_sm_fault(event);
|
|
bfa_sm_fault(event);
|
|
}
|
|
}
|
|
@@ -170,12 +154,6 @@ bna_rxf_sm_cfg_wait(struct bna_rxf *rxf, enum bna_rxf_event event)
|
|
/* No-op */
|
|
/* No-op */
|
|
break;
|
|
break;
|
|
|
|
|
|
- case RXF_E_PAUSE:
|
|
|
|
- rxf->flags |= BNA_RXF_F_PAUSED;
|
|
|
|
- call_rxf_start_cbfn(rxf);
|
|
|
|
- bfa_fsm_set_state(rxf, bna_rxf_sm_fltr_clr_wait);
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
case RXF_E_FW_RESP:
|
|
case RXF_E_FW_RESP:
|
|
if (!bna_rxf_cfg_apply(rxf)) {
|
|
if (!bna_rxf_cfg_apply(rxf)) {
|
|
/* No more pending config updates */
|
|
/* No more pending config updates */
|
|
@@ -209,40 +187,6 @@ bna_rxf_sm_started(struct bna_rxf *rxf, enum bna_rxf_event event)
|
|
bfa_fsm_set_state(rxf, bna_rxf_sm_cfg_wait);
|
|
bfa_fsm_set_state(rxf, bna_rxf_sm_cfg_wait);
|
|
break;
|
|
break;
|
|
|
|
|
|
- case RXF_E_PAUSE:
|
|
|
|
- rxf->flags |= BNA_RXF_F_PAUSED;
|
|
|
|
- if (!bna_rxf_fltr_clear(rxf))
|
|
|
|
- bfa_fsm_set_state(rxf, bna_rxf_sm_paused);
|
|
|
|
- else
|
|
|
|
- bfa_fsm_set_state(rxf, bna_rxf_sm_fltr_clr_wait);
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
- default:
|
|
|
|
- bfa_sm_fault(event);
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static void
|
|
|
|
-bna_rxf_sm_fltr_clr_wait_entry(struct bna_rxf *rxf)
|
|
|
|
-{
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static void
|
|
|
|
-bna_rxf_sm_fltr_clr_wait(struct bna_rxf *rxf, enum bna_rxf_event event)
|
|
|
|
-{
|
|
|
|
- switch (event) {
|
|
|
|
- case RXF_E_FAIL:
|
|
|
|
- bna_rxf_cfg_reset(rxf);
|
|
|
|
- bfa_fsm_set_state(rxf, bna_rxf_sm_stopped);
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
- case RXF_E_FW_RESP:
|
|
|
|
- if (!bna_rxf_fltr_clear(rxf)) {
|
|
|
|
- /* No more pending CAM entries to clear */
|
|
|
|
- bfa_fsm_set_state(rxf, bna_rxf_sm_paused);
|
|
|
|
- }
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
default:
|
|
default:
|
|
bfa_sm_fault(event);
|
|
bfa_sm_fault(event);
|
|
}
|
|
}
|
|
@@ -652,25 +596,6 @@ bna_rxf_cfg_apply(struct bna_rxf *rxf)
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-/* Only software reset */
|
|
|
|
-static int
|
|
|
|
-bna_rxf_fltr_clear(struct bna_rxf *rxf)
|
|
|
|
-{
|
|
|
|
- if (bna_rxf_ucast_cfg_reset(rxf, BNA_HARD_CLEANUP))
|
|
|
|
- return 1;
|
|
|
|
-
|
|
|
|
- if (bna_rxf_mcast_cfg_reset(rxf, BNA_HARD_CLEANUP))
|
|
|
|
- return 1;
|
|
|
|
-
|
|
|
|
- if (bna_rxf_promisc_cfg_reset(rxf, BNA_HARD_CLEANUP))
|
|
|
|
- return 1;
|
|
|
|
-
|
|
|
|
- if (bna_rxf_allmulti_cfg_reset(rxf, BNA_HARD_CLEANUP))
|
|
|
|
- return 1;
|
|
|
|
-
|
|
|
|
- return 0;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static void
|
|
static void
|
|
bna_rxf_cfg_reset(struct bna_rxf *rxf)
|
|
bna_rxf_cfg_reset(struct bna_rxf *rxf)
|
|
{
|
|
{
|