|
@@ -914,6 +914,33 @@ static int mwifiex_cfg80211_set_cqm_rssi_config(struct wiphy *wiphy,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+/* cfg80211 operation handler for change_beacon.
|
|
|
+ * Function retrieves and sets modified management IEs to FW.
|
|
|
+ */
|
|
|
+static int mwifiex_cfg80211_change_beacon(struct wiphy *wiphy,
|
|
|
+ struct net_device *dev,
|
|
|
+ struct cfg80211_beacon_data *data)
|
|
|
+{
|
|
|
+ struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
|
|
|
+
|
|
|
+ if (priv->bss_type != MWIFIEX_BSS_TYPE_UAP) {
|
|
|
+ wiphy_err(wiphy, "%s: bss_type mismatched\n", __func__);
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!priv->bss_started) {
|
|
|
+ wiphy_err(wiphy, "%s: bss not started\n", __func__);
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (mwifiex_set_mgmt_ies(priv, data)) {
|
|
|
+ wiphy_err(wiphy, "%s: setting mgmt ies failed\n", __func__);
|
|
|
+ return -EFAULT;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
/* cfg80211 operation handler for stop ap.
|
|
|
* Function stops BSS running at uAP interface.
|
|
|
*/
|
|
@@ -1697,6 +1724,7 @@ static struct cfg80211_ops mwifiex_cfg80211_ops = {
|
|
|
.set_bitrate_mask = mwifiex_cfg80211_set_bitrate_mask,
|
|
|
.start_ap = mwifiex_cfg80211_start_ap,
|
|
|
.stop_ap = mwifiex_cfg80211_stop_ap,
|
|
|
+ .change_beacon = mwifiex_cfg80211_change_beacon,
|
|
|
.set_cqm_rssi_config = mwifiex_cfg80211_set_cqm_rssi_config,
|
|
|
};
|
|
|
|