Browse Source

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
Dustin Brown 6 years ago
parent
commit
8d8ab30f21

+ 2 - 1
components/ipa/core/inc/wlan_ipa_priv.h

@@ -36,6 +36,7 @@
 #include <qdf_mc_timer.h>
 #include <qdf_list.h>
 #include <qdf_defer.h>
+#include "qdf_delayed_work.h"
 #include <qdf_event.h>
 #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;

+ 15 - 7
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);
 

+ 2 - 1
core/hdd/inc/wlan_hdd_main.h

@@ -48,6 +48,7 @@
 #include <linux/skbuff.h>
 #include <net/cfg80211.h>
 #include <linux/ieee80211.h>
+#include <qdf_delayed_work.h>
 #include <qdf_list.h>
 #include <qdf_types.h>
 #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;

+ 14 - 5
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: