From 17d62673a94d048efd429c320e1c13ee0127db49 Mon Sep 17 00:00:00 2001 From: Jeff Johnson Date: Mon, 27 Mar 2017 08:00:11 -0700 Subject: [PATCH] qcacld-3.0: Fix HDD Bus suspend/resume API issues While implementing the fix for "qcacld-3.0: Fix wlan_hdd_driver_ops kernel-doc" it was observed that the kernel-doc for functions wlan_hdd_bus_suspend() and wlan_hdd_bus_resume() did not match the function signatures. Update the kernel-doc to match the actual code, and in the case of wlan_hdd_bus_suspend() update one call in hdd_enable_ext_wow() to align with the real interface instead of the previously documented interface. Change-Id: I6f25c954f5328a029fadeceadc23cfc242de6bf7 CRs-Fixed: 2025169 --- core/hdd/inc/wlan_hdd_driver_ops.h | 8 +++--- core/hdd/src/wlan_hdd_ioctl.c | 40 +++++++++++++++--------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/core/hdd/inc/wlan_hdd_driver_ops.h b/core/hdd/inc/wlan_hdd_driver_ops.h index 573afd4fde6b..bacf90deccf9 100644 --- a/core/hdd/inc/wlan_hdd_driver_ops.h +++ b/core/hdd/inc/wlan_hdd_driver_ops.h @@ -64,7 +64,7 @@ void wlan_hdd_unregister_driver(void); * This function is called by the platform driver to suspend the * wlan bus * - * Return: QDF_STATUS + * Return: 0 on success, negative errno on error */ int wlan_hdd_bus_suspend(void); @@ -81,17 +81,17 @@ int wlan_hdd_bus_suspend(void); int wlan_hdd_bus_suspend_noirq(void); /** - * wlan_hdd_bus_resume(): wake up the bus + * wlan_hdd_bus_resume() - wake up the bus * * This function is called by the platform driver to resume wlan * bus * - * Return: void + * Return: 0 for success and negative errno if failure */ int wlan_hdd_bus_resume(void); /** - * wlan_hdd_bus_resume_noirq(): handle bus resume no irq + * wlan_hdd_bus_resume_noirq() - handle bus resume no irq * * This function is called by the platform driver to do bus * resume no IRQ before calling resume callback. Call WMA and HIF diff --git a/core/hdd/src/wlan_hdd_ioctl.c b/core/hdd/src/wlan_hdd_ioctl.c index 24719c15e974..4801faba7599 100644 --- a/core/hdd/src/wlan_hdd_ioctl.c +++ b/core/hdd/src/wlan_hdd_ioctl.c @@ -1883,7 +1883,7 @@ static int hdd_enable_ext_wow(hdd_adapter_t *adapter, tpSirExtWoWParams arg_params) { tSirExtWoWParams params; - QDF_STATUS qdf_ret_status = QDF_STATUS_E_FAILURE; + QDF_STATUS qdf_ret_status; hdd_context_t *hdd_ctx = WLAN_HDD_GET_CTX(adapter); tHalHandle hHal = WLAN_HDD_GET_HAL_CTX(adapter); int rc; @@ -1908,29 +1908,29 @@ static int hdd_enable_ext_wow(hdd_adapter_t *adapter, return -EPERM; } - if (hdd_ctx->ext_wow_should_suspend) { - if (hdd_ctx->config->extWowGotoSuspend) { - hdd_info("Received ready to ExtWoW. Going to suspend"); - - rc = wlan_hdd_cfg80211_suspend_wlan(hdd_ctx->wiphy, NULL); - if (rc < 0) { - hdd_err("wlan_hdd_cfg80211_suspend_wlan failed, error = %d", - rc); - return rc; - } - qdf_ret_status = wlan_hdd_bus_suspend(); - if (qdf_ret_status != QDF_STATUS_SUCCESS) { - hdd_err("wlan_hdd_suspend failed, status = %d", - qdf_ret_status); - wlan_hdd_cfg80211_resume_wlan(hdd_ctx->wiphy); - return -EPERM; - } - } - } else { + if (!hdd_ctx->ext_wow_should_suspend) { hdd_err("Received ready to ExtWoW failure"); return -EPERM; } + if (hdd_ctx->config->extWowGotoSuspend) { + hdd_info("Received ready to ExtWoW. Going to suspend"); + + rc = wlan_hdd_cfg80211_suspend_wlan(hdd_ctx->wiphy, NULL); + if (rc < 0) { + hdd_err("wlan_hdd_cfg80211_suspend_wlan failed, error = %d", + rc); + return rc; + } + rc = wlan_hdd_bus_suspend(); + if (rc) { + hdd_err("wlan_hdd_bus_suspend failed, status = %d", + rc); + wlan_hdd_cfg80211_resume_wlan(hdd_ctx->wiphy); + return rc; + } + } + return 0; }