Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e45a8419 authored by Amitkumar Karwar's avatar Amitkumar Karwar Committed by John W. Linville
Browse files

mwifiex: use LOW_PRIORITY scan flag provided in scan request



We will delay/abort scan operation based on traffic for low
priority scan.

Signed-off-by: default avatarAmitkumar Karwar <akarwar@marvell.com>
Signed-off-by: default avatarBing Zhao <bzhao@marvell.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent ccd60953
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1819,7 +1819,8 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,

	wiphy_dbg(wiphy, "info: received scan request on %s\n", dev->name);

	if (atomic_read(&priv->wmm.tx_pkts_queued) >=
	if ((request->flags & NL80211_SCAN_FLAG_LOW_PRIORITY) &&
	    atomic_read(&priv->wmm.tx_pkts_queued) >=
	    MWIFIEX_MIN_TX_PENDING_TO_CANCEL_SCAN) {
		dev_dbg(priv->adapter->dev, "scan rejected due to traffic\n");
		return -EBUSY;
@@ -2251,7 +2252,8 @@ int mwifiex_register_cfg80211(struct mwifiex_adapter *adapter)
	wiphy->available_antennas_rx = BIT(adapter->number_of_antenna) - 1;

	wiphy->features |= NL80211_FEATURE_HT_IBSS |
			   NL80211_FEATURE_INACTIVITY_TIMER;
			   NL80211_FEATURE_INACTIVITY_TIMER |
			   NL80211_FEATURE_LOW_PRIORITY_SCAN;

	/* Reserve space for mwifiex specific private data for BSS */
	wiphy->bss_priv_size = sizeof(struct mwifiex_bss_priv);
+5 −1
Original line number Diff line number Diff line
@@ -1776,12 +1776,16 @@ int mwifiex_ret_802_11_scan(struct mwifiex_private *priv,
			priv->user_scan_cfg = NULL;
		}
	} else {
		if (!mwifiex_wmm_lists_empty(adapter)) {
		if (!mwifiex_wmm_lists_empty(adapter) &&
		    (priv->scan_request && (priv->scan_request->flags &
					    NL80211_SCAN_FLAG_LOW_PRIORITY))) {
			spin_unlock_irqrestore(&adapter->scan_pending_q_lock,
					       flags);
			adapter->scan_delay_cnt = 1;
			mod_timer(&priv->scan_delay_timer, jiffies +
				  msecs_to_jiffies(MWIFIEX_SCAN_DELAY_MSEC));
			dev_dbg(priv->adapter->dev,
				"info: %s: deferring scan\n", __func__);
		} else {
			/* Get scan command from scan_pending_q and put to
			   cmd_pending_q */