brcmfmac: add .update_connect_params() callback
authorArend Van Spriel <arend.vanspriel@broadcom.com>
Fri, 27 Jan 2017 12:27:48 +0000 (12:27 +0000)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 31 Jan 2017 07:24:59 +0000 (09:24 +0200)
Add support for the .update_connect_params() callback for roaming
or subsequent (re)association.

Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
Reviewed-by: Franky Lin <franky.lin@broadcom.com>
Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c

index ab1f9f2395ad9a2b2331fe973900e88a8e3706ed..0e28d0710af5957abb5c911b21778cdd1542ecf1 100644 (file)
@@ -5067,6 +5067,29 @@ static int brcmf_cfg80211_tdls_oper(struct wiphy *wiphy,
        return ret;
 }
 
+static int
+brcmf_cfg80211_update_conn_params(struct wiphy *wiphy,
+                                 struct net_device *ndev,
+                                 struct cfg80211_connect_params *sme,
+                                 u32 changed)
+{
+       struct brcmf_if *ifp;
+       int err;
+
+       if (!(changed & UPDATE_ASSOC_IES))
+               return 0;
+
+       ifp = netdev_priv(ndev);
+       err = brcmf_vif_set_mgmt_ie(ifp->vif, BRCMF_VNDR_IE_ASSOCREQ_FLAG,
+                                   sme->ie, sme->ie_len);
+       if (err)
+               brcmf_err("Set Assoc REQ IE Failed\n");
+       else
+               brcmf_dbg(TRACE, "Applied Vndr IEs for Assoc request\n");
+
+       return err;
+}
+
 #ifdef CONFIG_PM
 static int
 brcmf_cfg80211_set_rekey_data(struct wiphy *wiphy, struct net_device *ndev,
@@ -5134,6 +5157,7 @@ static struct cfg80211_ops brcmf_cfg80211_ops = {
        .crit_proto_start = brcmf_cfg80211_crit_proto_start,
        .crit_proto_stop = brcmf_cfg80211_crit_proto_stop,
        .tdls_oper = brcmf_cfg80211_tdls_oper,
+       .update_connect_params = brcmf_cfg80211_update_conn_params,
 };
 
 struct brcmf_cfg80211_vif *brcmf_alloc_vif(struct brcmf_cfg80211_info *cfg,