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

Commit 5c894633 authored by Avinash Patil's avatar Avinash Patil Committed by Kalle Valo
Browse files

mwifiex: enable traffic only when port is open



This patch adds support to enable data traffic only when port is open.

Signed-off-by: default avatarAvinash Patil <patila@marvell.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent a1777327
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -77,7 +77,7 @@ int mwifiex_init_priv(struct mwifiex_private *priv)


	priv->media_connected = false;
	priv->media_connected = false;
	eth_broadcast_addr(priv->curr_addr);
	eth_broadcast_addr(priv->curr_addr);

	priv->port_open = false;
	priv->pkt_tx_ctrl = 0;
	priv->pkt_tx_ctrl = 0;
	priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED;
	priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED;
	priv->data_rate = 0;	/* Initially indicate the rate as auto */
	priv->data_rate = 0;	/* Initially indicate the rate as auto */
+2 −0
Original line number Original line Diff line number Diff line
@@ -783,6 +783,8 @@ int mwifiex_ret_802_11_associate(struct mwifiex_private *priv,


	if (priv->sec_info.wpa_enabled || priv->sec_info.wpa2_enabled)
	if (priv->sec_info.wpa_enabled || priv->sec_info.wpa2_enabled)
		priv->scan_block = true;
		priv->scan_block = true;
	else
		priv->port_open = true;


done:
done:
	/* Need to indicate IOCTL complete */
	/* Need to indicate IOCTL complete */
+1 −0
Original line number Original line Diff line number Diff line
@@ -519,6 +519,7 @@ struct mwifiex_private {
	u8 frame_type;
	u8 frame_type;
	u8 curr_addr[ETH_ALEN];
	u8 curr_addr[ETH_ALEN];
	u8 media_connected;
	u8 media_connected;
	u8 port_open;
	u32 num_tx_timeout;
	u32 num_tx_timeout;
	/* track consecutive timeout */
	/* track consecutive timeout */
	u8 tx_timeout_cnt;
	u8 tx_timeout_cnt;
+2 −0
Original line number Original line Diff line number Diff line
@@ -599,6 +599,7 @@ static int mwifiex_ret_802_11_key_material_v1(struct mwifiex_private *priv,
				    "info: key: GTK is set\n");
				    "info: key: GTK is set\n");
			priv->wpa_is_gtk_set = true;
			priv->wpa_is_gtk_set = true;
			priv->scan_block = false;
			priv->scan_block = false;
			priv->port_open = true;
		}
		}
	}
	}


@@ -629,6 +630,7 @@ static int mwifiex_ret_802_11_key_material_v2(struct mwifiex_private *priv,
			mwifiex_dbg(priv->adapter, INFO, "info: key: GTK is set\n");
			mwifiex_dbg(priv->adapter, INFO, "info: key: GTK is set\n");
			priv->wpa_is_gtk_set = true;
			priv->wpa_is_gtk_set = true;
			priv->scan_block = false;
			priv->scan_block = false;
			priv->port_open = true;
		}
		}
	}
	}


+3 −1
Original line number Original line Diff line number Diff line
@@ -54,6 +54,7 @@ mwifiex_reset_connect_state(struct mwifiex_private *priv, u16 reason_code)
	priv->media_connected = false;
	priv->media_connected = false;


	priv->scan_block = false;
	priv->scan_block = false;
	priv->port_open = false;


	if ((GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA) &&
	if ((GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA) &&
	    ISSUPP_TDLS_ENABLED(priv->adapter->fw_cap_info)) {
	    ISSUPP_TDLS_ENABLED(priv->adapter->fw_cap_info)) {
@@ -474,7 +475,7 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv)


	case EVENT_PS_AWAKE:
	case EVENT_PS_AWAKE:
		mwifiex_dbg(adapter, EVENT, "info: EVENT: AWAKE\n");
		mwifiex_dbg(adapter, EVENT, "info: EVENT: AWAKE\n");
		if (!adapter->pps_uapsd_mode &&
		if (!adapter->pps_uapsd_mode && priv->port_open &&
		    priv->media_connected && adapter->sleep_period.period) {
		    priv->media_connected && adapter->sleep_period.period) {
				adapter->pps_uapsd_mode = true;
				adapter->pps_uapsd_mode = true;
				mwifiex_dbg(adapter, EVENT,
				mwifiex_dbg(adapter, EVENT,
@@ -553,6 +554,7 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv)


	case EVENT_PORT_RELEASE:
	case EVENT_PORT_RELEASE:
		mwifiex_dbg(adapter, EVENT, "event: PORT RELEASE\n");
		mwifiex_dbg(adapter, EVENT, "event: PORT RELEASE\n");
		priv->port_open = true;
		break;
		break;


	case EVENT_EXT_SCAN_REPORT:
	case EVENT_EXT_SCAN_REPORT:
Loading