static int rtl_op_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 * ssn /*<delete in kernel start>*/ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) /*<delete in kernel end>*/ ,u8 buf_size /*<delete in kernel start>*/ #endif /*<delete in kernel end>*/ ) { struct rtl_priv *rtlpriv = rtl_priv(hw); switch (action) { case IEEE80211_AMPDU_TX_START: RT_TRACE(COMP_MAC80211, DBG_TRACE, ("IEEE80211_AMPDU_TX_START: TID:%d\n", tid)); return rtl_tx_agg_start(hw, vif, sta, tid, ssn); break; #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) case IEEE80211_AMPDU_TX_STOP_CONT: /*added by binxia*/ case IEEE80211_AMPDU_TX_STOP_FLUSH: case IEEE80211_AMPDU_TX_STOP_FLUSH_CONT: #else case IEEE80211_AMPDU_TX_STOP: #endif RT_TRACE(COMP_MAC80211, DBG_TRACE, ("IEEE80211_AMPDU_TX_STOP: TID:%d\n", tid)); return rtl_tx_agg_stop(hw, vif, sta, tid); break; case IEEE80211_AMPDU_TX_OPERATIONAL: RT_TRACE(COMP_MAC80211, DBG_TRACE, ("IEEE80211_AMPDU_TX_OPERATIONAL:TID:%d\n", tid)); rtl_tx_agg_oper(hw, sta, tid); break; case IEEE80211_AMPDU_RX_START: RT_TRACE(COMP_MAC80211, DBG_TRACE, ("IEEE80211_AMPDU_RX_START:TID:%d\n", tid)); return rtl_rx_agg_start(hw, sta, tid); break; case IEEE80211_AMPDU_RX_STOP: RT_TRACE(COMP_MAC80211, DBG_TRACE, ("IEEE80211_AMPDU_RX_STOP:TID:%d\n", tid)); return rtl_rx_agg_stop(hw, sta, tid); break; default: RT_TRACE(COMP_ERR, DBG_EMERG, ("IEEE80211_AMPDU_ERR!!!!:\n")); return -EOPNOTSUPP; } return 0; }
static int rtl_op_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, struct ieee80211_sta *sta, u16 tid, u16 * ssn ,u8 buf_size ) { struct rtl_priv *rtlpriv = rtl_priv(hw); switch (action) { case IEEE80211_AMPDU_TX_START: RT_TRACE(COMP_MAC80211, DBG_TRACE, ("IEEE80211_AMPDU_TX_START: TID:%d\n", tid)); return rtl_tx_agg_start(hw, vif, sta, tid, ssn); break; case IEEE80211_AMPDU_TX_STOP_CONT: case IEEE80211_AMPDU_TX_STOP_FLUSH: case IEEE80211_AMPDU_TX_STOP_FLUSH_CONT: RT_TRACE(COMP_MAC80211, DBG_TRACE, ("IEEE80211_AMPDU_TX_STOP: TID:%d\n", tid)); return rtl_tx_agg_stop(hw, vif, sta, tid); break; case IEEE80211_AMPDU_TX_OPERATIONAL: RT_TRACE(COMP_MAC80211, DBG_TRACE, ("IEEE80211_AMPDU_TX_OPERATIONAL:TID:%d\n", tid)); rtl_tx_agg_oper(hw, sta, tid); break; case IEEE80211_AMPDU_RX_START: RT_TRACE(COMP_MAC80211, DBG_TRACE, ("IEEE80211_AMPDU_RX_START:TID:%d\n", tid)); return rtl_rx_agg_start(hw, sta, tid); break; case IEEE80211_AMPDU_RX_STOP: RT_TRACE(COMP_MAC80211, DBG_TRACE, ("IEEE80211_AMPDU_RX_STOP:TID:%d\n", tid)); return rtl_rx_agg_stop(hw, sta, tid); break; default: RT_TRACE(COMP_ERR, DBG_EMERG, ("IEEE80211_AMPDU_ERR!!!!:\n")); return -EOPNOTSUPP; } return 0; }