Message ID | 1560669967-23706-2-git-send-email-merez@codeaurora.org (mailing list archive) |
---|---|
State | Accepted |
Commit | b913e33076c81165a62ae164259a7915ffa53dc1 |
Delegated to: | Kalle Valo |
Headers | show |
Series | wil6210 patches | expand |
Maya Erez <merez@codeaurora.org> wrote: > Currently the FW is reset on every interface type change, because > of various FW bugs. > FW reset is not required when switching from STA to P2P client, hence > can be skipped. > > Signed-off-by: Alexei Avshalom Lazar <ailizaro@codeaurora.org> > Signed-off-by: Maya Erez <merez@codeaurora.org> > Signed-off-by: Kalle Valo <kvalo@codeaurora.org> 11 patches applied to ath-next branch of ath.git, thanks. b913e33076c8 wil6210: do not reset FW in STA to P2P client interface switch c903ece596cb wil6210: enlarge Tx status ring size 96b77bb04470 wil6210: increase the frequency of status ring hw tail update c5b3a6582b1e wil6210: Add support for setting RBUFCAP configuration dedec35b4019 wil6210: fix printout in wil_read_pmccfg f2b6b46e483b wil6210: clear FW and ucode log address c478ac9daae6 wil6210: update cid boundary check of wil_find_cid/_by_idx() 3e7ee09d36a6 wil6210: publish max_msdu_size to FW on BCAST ring 9b586118730e wil6210: add support for reading multiple RFs temperature via debugfs 2a32c20b76af wil6210: set WIL_WMI_CALL_GENERAL_TO_MS as wmi_call timeout 1a276003111c wil6210: drop old event after wmi_call timeout
diff --git a/drivers/net/wireless/ath/wil6210/cfg80211.c b/drivers/net/wireless/ath/wil6210/cfg80211.c index e9780fc..1a4223f 100644 --- a/drivers/net/wireless/ath/wil6210/cfg80211.c +++ b/drivers/net/wireless/ath/wil6210/cfg80211.c @@ -643,6 +643,16 @@ static int wil_cfg80211_del_iface(struct wiphy *wiphy, return rc; } +static bool wil_is_safe_switch(enum nl80211_iftype from, + enum nl80211_iftype to) +{ + if (from == NL80211_IFTYPE_STATION && + to == NL80211_IFTYPE_P2P_CLIENT) + return true; + + return false; +} + static int wil_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev, enum nl80211_iftype type, @@ -668,7 +678,8 @@ static int wil_cfg80211_change_iface(struct wiphy *wiphy, * because it can cause significant disruption */ if (!wil_has_other_active_ifaces(wil, ndev, true, false) && - netif_running(ndev) && !wil_is_recovery_blocked(wil)) { + netif_running(ndev) && !wil_is_recovery_blocked(wil) && + !wil_is_safe_switch(wdev->iftype, type)) { wil_dbg_misc(wil, "interface is up. resetting...\n"); mutex_lock(&wil->mutex); __wil_down(wil);