Commit 75ca0049 authored by Prameela Rani Garnepudi's avatar Prameela Rani Garnepudi Committed by Kalle Valo
Browse files

rsi: remove interface changes for AP mode



remove_interface callback of mac80211 is handled for AP mode.
Same is notified to firmware through vap_capabilities frame
with VAP status VAP_DELETE.

Signed-off-by: default avatarPrameela Rani Garnepudi <prameela.j04cs@gmail.com>
Signed-off-by: default avatarAmitkumar Karwar <amit.karwar@redpinesignals.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 03c34c0d
Loading
Loading
Loading
Loading
+22 −4
Original line number Diff line number Diff line
@@ -405,14 +405,32 @@ static void rsi_mac80211_remove_interface(struct ieee80211_hw *hw,
{
	struct rsi_hw *adapter = hw->priv;
	struct rsi_common *common = adapter->priv;
	enum opmode opmode;

	rsi_dbg(INFO_ZONE, "Remove Interface Called\n");

	mutex_lock(&common->mutex);
	if (vif->type == NL80211_IFTYPE_STATION) {
		adapter->sc_nvifs--;
		rsi_set_vap_capabilities(common, STA_OPMODE, vif->addr,
					 0, VAP_DELETE);

	if (adapter->sc_nvifs <= 0) {
		mutex_unlock(&common->mutex);
		return;
	}

	switch (vif->type) {
	case NL80211_IFTYPE_STATION:
		opmode = STA_OPMODE;
		break;
	case NL80211_IFTYPE_AP:
		opmode = AP_OPMODE;
		break;
	default:
		mutex_unlock(&common->mutex);
		return;
	}
	rsi_set_vap_capabilities(common, opmode, vif->addr,
				 0, VAP_DELETE);
	adapter->sc_nvifs--;

	if (!memcmp(adapter->vifs[0], vif, sizeof(struct ieee80211_vif)))
		adapter->vifs[0] = NULL;
	mutex_unlock(&common->mutex);