diff --git a/core/hdd/inc/wlan_hdd_wowl.h b/core/hdd/inc/wlan_hdd_wowl.h index d039664b3a26..a1b30fa652a9 100644 --- a/core/hdd/inc/wlan_hdd_wowl.h +++ b/core/hdd/inc/wlan_hdd_wowl.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2017 The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2018 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -153,26 +153,6 @@ bool hdd_add_wowl_ptrn_debugfs(struct hdd_adapter *adapter, uint8_t pattern_idx, bool hdd_del_wowl_ptrn_debugfs(struct hdd_adapter *adapter, uint8_t pattern_idx); -/** - * hdd_enter_wowl() - Function which will enable WoWL. At least one - * of MP and PBM must be enabled - * @adapter: pointer to the adapter - * @enable_mp: Whether to enable magic packet WoWL mode - * @enable_pbm: Whether to enable pattern byte matching WoWL mode - * - * Return: false if any errors encountered, true otherwise - */ -bool hdd_enter_wowl(struct hdd_adapter *adapter, - bool enable_mp, bool enable_pbm); - -/** - * hdd_exit_wowl() - Function which will disable WoWL - * @adapter: pointer to the adapter - * - * Return: false if any errors encountered, true otherwise - */ -bool hdd_exit_wowl(struct hdd_adapter *adapter); - /** * hdd_free_user_wowl_ptrns() - Deinit function to cleanup WoWL allocated memory * diff --git a/core/hdd/src/wlan_hdd_debugfs.c b/core/hdd/src/wlan_hdd_debugfs.c index 7131fd67cfb3..960bc0c7ef58 100644 --- a/core/hdd/src/wlan_hdd_debugfs.c +++ b/core/hdd/src/wlan_hdd_debugfs.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2017 The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2018 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -50,126 +50,6 @@ #define POWER_DEBUGFS_BUFFER_MAX_LEN 4096 #endif -/** - * __wcnss_wowenable_write() - wow_enable debugfs handler - * @file: debugfs file handle - * @buf: text being written to the debugfs - * @count: size of @buf - * @ppos: (unused) offset into the virtual file system - * - * Return: number of bytes processed - */ -static ssize_t __wcnss_wowenable_write(struct file *file, - const char __user *buf, size_t count, - loff_t *ppos) -{ - struct hdd_adapter *adapter; - struct hdd_context *hdd_ctx; - char cmd[MAX_USER_COMMAND_SIZE_WOWL_ENABLE + 1]; - char *sptr, *token; - uint8_t wow_enable = 0; - uint8_t wow_mp = 0; - uint8_t wow_pbm = 0; - int ret; - - ENTER(); - - adapter = (struct hdd_adapter *)file->private_data; - if ((NULL == adapter) || (WLAN_HDD_ADAPTER_MAGIC != adapter->magic)) { - hdd_err("Invalid adapter or adapter has invalid magic"); - return -EINVAL; - } - - hdd_ctx = WLAN_HDD_GET_CTX(adapter); - ret = wlan_hdd_validate_context(hdd_ctx); - if (0 != ret) - return ret; - - if (!wlan_hdd_validate_modules_state(hdd_ctx)) - return -EINVAL; - - if (!sme_is_feature_supported_by_fw(WOW)) { - hdd_err("Wake-on-Wireless feature is not supported in firmware!"); - return -EINVAL; - } - - if (count > MAX_USER_COMMAND_SIZE_WOWL_ENABLE) { - hdd_err("Command length is larger than %d bytes", - MAX_USER_COMMAND_SIZE_WOWL_ENABLE); - return -EINVAL; - } - - /* Get command from user */ - if (copy_from_user(cmd, buf, count)) - return -EFAULT; - cmd[count] = '\0'; - sptr = cmd; - - /* Get enable or disable wow */ - token = strsep(&sptr, " "); - if (!token) - return -EINVAL; - if (kstrtou8(token, 0, &wow_enable)) - return -EINVAL; - - /* Disable wow */ - if (!wow_enable) { - if (!hdd_exit_wowl(adapter)) { - hdd_err("hdd_exit_wowl failed!"); - return -EFAULT; - } - - return count; - } - - /* Get enable or disable magic packet mode */ - token = strsep(&sptr, " "); - if (!token) - return -EINVAL; - if (kstrtou8(token, 0, &wow_mp)) - return -EINVAL; - if (wow_mp > 1) - wow_mp = 1; - - /* Get enable or disable pattern byte matching mode */ - token = strsep(&sptr, " "); - if (!token) - return -EINVAL; - if (kstrtou8(token, 0, &wow_pbm)) - return -EINVAL; - if (wow_pbm > 1) - wow_pbm = 1; - - if (!hdd_enter_wowl(adapter, wow_mp, wow_pbm)) { - hdd_err("hdd_enter_wowl failed!"); - return -EFAULT; - } - EXIT(); - return count; -} - -/** - * wcnss_wowenable_write() - SSR wrapper for wcnss_wowenable_write - * @file: file pointer - * @buf: buffer - * @count: count - * @ppos: position pointer - * - * Return: 0 on success, error number otherwise - */ -static ssize_t wcnss_wowenable_write(struct file *file, - const char __user *buf, - size_t count, loff_t *ppos) -{ - ssize_t ret; - - cds_ssr_protect(__func__); - ret = __wcnss_wowenable_write(file, buf, count, ppos); - cds_ssr_unprotect(__func__); - - return ret; -} - /** * __wcnss_wowpattern_write() - wow_pattern debugfs handler * @file: debugfs file handle @@ -779,13 +659,6 @@ static int wcnss_debugfs_open(struct inode *inode, struct file *file) return ret; } -static const struct file_operations fops_wowenable = { - .write = wcnss_wowenable_write, - .open = wcnss_debugfs_open, - .owner = THIS_MODULE, - .llseek = default_llseek, -}; - static const struct file_operations fops_wowpattern = { .write = wcnss_wowpattern_write, .open = wcnss_debugfs_open, @@ -852,11 +725,6 @@ QDF_STATUS hdd_debugfs_init(struct hdd_adapter *adapter) if (NULL == adapter->debugfs_phy) return QDF_STATUS_E_FAILURE; - if (NULL == debugfs_create_file("wow_enable", 00400 | 00200, - adapter->debugfs_phy, adapter, - &fops_wowenable)) - return QDF_STATUS_E_FAILURE; - if (NULL == debugfs_create_file("wow_pattern", 00400 | 00200, adapter->debugfs_phy, adapter, &fops_wowpattern)) diff --git a/core/hdd/src/wlan_hdd_wext.c b/core/hdd/src/wlan_hdd_wext.c index 0c2ee4433fba..305ca6b7f90a 100644 --- a/core/hdd/src/wlan_hdd_wext.c +++ b/core/hdd/src/wlan_hdd_wext.c @@ -5570,7 +5570,6 @@ static int __iw_setint_getnone(struct net_device *dev, int sub_cmd = value[0]; int set_value = value[1]; int ret; - int enable_pbm, enable_mp; QDF_STATUS status; void *soc = NULL; struct cdp_pdev *pdev = NULL; @@ -5616,34 +5615,6 @@ static int __iw_setint_getnone(struct net_device *dev, break; } - case WE_WOWL: - { - if (!hHal) - return -EINVAL; - - switch (set_value) { - case 0x00: - hdd_exit_wowl(adapter); - break; - case 0x01: - case 0x02: - case 0x03: - enable_mp = (set_value & 0x01) ? 1 : 0; - enable_pbm = (set_value & 0x02) ? 1 : 0; - hdd_debug("magic packet ? = %s pattern byte matching ? = %s", - (enable_mp ? "YES" : "NO"), - (enable_pbm ? "YES" : "NO")); - hdd_enter_wowl(adapter, enable_mp, enable_pbm); - break; - default: - hdd_err("Invalid arg %d in WE_WOWL IOCTL", - set_value); - ret = -EINVAL; - break; - } - - break; - } case WE_SET_POWER: { if (!hHal) @@ -6806,7 +6777,7 @@ static int __iw_setint_getnone(struct net_device *dev, hdd_ctx->config->enableModulatedDTIM = set_value; break; default: - hdd_err("Invalid sub command %d", sub_cmd); + hdd_debug("Invalid sub command %d", sub_cmd); ret = -EINVAL; break; } diff --git a/core/hdd/src/wlan_hdd_wowl.c b/core/hdd/src/wlan_hdd_wowl.c index 6b58a263ffa0..2822458d7649 100644 --- a/core/hdd/src/wlan_hdd_wowl.c +++ b/core/hdd/src/wlan_hdd_wowl.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2017 The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2018 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -59,20 +59,6 @@ static inline int find_ptrn_len(const char *ptrn) return len; } -static void hdd_wowl_callback(void *pContext, QDF_STATUS qdf_ret_status) -{ - hdd_info("Return code = (%d)", qdf_ret_status); -} - -#ifdef WLAN_WAKEUP_EVENTS -static void hdd_wowl_wake_indication_callback(void *pContext, - tpSirWakeReasonInd wake_reason_ind) -{ - hdd_info("Wake Reason %d", wake_reason_ind->ulReason); - hdd_exit_wowl((struct hdd_adapter *) pContext); -} -#endif - /** * dump_hdd_wowl_ptrn() - log wow patterns * @ptrn: pointer to wow pattern @@ -451,82 +437,6 @@ bool hdd_del_wowl_ptrn_debugfs(struct hdd_adapter *adapter, return true; } -/** - * hdd_enter_wowl() - Function which will enable WoWL. At least one - * of MP and PBM must be enabled - * @adapter: pointer to the adapter - * @enable_mp: Whether to enable magic packet WoWL mode - * @enable_pbm: Whether to enable pattern byte matching WoWL mode - * - * Return: false if any errors encountered, true otherwise - */ -bool hdd_enter_wowl(struct hdd_adapter *adapter, - bool enable_mp, bool enable_pbm) -{ - tSirSmeWowlEnterParams wowParams; - QDF_STATUS qdf_ret_status; - tHalHandle hHal = WLAN_HDD_GET_HAL_CTX(adapter); - - qdf_mem_zero(&wowParams, sizeof(tSirSmeWowlEnterParams)); - - wowParams.ucPatternFilteringEnable = enable_pbm; - wowParams.ucMagicPktEnable = enable_mp; - wowParams.sessionId = adapter->session_id; - if (enable_mp) { - qdf_copy_macaddr(&wowParams.magic_ptrn, - &adapter->mac_addr); - } -#ifdef WLAN_WAKEUP_EVENTS - wowParams.ucWoWEAPIDRequestEnable = true; - wowParams.ucWoWEAPOL4WayEnable = true; - wowParams.ucWowNetScanOffloadMatch = true; - wowParams.ucWowGTKRekeyError = true; - wowParams.ucWoWBSSConnLoss = true; -#endif /* WLAN_WAKEUP_EVENTS */ - - /* Request to put FW into WoWL */ - qdf_ret_status = sme_enter_wowl(hHal, hdd_wowl_callback, adapter, -#ifdef WLAN_WAKEUP_EVENTS - hdd_wowl_wake_indication_callback, - adapter, -#endif /* WLAN_WAKEUP_EVENTS */ - &wowParams, adapter->session_id); - - if (!QDF_IS_STATUS_SUCCESS(qdf_ret_status)) { - if (QDF_STATUS_PMC_PENDING != qdf_ret_status) { - /* We failed to enter WoWL */ - hdd_err("sme_enter_wowl failed with error code (%d)", - qdf_ret_status); - return false; - } - } - return true; -} - -/** - * hdd_exit_wowl() - Function which will disable WoWL - * @adapter: pointer to the adapter - * - * Return: false if any errors encountered, true otherwise - */ -bool hdd_exit_wowl(struct hdd_adapter *adapter) -{ - tSirSmeWowlExitParams wowParams; - tHalHandle hHal = WLAN_HDD_GET_HAL_CTX(adapter); - QDF_STATUS qdf_ret_status; - - wowParams.sessionId = adapter->session_id; - - qdf_ret_status = sme_exit_wowl(hHal, &wowParams); - if (!QDF_IS_STATUS_SUCCESS(qdf_ret_status)) { - hdd_err("sme_exit_wowl failed with error code (%d)", - qdf_ret_status); - return false; - } - - return true; -} - void hdd_free_user_wowl_ptrns(void) { int i; diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 6487ed4f1008..40ac22619c98 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -4124,105 +4124,6 @@ QDF_STATUS sme_oem_get_capability(tHalHandle hal, } #endif -/** - * sme_enter_wowl(): SME API exposed to HDD to request enabling of WOWL mode. - * @hal_ctx - The handle returned by mac_open. - * @enter_wowl_callback_routine - Callback routine provided by HDD. - * Used for success/failure notification by SME - * @enter_wowl_callback_context - A cookie passed by HDD, that is passed - * back to HDD at the time of callback. - * @wake_reason_ind_cb - Callback routine provided by HDD. - * Used for Wake Reason Indication by SME - * @wake_reason_ind_cb_ctx - A cookie passed by HDD, that is passed - * back to HDD at the time of callback. - * - * WoWLAN works on top of BMPS mode. - * If the device is not in BMPS mode, - * SME will will cache the information that - * WOWL has been enabled and attempt to put the device - * in BMPS. On entry into BMPS, SME will enable the - * WOWL mode. - * Note 1: If we exit BMPS mode (someone requests full power), - * we will NOT resume WOWL when we go back to BMPS again. - * Request for full power (while in WOWL mode) means disable - * WOWL and go to full power. - * Note 2: Both UAPSD and WOWL work on top of BMPS. - * On entry into BMPS, SME will give priority to UAPSD and - * enable only UAPSD if both UAPSD and WOWL are required. - * Currently there is no requirement or use case to support - * UAPSD and WOWL at the same time. - * - * Return: QDF_STATUS - * QDF_STATUS_SUCCESS Device is already in WoWLAN mode - * QDF_STATUS_E_FAILURE Device cannot enter WoWLAN mode. - * QDF_STATUS_PMC_PENDING Request accepted. SME will enable - * WOWL after BMPS mode is entered. - */ -QDF_STATUS sme_enter_wowl(tHalHandle hal_ctx, - void (*enter_wowl_callback_routine)(void - *callback_context, - QDF_STATUS status), - void *enter_wowl_callback_context, -#ifdef WLAN_WAKEUP_EVENTS - void (*wakeIndicationCB)(void *callback_context, - tpSirWakeReasonInd - wake_reason_ind), - void *wakeIndicationCBContext, -#endif /* WLAN_WAKEUP_EVENTS */ - tpSirSmeWowlEnterParams wowl_enter_params, - uint8_t session_id) -{ - QDF_STATUS status = QDF_STATUS_E_FAILURE; - tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal_ctx); - struct ps_global_info *ps_global_info = &mac_ctx->sme.ps_global_info; - - MTRACE(qdf_trace(QDF_MODULE_ID_SME, - TRACE_CODE_SME_RX_HDD_ENTER_WOWL, session_id, 0)); - - /* cache the WOWL information */ - ps_global_info->ps_params[session_id].wowl_enter_params = - *wowl_enter_params; - ps_global_info->ps_params[session_id].enter_wowl_callback_routine = - enter_wowl_callback_routine; - ps_global_info->ps_params[session_id].enter_wowl_callback_context = - enter_wowl_callback_context; -#ifdef WLAN_WAKEUP_EVENTS - /* Cache the Wake Reason Indication callback information */ - ps_global_info->ps_params[session_id].wake_reason_ind_cb = - wakeIndicationCB; - ps_global_info->ps_params[session_id].wake_reason_ind_cb_ctx = - wakeIndicationCBContext; -#endif /* WLAN_WAKEUP_EVENTS */ - - status = sme_ps_process_command(mac_ctx, session_id, SME_PS_WOWL_ENTER); - return status; -} -/** - *sme_exit_wowl(): SME API exposed to HDD to request exit from WoWLAN mode. - * @hal_ctx - The handle returned by mac_open. - * @wowl_exit_params - Carries info on which smesession - * wowl exit is requested. - * - * SME will initiate exit from WoWLAN mode and device will be - * put in BMPS mode. - * Return QDF_STATUS - * QDF_STATUS_E_FAILURE Device cannot exit WoWLAN mode. - * QDF_STATUS_SUCCESS Request accepted to exit WoWLAN mode. - */ -QDF_STATUS sme_exit_wowl(tHalHandle hal_ctx, - tpSirSmeWowlExitParams wowl_exit_params) -{ - QDF_STATUS status = QDF_STATUS_E_FAILURE; - tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal_ctx); - uint8_t session_id; - - MTRACE(qdf_trace(QDF_MODULE_ID_SME, - TRACE_CODE_SME_RX_HDD_EXIT_WOWL, NO_SESSION, 0)); - session_id = wowl_exit_params->sessionId; - status = sme_ps_process_command(mac_ctx, session_id, SME_PS_WOWL_EXIT); - return status; -} - /** * sme_roam_set_key() - To set encryption key. * @hal: hal global context diff --git a/core/sme/src/common/sme_power_save.c b/core/sme/src/common/sme_power_save.c index 1eb67c02c952..8bdf8c6ccf1e 100644 --- a/core/sme/src/common/sme_power_save.c +++ b/core/sme/src/common/sme_power_save.c @@ -289,142 +289,6 @@ static QDF_STATUS sme_ps_disable_uapsd_req_params(tpAniSirGlobal mac_ctx, return QDF_STATUS_SUCCESS; } -/** - * sme_ps_enter_wowl_req_params(): enable WOWL req Parama - * @mac_ctx: global mac context - * @session_id: session id - * - * Return: QDF_STATUS - */ -static QDF_STATUS sme_ps_enter_wowl_req_params(tpAniSirGlobal mac_ctx, - uint32_t session_id) -{ - struct sSirHalWowlEnterParams *hal_wowl_params; - struct sSirSmeWowlEnterParams *sme_wowl_params; - uint32_t cfg_value = 0; - struct ps_global_info *ps_global_info = &mac_ctx->sme.ps_global_info; - - sme_wowl_params = - &ps_global_info->ps_params[session_id].wowl_enter_params; - - hal_wowl_params = qdf_mem_malloc(sizeof(*hal_wowl_params)); - if (NULL == hal_wowl_params) { - sme_err("Fail to allocate memory for Enter Wowl Request"); - return QDF_STATUS_E_NOMEM; - } - - /* fill in the message field */ - hal_wowl_params->ucMagicPktEnable = sme_wowl_params->ucMagicPktEnable; - hal_wowl_params->ucPatternFilteringEnable = - sme_wowl_params->ucPatternFilteringEnable; - qdf_copy_macaddr(&hal_wowl_params->magic_ptrn, - &sme_wowl_params->magic_ptrn); - -#ifdef WLAN_WAKEUP_EVENTS - hal_wowl_params->ucWoWEAPIDRequestEnable = - sme_wowl_params->ucWoWEAPIDRequestEnable; - hal_wowl_params->ucWoWEAPOL4WayEnable = - sme_wowl_params->ucWoWEAPOL4WayEnable; - hal_wowl_params->ucWowNetScanOffloadMatch = - sme_wowl_params->ucWowNetScanOffloadMatch; - hal_wowl_params->ucWowGTKRekeyError = - sme_wowl_params->ucWowGTKRekeyError; - hal_wowl_params->ucWoWBSSConnLoss = - sme_wowl_params->ucWoWBSSConnLoss; -#endif /* WLAN_WAKEUP_EVENTS */ - - if (wlan_cfg_get_int - (mac_ctx, WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE, - &cfg_value) != eSIR_SUCCESS) { - sme_err("cfgGet failed for WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE"); - goto end; - } - hal_wowl_params->ucUcastPatternFilteringEnable = (uint8_t) cfg_value; - - if (wlan_cfg_get_int - (mac_ctx, WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE, - &cfg_value) != eSIR_SUCCESS) { - sme_err("cfgGet failed for WNI_CFG_WOWLAN_CHANNEL_SWITCH_ENABLE"); - goto end; - } - hal_wowl_params->ucWowChnlSwitchRcv = (uint8_t) cfg_value; - - if (wlan_cfg_get_int - (mac_ctx, WNI_CFG_WOWLAN_DEAUTH_ENABLE, &cfg_value) != - eSIR_SUCCESS) { - sme_err("cfgGet failed for WNI_CFG_WOWLAN_DEAUTH_ENABLE"); - goto end; - } - hal_wowl_params->ucWowDeauthRcv = (uint8_t) cfg_value; - - if (wlan_cfg_get_int - (mac_ctx, WNI_CFG_WOWLAN_DISASSOC_ENABLE, &cfg_value) != - eSIR_SUCCESS) { - sme_err("cfgGet failed for WNI_CFG_WOWLAN_DISASSOC_ENABLE"); - goto end; - } - hal_wowl_params->ucWowDisassocRcv = (uint8_t) cfg_value; - - if (wlan_cfg_get_int(mac_ctx, WNI_CFG_WOWLAN_MAX_MISSED_BEACON, - &cfg_value) != eSIR_SUCCESS) { - sme_err("cfgGet failed for WNI_CFG_WOWLAN_MAX_MISSED_BEACON"); - goto end; - } - hal_wowl_params->ucWowMaxMissedBeacons = (uint8_t) cfg_value; - - if (wlan_cfg_get_int(mac_ctx, WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD, - &cfg_value) != eSIR_SUCCESS) { - sme_err("cfgGet failed for WNI_CFG_WOWLAN_MAX_SLEEP_PERIOD"); - goto end; - } - hal_wowl_params->ucWowMaxSleepUsec = (uint8_t) cfg_value; - - hal_wowl_params->sessionId = sme_wowl_params->sessionId; - - if (QDF_STATUS_SUCCESS == sme_post_ps_msg_to_wma(WMA_WOWL_ENTER_REQ, - hal_wowl_params)){ - QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, - FL("Msg WMA_WOWL_ENTER_REQ Successfully sent to WMA")); - return QDF_STATUS_SUCCESS; - } else { - return QDF_STATUS_E_FAILURE; - } - -end: - if (hal_wowl_params != NULL) - qdf_mem_free(hal_wowl_params); - return QDF_STATUS_E_FAILURE; -} - -/** - * sme_ps_exit_wowl_req_params(): Exit WOWL req params - * @mac_ctx: global mac context - * @session_id: session id - * - * Return: QDF_STATUS - */ -static QDF_STATUS sme_ps_exit_wowl_req_params(tpAniSirGlobal mac_ctx, - uint32_t session_id) -{ - struct sSirHalWowlExitParams *hal_wowl_msg; - - hal_wowl_msg = qdf_mem_malloc(sizeof(*hal_wowl_msg)); - if (NULL == hal_wowl_msg) { - sme_err("Fail to allocate memory for WoWLAN Add Bcast Pattern"); - return QDF_STATUS_E_NOMEM; - } - hal_wowl_msg->sessionId = session_id; - - if (QDF_STATUS_SUCCESS == sme_post_ps_msg_to_wma(WMA_WOWL_EXIT_REQ, - hal_wowl_msg)){ - QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, - FL("Msg WMA_WOWL_EXIT_REQ Successfully sent to WMA")); - return QDF_STATUS_SUCCESS; - } else { - return QDF_STATUS_E_FAILURE; - } -} - /** * sme_ps_process_command(): Sme process power save messages * and pass messages to WMA. @@ -458,13 +322,6 @@ QDF_STATUS sme_ps_process_command(tpAniSirGlobal mac_ctx, uint32_t session_id, case SME_PS_UAPSD_DISABLE: status = sme_ps_disable_uapsd_req_params(mac_ctx, session_id); break; - case SME_PS_WOWL_ENTER: - status = sme_ps_enter_wowl_req_params(mac_ctx, session_id); - break; - case SME_PS_WOWL_EXIT: - status = sme_ps_exit_wowl_req_params(mac_ctx, session_id); - break; - default: sme_err("Invalid command type: %d", command); status = QDF_STATUS_E_FAILURE;