From 00861f036c6ad7ceadf63d5ff2fb3d00f58ce209 Mon Sep 17 00:00:00 2001 From: gaurank kathpalia Date: Tue, 28 Aug 2018 19:16:12 +0530 Subject: [PATCH] qcacld-3.0: Add src, and dst id support in WMA In the scheduler_post_message, src_id is now added to know the source module of the msg. the present scheduler doesn't know about the same which is scheduler_post_msg Replace the scheduler_post_msg with scheduler_post_message Change-Id: I73a0f11bd6ea4edb0d4c8871d9e217e16f756e58 CRs-Fixed: 2305991 --- core/wma/src/wlan_qct_wma_legacy.c | 4 +++- core/wma/src/wma_data.c | 12 +++++++--- core/wma/src/wma_dev_if.c | 8 +++++-- core/wma/src/wma_features.c | 20 ++++++++++++---- core/wma/src/wma_main.c | 20 ++++++++++++---- core/wma/src/wma_ocb.c | 20 ++++++++++++---- core/wma/src/wma_power.c | 4 +++- core/wma/src/wma_scan_roam.c | 16 +++++++++---- core/wma/src/wma_utils.c | 38 +++++++++++++++++++++++------- 9 files changed, 106 insertions(+), 36 deletions(-) diff --git a/core/wma/src/wlan_qct_wma_legacy.c b/core/wma/src/wlan_qct_wma_legacy.c index 75f32f006b63..dd3316a19423 100644 --- a/core/wma/src/wlan_qct_wma_legacy.c +++ b/core/wma/src/wlan_qct_wma_legacy.c @@ -48,7 +48,9 @@ QDF_STATUS wma_post_ctrl_msg(tpAniSirGlobal pMac, struct scheduler_msg *pMsg) { if (QDF_STATUS_SUCCESS != - scheduler_post_msg(QDF_MODULE_ID_WMA, pMsg)) + scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_WMA, + QDF_MODULE_ID_WMA, pMsg)) return QDF_STATUS_E_FAILURE; else return QDF_STATUS_SUCCESS; diff --git a/core/wma/src/wma_data.c b/core/wma/src/wma_data.c index 300fd0b928b8..ecef1ec96214 100644 --- a/core/wma/src/wma_data.c +++ b/core/wma/src/wma_data.c @@ -1835,7 +1835,9 @@ static void wma_set_thermal_level_ind(u_int8_t level) sme_msg.bodyptr = NULL; sme_msg.bodyval = level; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &sme_msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) WMA_LOGE(FL( "Fail to post set thermal level ind msg")); @@ -2142,7 +2144,9 @@ send_response: cds_msg.bodyval = 0; if (QDF_STATUS_SUCCESS != - scheduler_post_msg(QDF_MODULE_ID_SME, &cds_msg)) { + scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &cds_msg)) { WMA_LOGE("%s: could not post peer info rsp msg to SME", __func__); /* free the mem and return */ @@ -3153,7 +3157,9 @@ wma_indicate_err( cds_msg.type = eWNI_SME_MIC_FAILURE_IND; cds_msg.bodyptr = (void *) mic_err_ind; if (QDF_STATUS_SUCCESS != - scheduler_post_msg(QDF_MODULE_ID_SME, + scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &cds_msg)) { WMA_LOGE("%s: mic failure ind post to SME failed", __func__); diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index cf86421a3c1f..1edea7a84a51 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -421,7 +421,9 @@ static inline void wma_send_del_sta_self_resp(struct del_sta_self_params *param) sme_msg.type = eWNI_SME_DEL_STA_SELF_RSP; sme_msg.bodyptr = param; - status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg); + status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &sme_msg); if (!QDF_IS_STATUS_SUCCESS(status)) { WMA_LOGE("Failed to post eWNI_SME_DEL_STA_SELF_RSP"); qdf_mem_free(param); @@ -2596,7 +2598,9 @@ end: sme_msg.bodyptr = self_sta_req; sme_msg.bodyval = 0; - status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg); + status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &sme_msg); if (!QDF_IS_STATUS_SUCCESS(status)) { WMA_LOGE("Failed to post eWNI_SME_ADD_STA_SELF_RSP"); qdf_mem_free(self_sta_req); diff --git a/core/wma/src/wma_features.c b/core/wma/src/wma_features.c index ec138f594174..6ac16afc0800 100644 --- a/core/wma/src/wma_features.c +++ b/core/wma/src/wma_features.c @@ -199,7 +199,9 @@ static int wma_wake_reason_auto_shutdown(void) sme_msg.bodyptr = auto_sh_evt; sme_msg.bodyval = 0; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &sme_msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { WMA_LOGE("Fail to post eWNI_SME_AUTO_SHUTDOWN_IND msg to SME"); qdf_mem_free(auto_sh_evt); @@ -403,7 +405,9 @@ int wma_vdev_tsf_handler(void *handle, uint8_t *data, uint32_t data_len) tsf_msg.bodyval = 0; if (QDF_STATUS_SUCCESS != - scheduler_post_msg(QDF_MODULE_ID_SME, &tsf_msg)) { + scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &tsf_msg)) { WMA_LOGP("%s: Failed to post eWNI_SME_TSF_EVENT", __func__); qdf_mem_free(ptsf); @@ -1274,7 +1278,9 @@ int wma_nan_rsp_event_handler(void *handle, uint8_t *event_buf, message.bodyptr = (void *)nan_rsp_event; message.bodyval = 0; - status = scheduler_post_msg(QDF_MODULE_ID_SME, &message); + status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &message); if (status != QDF_STATUS_SUCCESS) { WMA_LOGE("%s: Failed to post NaN response event to SME", __func__); @@ -3776,7 +3782,9 @@ static void wma_send_status_of_ext_wow(tp_wma_handle wma, bool status) message.bodyptr = (void *)ready_to_extwow; message.bodyval = 0; - vstatus = scheduler_post_msg(QDF_MODULE_ID_SME, &message); + vstatus = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &message); if (vstatus != QDF_STATUS_SUCCESS) { WMA_LOGE("Failed to post ready to suspend"); qdf_mem_free(ready_to_extwow); @@ -5751,7 +5759,9 @@ int wma_wlan_bt_activity_evt_handler(void *handle, uint8_t *event, uint32_t len) sme_msg.bodyptr = NULL; sme_msg.bodyval = fixed_param->coex_profile_evt; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &sme_msg); if (QDF_IS_STATUS_ERROR(qdf_status)) { WMA_LOGE(FL("Failed to post msg to SME")); return -EINVAL; diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c index c58d04b799bc..4daad6f0a240 100644 --- a/core/wma/src/wma_main.c +++ b/core/wma/src/wma_main.c @@ -578,7 +578,9 @@ int wma_cli_set2_command(int vdev_id, int param_id, int sval1, msg.bodyptr = iwcmd; if (QDF_STATUS_SUCCESS != - scheduler_post_msg(QDF_MODULE_ID_WMA, &msg)) { + scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_WMA, + QDF_MODULE_ID_WMA, &msg)) { WMA_LOGE("%s: Failed to post WMA_CLI_SET_CMD msg", __func__); qdf_mem_free(iwcmd); @@ -1740,7 +1742,9 @@ static int wma_process_fw_event_mc_thread_ctx(void *ctx, void *ev) cds_msg.flush_callback = wma_discard_fw_event; if (QDF_STATUS_SUCCESS != - scheduler_post_msg(QDF_MODULE_ID_WMA, &cds_msg)) { + scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_WMA, + QDF_MODULE_ID_WMA, &cds_msg)) { WMA_LOGE("%s: Failed to post WMA_PROCESS_FW_EVENT msg", __func__); qdf_nbuf_free(ev); @@ -1961,7 +1965,9 @@ static void wma_shutdown_notifier_cb(void *priv) msg.bodyptr = priv; msg.callback = wma_cleanup_vdev_resp_and_hold_req; - status = scheduler_post_msg(QDF_MODULE_ID_TARGET_IF, &msg); + status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_WMA, + QDF_MODULE_ID_TARGET_IF, &msg); if (QDF_IS_STATUS_ERROR(status)) WMA_LOGE(FL("Failed to post SYS_MSG_ID_CLEAN_VDEV_RSP_QUEUE")); } @@ -3722,7 +3728,9 @@ QDF_STATUS wma_pre_start(void) wma_msg.bodyptr = NULL; wma_msg.bodyval = 0; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_WMA, &wma_msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_WMA, + QDF_MODULE_ID_WMA, &wma_msg); if (QDF_STATUS_SUCCESS != qdf_status) { WMA_LOGE("%s: Failed to post WNI_CFG_DNLD_REQ msg", __func__); QDF_ASSERT(0); @@ -8893,7 +8901,9 @@ int wma_lro_init(struct cdp_lro_hash_config *lro_config) msg.bodyptr = iwcmd; if (QDF_STATUS_SUCCESS != - scheduler_post_msg(QDF_MODULE_ID_WMA, &msg)) { + scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_WMA, + QDF_MODULE_ID_WMA, &msg)) { WMA_LOGE("Failed to post WMA_LRO_CONFIG_CMD msg!"); qdf_mem_free(iwcmd); return -EAGAIN; diff --git a/core/wma/src/wma_ocb.c b/core/wma/src/wma_ocb.c index 23ba2987dd0a..8889cac4b1ca 100644 --- a/core/wma/src/wma_ocb.c +++ b/core/wma/src/wma_ocb.c @@ -96,7 +96,9 @@ int wma_ocb_set_config_resp(tp_wma_handle wma_handle, uint8_t status) msg.type = eWNI_SME_OCB_SET_CONFIG_RSP; msg.bodyptr = resp; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { WMA_LOGE(FL("Fail to post msg to SME")); qdf_mem_free(resp); @@ -442,7 +444,9 @@ static int wma_ocb_get_tsf_timer_resp_event_handler(void *handle, msg.type = eWNI_SME_OCB_GET_TSF_TIMER_RSP; msg.bodyptr = response; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { WMA_LOGE(FL("Failed to post msg to SME")); qdf_mem_free(response); @@ -528,7 +532,9 @@ static int wma_dcc_get_stats_resp_event_handler(void *handle, msg.type = eWNI_SME_DCC_GET_STATS_RSP; msg.bodyptr = response; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { WMA_LOGE(FL("Failed to post msg to SME")); qdf_mem_free(response); @@ -620,7 +626,9 @@ static int wma_dcc_update_ndl_resp_event_handler(void *handle, msg.type = eWNI_SME_DCC_UPDATE_NDL_RSP; msg.bodyptr = resp; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { WMA_LOGE(FL("Failed to post msg to SME")); qdf_mem_free(resp); @@ -681,7 +689,9 @@ static int wma_dcc_stats_event_handler(void *handle, uint8_t *event_buf, msg.type = eWNI_SME_DCC_STATS_EVENT; msg.bodyptr = response; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { WMA_LOGE(FL("Failed to post msg to SME")); qdf_mem_free(response); diff --git a/core/wma/src/wma_power.c b/core/wma/src/wma_power.c index 96e04a87f846..d2b05741c711 100644 --- a/core/wma/src/wma_power.c +++ b/core/wma/src/wma_power.c @@ -1216,7 +1216,9 @@ int wma_pdev_temperature_evt_handler(void *handle, uint8_t *event, sme_msg.bodyptr = NULL; sme_msg.bodyval = wmi_event->value; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &sme_msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) WMA_LOGE(FL("Fail to post get temperature ind msg")); return 0; diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index 1fc55b81ed07..59a064d306ab 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -1675,8 +1675,10 @@ QDF_STATUS wma_process_roaming_config(tp_wma_handle wma_handle, * SME with proper reason code. */ if (QDF_STATUS_SUCCESS != - scheduler_post_msg(QDF_MODULE_ID_SME, - &cds_msg)) { + scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, + &cds_msg)) { qdf_mem_free(scan_offload_rsp); QDF_TRACE(QDF_MODULE_ID_WMA, QDF_TRACE_LEVEL_INFO, @@ -2971,7 +2973,9 @@ static void wma_roam_ho_fail_handler(tp_wma_handle wma, uint32_t vdev_id) sme_msg.bodyptr = ho_failure_ind; sme_msg.bodyval = 0; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &sme_msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { WMA_LOGE("Fail to post eWNI_SME_HO_FAIL_IND msg to SME"); qdf_mem_free(ho_failure_ind); @@ -5091,8 +5095,10 @@ void wma_roam_better_ap_handler(tp_wma_handle wma, uint32_t vdev_id) QDF_TRACE(QDF_MODULE_ID_WMA, QDF_TRACE_LEVEL_INFO, FL("posting candidate ind to SME")); - if (QDF_STATUS_SUCCESS != scheduler_post_msg(QDF_MODULE_ID_SCAN, - &cds_msg)) { + if (QDF_STATUS_SUCCESS != scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SCAN, + &cds_msg)) { qdf_mem_free(candidate_ind); QDF_TRACE(QDF_MODULE_ID_WMA, QDF_TRACE_LEVEL_ERROR, FL("Failed to post candidate ind to SME")); diff --git a/core/wma/src/wma_utils.c b/core/wma/src/wma_utils.c index c296d6e9ecbb..e483553fee3c 100644 --- a/core/wma/src/wma_utils.c +++ b/core/wma/src/wma_utils.c @@ -352,7 +352,10 @@ void wma_lost_link_info_handler(tp_wma_handle wma, uint32_t vdev_id, WMA_LOGD("%s: post msg to SME, bss_idx %d, rssi %d", __func__, lost_link_info->vdev_id, lost_link_info->rssi); - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, + &sme_msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { WMA_LOGE("%s: fail to post msg to SME", __func__); qdf_mem_free(lost_link_info); @@ -470,7 +473,9 @@ int wma_stats_ext_event_handler(void *handle, uint8_t *event_buf, cds_msg.bodyptr = (void *)stats_ext_event; cds_msg.bodyval = 0; - status = scheduler_post_msg(QDF_MODULE_ID_SME, &cds_msg); + status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &cds_msg); if (status != QDF_STATUS_SUCCESS) { WMA_LOGE("%s: Failed to post stats ext event to SME", __func__); qdf_mem_free(stats_ext_event); @@ -1210,7 +1215,9 @@ static int wma_ll_stats_evt_handler(void *handle, u_int8_t *event, sme_msg.type = eWMI_SME_LL_STATS_IND; sme_msg.bodyptr = (void *)link_stats_results; sme_msg.bodyval = 0; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &sme_msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { WMA_LOGP(FL("Failed to post peer stat change msg!")); qdf_mem_free(link_stats_results); @@ -1867,7 +1874,9 @@ static int wma_peer_ps_evt_handler(void *handle, u_int8_t *event, sme_msg.bodyptr = link_stats_results; sme_msg.bodyval = 0; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &sme_msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { WMA_LOGE("%s: Fail to post ps change ind msg", __func__); qdf_mem_free(link_stats_results); @@ -2570,7 +2579,10 @@ static void wma_update_vdev_stats(tp_wma_handle wma, sme_msg.bodyptr = p_snr_req; sme_msg.bodyval = 0; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, + &sme_msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { WMA_LOGE("%s: Fail to post snr ind msg", __func__); qdf_mem_free(p_snr_req); @@ -2677,7 +2689,9 @@ void wma_post_link_status(tAniGetLinkStatus *pGetLinkStatus, sme_msg.bodyptr = pGetLinkStatus; sme_msg.bodyval = 0; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &sme_msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { WMA_LOGE("%s: Fail to post link status ind msg", __func__); qdf_mem_free(pGetLinkStatus); @@ -2883,7 +2897,9 @@ int wma_rso_cmd_status_event_handler(wmi_roam_event_fixed_param *wmi_event) sme_msg.bodyval = 0; WMA_LOGD("%s: Post RSO cmd status to SME", __func__); - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &sme_msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { WMA_LOGE("%s: fail to post RSO cmd status to SME", __func__); qdf_mem_free(rso_status); @@ -2988,7 +3004,9 @@ static void wma_handle_sta_peer_info(uint32_t num_peer_stats, sme_msg.bodyptr = peer_info; sme_msg.bodyval = 0; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &sme_msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { WMA_LOGE("%s: Fail to post get rssi msg", __func__); qdf_mem_free(peer_info); @@ -3288,7 +3306,9 @@ static QDF_STATUS wma_peer_info_ext_rsp(tp_wma_handle wma, u_int8_t *buf) sme_msg.bodyptr = resp; sme_msg.bodyval = 0; - qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg); + qdf_status = scheduler_post_message(QDF_MODULE_ID_WMA, + QDF_MODULE_ID_SME, + QDF_MODULE_ID_SME, &sme_msg); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { WMA_LOGE("%s: Fail to post get peer info msg", __func__); qdf_mem_free(resp);