From 8d8ab30f21647a74bbab28c8432257eec4393f1d Mon Sep 17 00:00:00 2001 From: Dustin Brown Date: Tue, 5 Mar 2019 16:19:36 -0800 Subject: [PATCH] qcacld-3.0: Migrate to qdf_delayed_work qdf_delayed_work_t has been superseded by qdf_delayed_work. Replace all instances as appropriate. Change-Id: I83f0dcec050bc9f91624048bd171f9a86b0394b5 CRs-Fixed: 2420202 --- components/ipa/core/inc/wlan_ipa_priv.h | 3 ++- components/ipa/core/src/wlan_ipa_rm.c | 22 +++++++++++++++------- core/hdd/inc/wlan_hdd_main.h | 3 ++- core/hdd/src/wlan_hdd_main.c | 19 ++++++++++++++----- 4 files changed, 33 insertions(+), 14 deletions(-) diff --git a/components/ipa/core/inc/wlan_ipa_priv.h b/components/ipa/core/inc/wlan_ipa_priv.h index 45e2d0022afc..5e4824596153 100644 --- a/components/ipa/core/inc/wlan_ipa_priv.h +++ b/components/ipa/core/inc/wlan_ipa_priv.h @@ -36,6 +36,7 @@ #include #include #include +#include "qdf_delayed_work.h" #include #include "wlan_ipa_public_struct.h" @@ -587,7 +588,7 @@ struct wlan_ipa_priv { struct uc_rm_work_struct uc_rm_work; struct uc_op_work_struct uc_op_work[WLAN_IPA_UC_OPCODE_MAX]; qdf_wake_lock_t wake_lock; - qdf_delayed_work_t wake_lock_work; + struct qdf_delayed_work wake_lock_work; bool wake_lock_released; qdf_atomic_t tx_ref_cnt; diff --git a/components/ipa/core/src/wlan_ipa_rm.c b/components/ipa/core/src/wlan_ipa_rm.c index 5b7a0abc8fe0..97af0b317115 100644 --- a/components/ipa/core/src/wlan_ipa_rm.c +++ b/components/ipa/core/src/wlan_ipa_rm.c @@ -17,6 +17,7 @@ */ /* Include Files */ +#include "qdf_delayed_work.h" #include "wlan_ipa_core.h" #include "wlan_ipa_main.h" #include "cdp_txrx_ipa.h" @@ -176,7 +177,7 @@ QDF_STATUS wlan_ipa_wdi_rm_request(struct wlan_ipa_priv *ipa_ctx) } qdf_spin_unlock_bh(&ipa_ctx->rm_lock); - qdf_cancel_delayed_work(&ipa_ctx->wake_lock_work); + qdf_delayed_work_stop_sync(&ipa_ctx->wake_lock_work); return QDF_STATUS_SUCCESS; } @@ -235,9 +236,8 @@ QDF_STATUS wlan_ipa_wdi_rm_try_release(struct wlan_ipa_priv *ipa_ctx) * while there is healthy amount of data transfer going on by * releasing the wake_lock after some delay. */ - qdf_sched_delayed_work(&ipa_ctx->wake_lock_work, - msecs_to_jiffies - (WLAN_IPA_RX_INACTIVITY_MSEC_DELAY)); + qdf_delayed_work_start(&ipa_ctx->wake_lock_work, + WLAN_IPA_RX_INACTIVITY_MSEC_DELAY); return QDF_STATUS_SUCCESS; } @@ -412,6 +412,7 @@ static void wlan_ipa_rm_notify(void *user_data, qdf_ipa_rm_event_t event, QDF_STATUS wlan_ipa_wdi_setup_rm(struct wlan_ipa_priv *ipa_ctx) { qdf_ipa_rm_create_params_t create_params; + QDF_STATUS status; int ret; if (!wlan_ipa_is_rm_enabled(ipa_ctx->config)) @@ -453,9 +454,13 @@ QDF_STATUS wlan_ipa_wdi_setup_rm(struct wlan_ipa_priv *ipa_ctx) goto timer_init_failed; } + status = qdf_delayed_work_create(&ipa_ctx->wake_lock_work, + wlan_ipa_wake_lock_timer_func, + ipa_ctx); + if (QDF_IS_STATUS_ERROR(status)) + goto timer_destroy; + qdf_wake_lock_create(&ipa_ctx->wake_lock, "wlan_ipa"); - qdf_create_delayed_work(&ipa_ctx->wake_lock_work, - wlan_ipa_wake_lock_timer_func, ipa_ctx); qdf_spinlock_create(&ipa_ctx->rm_lock); ipa_ctx->rm_state = WLAN_IPA_RM_RELEASED; ipa_ctx->wake_lock_released = true; @@ -463,6 +468,9 @@ QDF_STATUS wlan_ipa_wdi_setup_rm(struct wlan_ipa_priv *ipa_ctx) return QDF_STATUS_SUCCESS; +timer_destroy: + qdf_ipa_rm_inactivity_timer_destroy(QDF_IPA_RM_RESOURCE_WLAN_PROD); + timer_init_failed: qdf_ipa_rm_delete_resource(QDF_IPA_RM_RESOURCE_APPS_CONS); @@ -480,8 +488,8 @@ void wlan_ipa_wdi_destroy_rm(struct wlan_ipa_priv *ipa_ctx) if (!wlan_ipa_is_rm_enabled(ipa_ctx->config)) return; - qdf_cancel_delayed_work(&ipa_ctx->wake_lock_work); qdf_wake_lock_destroy(&ipa_ctx->wake_lock); + qdf_delayed_work_destroy(&ipa_ctx->wake_lock_work); qdf_cancel_work(&ipa_ctx->uc_rm_work.work); qdf_spinlock_destroy(&ipa_ctx->rm_lock); diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h index 6389448d0135..d2bb256ef2b6 100644 --- a/core/hdd/inc/wlan_hdd_main.h +++ b/core/hdd/inc/wlan_hdd_main.h @@ -48,6 +48,7 @@ #include #include #include +#include #include #include #include "sir_mac_prot_def.h" @@ -1763,7 +1764,7 @@ struct hdd_context { #endif /* Present state of driver cds modules */ enum driver_modules_status driver_status; - qdf_delayed_work_t psoc_idle_timeout_work; + struct qdf_delayed_work psoc_idle_timeout_work; /* Interface change lock */ struct mutex iface_change_lock; bool rps; diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 1d076e0798be..29e8efbfb4fb 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -54,6 +54,7 @@ #ifdef CONFIG_LEAK_DETECTION #include "qdf_debug_domain.h" #endif +#include "qdf_delayed_work.h" #include "qdf_str.h" #include "qdf_talloc.h" #include "qdf_trace.h" @@ -7414,6 +7415,7 @@ void hdd_wlan_exit(struct hdd_context *hdd_ctx) hdd_exit_netlink_services(hdd_ctx); mutex_destroy(&hdd_ctx->iface_change_lock); + qdf_delayed_work_destroy(&hdd_ctx->psoc_idle_timeout_work); #ifdef FEATURE_WLAN_CH_AVOID mutex_destroy(&hdd_ctx->avoid_freq_lock); #endif @@ -9188,13 +9190,13 @@ void hdd_psoc_idle_timer_start(struct hdd_context *hdd_ctx) } hdd_debug("Starting psoc idle timer"); - qdf_sched_delayed_work(&hdd_ctx->psoc_idle_timeout_work, timeout_ms); + qdf_delayed_work_start(&hdd_ctx->psoc_idle_timeout_work, timeout_ms); hdd_prevent_suspend_timeout(timeout_ms, reason); } void hdd_psoc_idle_timer_stop(struct hdd_context *hdd_ctx) { - qdf_cancel_delayed_work(&hdd_ctx->psoc_idle_timeout_work); + qdf_delayed_work_stop_sync(&hdd_ctx->psoc_idle_timeout_work); hdd_debug("Stopped psoc idle timer"); } @@ -9496,9 +9498,13 @@ struct hdd_context *hdd_context_create(struct device *dev) goto err_out; } - qdf_create_delayed_work(&hdd_ctx->psoc_idle_timeout_work, - hdd_psoc_idle_timeout_callback, - hdd_ctx); + status = qdf_delayed_work_create(&hdd_ctx->psoc_idle_timeout_work, + hdd_psoc_idle_timeout_callback, + hdd_ctx); + if (QDF_IS_STATUS_ERROR(status)) { + ret = qdf_status_to_os_return(status); + goto wiphy_dealloc; + } mutex_init(&hdd_ctx->iface_change_lock); @@ -9588,6 +9594,9 @@ err_free_config: err_free_hdd_context: mutex_destroy(&hdd_ctx->iface_change_lock); + qdf_delayed_work_destroy(&hdd_ctx->psoc_idle_timeout_work); + +wiphy_dealloc: wiphy_free(hdd_ctx->wiphy); err_out: