wil6210: notify cqm packet loss on disable_ap_sme
authorAhmad Masri <amasri@codeaurora.org>
Wed, 31 Oct 2018 08:52:16 +0000 (10:52 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 6 Nov 2018 16:03:11 +0000 (18:03 +0200)
wil6210 used to notify cfg80211_del_sta on every fw disconnect event.
In disable_ap_sme mode the userspace manages the protocol SME and
FW sends disconnect event only due to link loss.

In disable_ap_sme mode, indicate CQM packet loss to let the host
control the connection and disconnect the link if needed.

Signed-off-by: Ahmad Masri <amasri@codeaurora.org>
Signed-off-by: Maya Erez <merez@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/wil6210/wmi.c

index 5ff1862460f0d775d94cb3481f26e30a6415c8b3..fa08a9637f44b28283e7fd775afdca314df67ef9 100644 (file)
@@ -1113,6 +1113,23 @@ static void wmi_evt_disconnect(struct wil6210_vif *vif, int id,
 
        mutex_lock(&wil->mutex);
        wil6210_disconnect_complete(vif, evt->bssid, reason_code);
+       if (disable_ap_sme) {
+               struct wireless_dev *wdev = vif_to_wdev(vif);
+               struct net_device *ndev = vif_to_ndev(vif);
+
+               /* disconnect event in disable_ap_sme mode means link loss */
+               switch (wdev->iftype) {
+               /* AP-like interface */
+               case NL80211_IFTYPE_AP:
+               case NL80211_IFTYPE_P2P_GO:
+                       /* notify hostapd about link loss */
+                       cfg80211_cqm_pktloss_notify(ndev, evt->bssid, 0,
+                                                   GFP_KERNEL);
+                       break;
+               default:
+                       break;
+               }
+       }
        mutex_unlock(&wil->mutex);
 }