staging: wilc1000: call power save after changing mode
authorGlen Lee <glen.lee@atmel.com>
Mon, 25 Jan 2016 07:35:18 +0000 (16:35 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Feb 2016 23:25:40 +0000 (15:25 -0800)
host_int_set_power_mgmt should be called after changing operation mode to
work properly. Move the function below host_int_set_operation_mode.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c

index d282a87..4eede2b 100644 (file)
@@ -2131,8 +2131,6 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev,
                break;
 
        case NL80211_IFTYPE_P2P_CLIENT:
-               wilc_enable_ps = false;
-               wilc_set_power_mgmt(vif, 0, 0);
                wilc_connecting = 0;
                PRINT_D(HOSTAPD_DBG, "Interface type = NL80211_IFTYPE_P2P_CLIENT\n");
 
@@ -2141,6 +2139,9 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev,
                vif->monitor_flag = 0;
                vif->iftype = CLIENT_MODE;
                wilc_set_operation_mode(vif, STATION_MODE);
+
+               wilc_enable_ps = false;
+               wilc_set_power_mgmt(vif, 0, 0);
                break;
 
        case NL80211_IFTYPE_AP:
@@ -2163,14 +2164,15 @@ static int change_virtual_intf(struct wiphy *wiphy, struct net_device *dev,
                wilc_optaining_ip = true;
                mod_timer(&wilc_during_ip_timer,
                          jiffies + msecs_to_jiffies(during_ip_time));
-               wilc_set_power_mgmt(vif, 0, 0);
-               wilc_enable_ps = false;
                PRINT_D(HOSTAPD_DBG, "Interface type = NL80211_IFTYPE_GO\n");
 
                wilc_set_operation_mode(vif, AP_MODE);
                dev->ieee80211_ptr->iftype = type;
                priv->wdev->iftype = type;
                vif->iftype = GO_MODE;
+
+               wilc_enable_ps = false;
+               wilc_set_power_mgmt(vif, 0, 0);
                break;
 
        default: