mirror of https://gitee.com/openkylin/linux.git
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: Prameela Rani Garnepudi <prameela.j04cs@gmail.com> Signed-off-by: Amitkumar Karwar <amit.karwar@redpinesignals.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
03c34c0d73
commit
75ca0049aa
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue