bna: remove RXF_E_PAUSE and RXF_E_RESUME events
[cascardo/linux.git] / drivers / net / ethernet / brocade / bna / bna_tx_rx.c
index 2c85f72..ccf48a1 100644 (file)
@@ -46,7 +46,6 @@ do {                                                                  \
 
 static int bna_rxf_cfg_apply(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_promisc_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);
 bfa_fsm_state_decl(bna_rxf, started, struct bna_rxf,
                        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,
                        enum bna_rxf_event);
 
@@ -101,16 +98,6 @@ bna_rxf_sm_stopped(struct bna_rxf *rxf, enum bna_rxf_event event)
                call_rxf_cam_fltr_cbfn(rxf);
                break;
 
-       case RXF_E_PAUSE:
-               rxf->flags |= BNA_RXF_F_PAUSED;
-               call_rxf_pause_cbfn(rxf);
-               break;
-
-       case RXF_E_RESUME:
-               rxf->flags &= ~BNA_RXF_F_PAUSED;
-               call_rxf_resume_cbfn(rxf);
-               break;
-
        default:
                bfa_sm_fault(event);
        }
@@ -119,7 +106,6 @@ bna_rxf_sm_stopped(struct bna_rxf *rxf, enum bna_rxf_event event)
 static void
 bna_rxf_sm_paused_entry(struct bna_rxf *rxf)
 {
-       call_rxf_pause_cbfn(rxf);
 }
 
 static void
@@ -135,11 +121,6 @@ bna_rxf_sm_paused(struct bna_rxf *rxf, enum bna_rxf_event event)
                call_rxf_cam_fltr_cbfn(rxf);
                break;
 
-       case RXF_E_RESUME:
-               rxf->flags &= ~BNA_RXF_F_PAUSED;
-               bfa_fsm_set_state(rxf, bna_rxf_sm_cfg_wait);
-               break;
-
        default:
                bfa_sm_fault(event);
        }
@@ -166,7 +147,6 @@ bna_rxf_sm_cfg_wait(struct bna_rxf *rxf, enum bna_rxf_event event)
                bna_rxf_cfg_reset(rxf);
                call_rxf_start_cbfn(rxf);
                call_rxf_cam_fltr_cbfn(rxf);
-               call_rxf_resume_cbfn(rxf);
                bfa_fsm_set_state(rxf, bna_rxf_sm_stopped);
                break;
 
@@ -174,12 +154,6 @@ bna_rxf_sm_cfg_wait(struct bna_rxf *rxf, enum bna_rxf_event event)
                /* No-op */
                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:
                if (!bna_rxf_cfg_apply(rxf)) {
                        /* No more pending config updates */
@@ -197,7 +171,6 @@ bna_rxf_sm_started_entry(struct bna_rxf *rxf)
 {
        call_rxf_start_cbfn(rxf);
        call_rxf_cam_fltr_cbfn(rxf);
-       call_rxf_resume_cbfn(rxf);
 }
 
 static void
@@ -214,41 +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);
                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);
-               call_rxf_pause_cbfn(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:
                bfa_sm_fault(event);
        }
@@ -658,25 +596,6 @@ bna_rxf_cfg_apply(struct bna_rxf *rxf)
        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
 bna_rxf_cfg_reset(struct bna_rxf *rxf)
 {
@@ -863,8 +782,7 @@ bna_rxf_fail(struct bna_rxf *rxf)
 }
 
 enum bna_cb_status
-bna_rx_ucast_set(struct bna_rx *rx, u8 *ucmac,
-                void (*cbfn)(struct bnad *, struct bna_rx *))
+bna_rx_ucast_set(struct bna_rx *rx, u8 *ucmac)
 {
        struct bna_rxf *rxf = &rx->rxf;
 
@@ -878,7 +796,7 @@ bna_rx_ucast_set(struct bna_rx *rx, u8 *ucmac,
 
        ether_addr_copy(rxf->ucast_pending_mac->addr, ucmac);
        rxf->ucast_pending_set = 1;
-       rxf->cam_fltr_cbfn = cbfn;
+       rxf->cam_fltr_cbfn = NULL;
        rxf->cam_fltr_cbarg = rx->bna->bnad;
 
        bfa_fsm_send_event(rxf, RXF_E_CONFIG);
@@ -917,8 +835,7 @@ bna_rx_mcast_add(struct bna_rx *rx, u8 *addr,
 }
 
 enum bna_cb_status
-bna_rx_ucast_listset(struct bna_rx *rx, int count, u8 *uclist,
-                    void (*cbfn)(struct bnad *, struct bna_rx *))
+bna_rx_ucast_listset(struct bna_rx *rx, int count, u8 *uclist)
 {
        struct bna_ucam_mod *ucam_mod = &rx->bna->ucam_mod;
        struct bna_rxf *rxf = &rx->rxf;
@@ -968,8 +885,6 @@ bna_rx_ucast_listset(struct bna_rx *rx, int count, u8 *uclist,
                list_add_tail(&mac->qe, &rxf->ucast_pending_add_q);
        }
 
-       rxf->cam_fltr_cbfn = cbfn;
-       rxf->cam_fltr_cbarg = rx->bna->bnad;
        bfa_fsm_send_event(rxf, RXF_E_CONFIG);
 
        return BNA_CB_SUCCESS;
@@ -986,8 +901,7 @@ err_return:
 }
 
 enum bna_cb_status
-bna_rx_mcast_listset(struct bna_rx *rx, int count, u8 *mclist,
-                    void (*cbfn)(struct bnad *, struct bna_rx *))
+bna_rx_mcast_listset(struct bna_rx *rx, int count, u8 *mclist)
 {
        struct bna_mcam_mod *mcam_mod = &rx->bna->mcam_mod;
        struct bna_rxf *rxf = &rx->rxf;
@@ -1040,8 +954,6 @@ bna_rx_mcast_listset(struct bna_rx *rx, int count, u8 *mclist,
                list_add_tail(&mac->qe, &rxf->mcast_pending_add_q);
        }
 
-       rxf->cam_fltr_cbfn = cbfn;
-       rxf->cam_fltr_cbarg = rx->bna->bnad;
        bfa_fsm_send_event(rxf, RXF_E_CONFIG);
 
        return BNA_CB_SUCCESS;
@@ -1058,8 +970,7 @@ err_return:
 }
 
 void
-bna_rx_mcast_delall(struct bna_rx *rx,
-                   void (*cbfn)(struct bnad *, struct bna_rx *))
+bna_rx_mcast_delall(struct bna_rx *rx)
 {
        struct bna_rxf *rxf = &rx->rxf;
        struct list_head *qe;
@@ -1089,15 +1000,8 @@ bna_rx_mcast_delall(struct bna_rx *rx,
                need_hw_config = 1;
        }
 
-       if (need_hw_config) {
-               rxf->cam_fltr_cbfn = cbfn;
-               rxf->cam_fltr_cbarg = rx->bna->bnad;
+       if (need_hw_config)
                bfa_fsm_send_event(rxf, RXF_E_CONFIG);
-               return;
-       }
-
-       if (cbfn)
-               (*cbfn)(rx->bna->bnad, rx);
 }
 
 void
@@ -2843,8 +2747,7 @@ bna_rx_vlan_strip_disable(struct bna_rx *rx)
 
 enum bna_cb_status
 bna_rx_mode_set(struct bna_rx *rx, enum bna_rxmode new_mode,
-               enum bna_rxmode bitmask,
-               void (*cbfn)(struct bnad *, struct bna_rx *))
+               enum bna_rxmode bitmask)
 {
        struct bna_rxf *rxf = &rx->rxf;
        int need_hw_config = 0;
@@ -2899,11 +2802,10 @@ bna_rx_mode_set(struct bna_rx *rx, enum bna_rxmode new_mode,
        /* Trigger h/w if needed */
 
        if (need_hw_config) {
-               rxf->cam_fltr_cbfn = cbfn;
+               rxf->cam_fltr_cbfn = NULL;
                rxf->cam_fltr_cbarg = rx->bna->bnad;
                bfa_fsm_send_event(rxf, RXF_E_CONFIG);
-       } else if (cbfn)
-               (*cbfn)(rx->bna->bnad, rx);
+       }
 
        return BNA_CB_SUCCESS;
 
@@ -3023,16 +2925,6 @@ do {                                                                     \
        }                                                               \
 } while (0)
 
-#define call_tx_prio_change_cbfn(tx)                                   \
-do {                                                                   \
-       if ((tx)->prio_change_cbfn) {                                   \
-               void (*cbfn)(struct bnad *, struct bna_tx *);   \
-               cbfn = (tx)->prio_change_cbfn;                          \
-               (tx)->prio_change_cbfn = NULL;                          \
-               cbfn((tx)->bna->bnad, (tx));                            \
-       }                                                               \
-} while (0)
-
 static void bna_tx_mod_cb_tx_stopped(void *tx_mod, struct bna_tx *tx);
 static void bna_bfi_tx_enet_start(struct bna_tx *tx);
 static void bna_tx_enet_stop(struct bna_tx *tx);
@@ -3085,7 +2977,6 @@ bna_tx_sm_stopped(struct bna_tx *tx, enum bna_tx_event event)
                break;
 
        case TX_E_PRIO_CHANGE:
-               call_tx_prio_change_cbfn(tx);
                break;
 
        case TX_E_BW_UPDATE:
@@ -3255,7 +3146,6 @@ bna_tx_sm_prio_stop_wait(struct bna_tx *tx, enum bna_tx_event event)
 
        case TX_E_FAIL:
                bfa_fsm_set_state(tx, bna_tx_sm_failed);
-               call_tx_prio_change_cbfn(tx);
                tx->tx_cleanup_cbfn(tx->bna->bnad, tx);
                break;
 
@@ -3276,7 +3166,6 @@ bna_tx_sm_prio_stop_wait(struct bna_tx *tx, enum bna_tx_event event)
 static void
 bna_tx_sm_prio_cleanup_wait_entry(struct bna_tx *tx)
 {
-       call_tx_prio_change_cbfn(tx);
        tx->tx_cleanup_cbfn(tx->bna->bnad, tx);
 }