diff --git a/core/hdd/src/wlan_hdd_wext.c b/core/hdd/src/wlan_hdd_wext.c index 82d1820f29d3..0386e756162f 100644 --- a/core/hdd/src/wlan_hdd_wext.c +++ b/core/hdd/src/wlan_hdd_wext.c @@ -4126,6 +4126,39 @@ static int hdd_we_set_11d_state(struct hdd_context *hdd_ctx, int state_11d) return 0; } +static int hdd_we_set_power(struct hdd_adapter *adapter, int value) +{ + struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter); + mac_handle_t mac_handle = hdd_ctx->mac_handle; + + if (!mac_handle) + return -EINVAL; + + switch (value) { + case 1: + /* Enable PowerSave */ + sme_ps_enable_disable(mac_handle, adapter->session_id, + SME_PS_ENABLE); + return 0; + case 2: + /* Disable PowerSave */ + sme_ps_enable_disable(mac_handle, adapter->session_id, + SME_PS_DISABLE); + return 0; + case 3: + /* Enable UASPD */ + sme_ps_uapsd_enable(mac_handle, adapter->session_id); + return 0; + case 4: + /* Disable UASPD */ + sme_ps_uapsd_disable(mac_handle, adapter->session_id); + return 0; + default: + hdd_err("Invalid value %d", value); + return -EINVAL; + } +} + /** * iw_setint_getnone() - Generic "set integer" private ioctl handler * @dev: device upon which the ioctl was received @@ -4153,11 +4186,11 @@ static int __iw_setint_getnone(struct net_device *dev, hdd_ctx = WLAN_HDD_GET_CTX(adapter); ret = wlan_hdd_validate_context(hdd_ctx); - if (0 != ret) + if (ret) return ret; ret = hdd_check_private_wext_control(hdd_ctx, info); - if (0 != ret) + if (ret) return ret; mac_handle = hdd_ctx->mac_handle; @@ -4167,35 +4200,8 @@ static int __iw_setint_getnone(struct net_device *dev, break; case WE_SET_POWER: - { - if (!mac_handle) - return -EINVAL; - - switch (set_value) { - case 1: - /* Enable PowerSave */ - sme_ps_enable_disable(mac_handle, adapter->session_id, - SME_PS_ENABLE); - break; - case 2: - /* Disable PowerSave */ - sme_ps_enable_disable(mac_handle, adapter->session_id, - SME_PS_DISABLE); - break; - case 3: /* Enable UASPD */ - sme_ps_uapsd_enable(mac_handle, adapter->session_id); - break; - case 4: /* Disable UASPD */ - sme_ps_uapsd_disable(mac_handle, adapter->session_id); - break; - default: - hdd_err("Invalid arg %d in WE_SET_POWER IOCTL", - set_value); - ret = -EINVAL; - break; - } + ret = hdd_we_set_power(adapter, set_value); break; - } case WE_SET_MAX_ASSOC: {