mac80211: set smps_mode according to ap params
authorEliad Peller <eliad@wizery.com>
Wed, 10 Sep 2014 11:07:35 +0000 (14:07 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 11 Sep 2014 11:37:02 +0000 (13:37 +0200)
Take the requested smps mode from the ap params
(instead of always starting with SMPS_OFF)

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/cfg.c

index 101ae6c..fb6a150 100644 (file)
@@ -683,8 +683,19 @@ static int ieee80211_start_ap(struct wiphy *wiphy, struct net_device *dev,
        if (old)
                return -EALREADY;
 
-       /* TODO: make hostapd tell us what it wants */
-       sdata->smps_mode = IEEE80211_SMPS_OFF;
+       switch (params->smps_mode) {
+       case NL80211_SMPS_OFF:
+               sdata->smps_mode = IEEE80211_SMPS_OFF;
+               break;
+       case NL80211_SMPS_STATIC:
+               sdata->smps_mode = IEEE80211_SMPS_STATIC;
+               break;
+       case NL80211_SMPS_DYNAMIC:
+               sdata->smps_mode = IEEE80211_SMPS_DYNAMIC;
+               break;
+       default:
+               return -EINVAL;
+       }
        sdata->needed_rx_chains = sdata->local->rx_chains;
 
        mutex_lock(&local->mtx);