예제 #1
0
static void brcms_ops_flush(struct ieee80211_hw *hw, bool drop)
{
	struct brcms_info *wl = hw->priv;

	no_printk("%s: drop = %s\n", __func__, drop ? "true" : "false");

	/* wait for packet queue and dma fifos to run empty */
	spin_lock_bh(&wl->lock);
	brcms_c_wait_for_tx_completion(wl->wlc, drop);
	spin_unlock_bh(&wl->lock);
}
예제 #2
0
static void wl_ops_flush(struct ieee80211_hw *hw, bool drop)
{
	struct wl_info *wl = HW_TO_WL(hw);

	no_printk("%s: drop = %s\n", __func__, drop ? "true" : "false");

	/* wait for packet queue and dma fifos to run empty */
	WL_LOCK(wl);
	wlc_wait_for_tx_completion(wl->wlc, drop);
	WL_UNLOCK(wl);
}
예제 #3
0
static void brcms_ops_flush(struct ieee80211_hw *hw, u32 queues, bool drop)
{
	struct brcms_info *wl = hw->priv;
	int ret;

	no_printk("%s: drop = %s\n", __func__, drop ? "true" : "false");

	ret = wait_event_timeout(wl->tx_flush_wq,
				 brcms_tx_flush_completed(wl),
				 msecs_to_jiffies(BRCMS_FLUSH_TIMEOUT));

	brcms_dbg_mac80211(wl->wlc->hw->d11core,
			   "ret=%d\n", jiffies_to_msecs(ret));
}