qcacld-3.0: Remove serialization for get link speed cmd
Currently, Host serialize get link speed command through MC thread which is truly not required.Hence removing serialization for get link speed cmd. Change-Id: Ia2895394025056d4957856bb9bde0350b55d25ca CRs-Fixed: 2042492
This commit is contained in:
@@ -185,7 +185,6 @@ enum eWniMsgTypes {
|
|||||||
eWNI_SME_DFS_CSAIE_TX_COMPLETE_IND, /* To indicate completion of CSA IE */
|
eWNI_SME_DFS_CSAIE_TX_COMPLETE_IND, /* To indicate completion of CSA IE */
|
||||||
/* update in beacons/probe rsp */
|
/* update in beacons/probe rsp */
|
||||||
eWNI_SME_STATS_EXT_EVENT,
|
eWNI_SME_STATS_EXT_EVENT,
|
||||||
eWNI_SME_LINK_SPEED_IND, /* Indicate linkspeed response from WMA */
|
|
||||||
eWNI_SME_CSA_OFFLOAD_EVENT,
|
eWNI_SME_CSA_OFFLOAD_EVENT,
|
||||||
eWNI_SME_UPDATE_ADDITIONAL_IES, /* indicates Additional IE from hdd to PE */
|
eWNI_SME_UPDATE_ADDITIONAL_IES, /* indicates Additional IE from hdd to PE */
|
||||||
eWNI_SME_MODIFY_ADDITIONAL_IES, /* To indicate IE modify from hdd to PE */
|
eWNI_SME_MODIFY_ADDITIONAL_IES, /* To indicate IE modify from hdd to PE */
|
||||||
|
@@ -321,7 +321,6 @@ uint8_t *mac_trace_get_sme_msg_string(uint16_t sme_msg)
|
|||||||
CASE_RETURN_STRING(eWNI_SME_DFS_BEACON_CHAN_SW_IE_REQ);
|
CASE_RETURN_STRING(eWNI_SME_DFS_BEACON_CHAN_SW_IE_REQ);
|
||||||
CASE_RETURN_STRING(eWNI_SME_DFS_CSAIE_TX_COMPLETE_IND);
|
CASE_RETURN_STRING(eWNI_SME_DFS_CSAIE_TX_COMPLETE_IND);
|
||||||
CASE_RETURN_STRING(eWNI_SME_STATS_EXT_EVENT);
|
CASE_RETURN_STRING(eWNI_SME_STATS_EXT_EVENT);
|
||||||
CASE_RETURN_STRING(eWNI_SME_LINK_SPEED_IND);
|
|
||||||
CASE_RETURN_STRING(eWNI_SME_CSA_OFFLOAD_EVENT);
|
CASE_RETURN_STRING(eWNI_SME_CSA_OFFLOAD_EVENT);
|
||||||
CASE_RETURN_STRING(eWNI_SME_UPDATE_ADDITIONAL_IES);
|
CASE_RETURN_STRING(eWNI_SME_UPDATE_ADDITIONAL_IES);
|
||||||
CASE_RETURN_STRING(eWNI_SME_MODIFY_ADDITIONAL_IES);
|
CASE_RETURN_STRING(eWNI_SME_MODIFY_ADDITIONAL_IES);
|
||||||
@@ -663,7 +662,6 @@ uint8_t *mac_trace_get_wma_msg_string(uint16_t wma_msg)
|
|||||||
CASE_RETURN_STRING(WMA_DFS_BEACON_TX_SUCCESS_IND);
|
CASE_RETURN_STRING(WMA_DFS_BEACON_TX_SUCCESS_IND);
|
||||||
CASE_RETURN_STRING(WMA_DISASSOC_TX_COMP);
|
CASE_RETURN_STRING(WMA_DISASSOC_TX_COMP);
|
||||||
CASE_RETURN_STRING(WMA_DEAUTH_TX_COMP);
|
CASE_RETURN_STRING(WMA_DEAUTH_TX_COMP);
|
||||||
CASE_RETURN_STRING(WMA_GET_LINK_SPEED);
|
|
||||||
CASE_RETURN_STRING(WMA_MODEM_POWER_STATE_IND);
|
CASE_RETURN_STRING(WMA_MODEM_POWER_STATE_IND);
|
||||||
#ifdef WLAN_FEATURE_STATS_EXT
|
#ifdef WLAN_FEATURE_STATS_EXT
|
||||||
CASE_RETURN_STRING(WMA_STATS_EXT_REQUEST);
|
CASE_RETURN_STRING(WMA_STATS_EXT_REQUEST);
|
||||||
|
@@ -2439,13 +2439,6 @@ QDF_STATUS sme_process_msg(tHalHandle hHal, struct scheduler_msg *pMsg)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case eWNI_SME_LINK_SPEED_IND:
|
|
||||||
if (pMac->sme.pLinkSpeedIndCb)
|
|
||||||
pMac->sme.pLinkSpeedIndCb(pMsg->bodyptr,
|
|
||||||
pMac->sme.pLinkSpeedCbContext);
|
|
||||||
if (pMsg->bodyptr)
|
|
||||||
qdf_mem_free(pMsg->bodyptr);
|
|
||||||
break;
|
|
||||||
case eWNI_SME_CSA_OFFLOAD_EVENT:
|
case eWNI_SME_CSA_OFFLOAD_EVENT:
|
||||||
if (pMsg->bodyptr) {
|
if (pMsg->bodyptr) {
|
||||||
csr_scan_flush_bss_entry(pMac, pMsg->bodyptr);
|
csr_scan_flush_bss_entry(pMac, pMsg->bodyptr);
|
||||||
@@ -9791,7 +9784,7 @@ QDF_STATUS sme_get_link_speed(tHalHandle hHal, tSirLinkSpeedInfo *lsReq,
|
|||||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||||
tpAniSirGlobal pMac;
|
tpAniSirGlobal pMac;
|
||||||
tSirLinkSpeedInfo *req;
|
tSirLinkSpeedInfo *req;
|
||||||
struct scheduler_msg message = {0};
|
void *wma_handle;
|
||||||
|
|
||||||
if (!hHal || !pCallbackfn || !lsReq) {
|
if (!hHal || !pCallbackfn || !lsReq) {
|
||||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
||||||
@@ -9799,6 +9792,13 @@ QDF_STATUS sme_get_link_speed(tHalHandle hHal, tSirLinkSpeedInfo *lsReq,
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wma_handle = cds_get_context(QDF_MODULE_ID_WMA);
|
||||||
|
if (!wma_handle) {
|
||||||
|
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR,
|
||||||
|
"wma handle is NULL");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
pMac = PMAC_STRUCT(hHal);
|
pMac = PMAC_STRUCT(hHal);
|
||||||
req = qdf_mem_malloc(sizeof(*req));
|
req = qdf_mem_malloc(sizeof(*req));
|
||||||
if (!req) {
|
if (!req) {
|
||||||
@@ -9816,16 +9816,8 @@ QDF_STATUS sme_get_link_speed(tHalHandle hHal, tSirLinkSpeedInfo *lsReq,
|
|||||||
|
|
||||||
pMac->sme.pLinkSpeedCbContext = plsContext;
|
pMac->sme.pLinkSpeedCbContext = plsContext;
|
||||||
pMac->sme.pLinkSpeedIndCb = pCallbackfn;
|
pMac->sme.pLinkSpeedIndCb = pCallbackfn;
|
||||||
|
status = wma_get_link_speed(wma_handle, req);
|
||||||
/* serialize the req through MC thread */
|
|
||||||
message.bodyptr = req;
|
|
||||||
message.type = WMA_GET_LINK_SPEED;
|
|
||||||
status = scheduler_post_msg(QDF_MODULE_ID_WMA, &message);
|
|
||||||
sme_release_global_lock(&pMac->sme);
|
sme_release_global_lock(&pMac->sme);
|
||||||
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
|
||||||
sme_err("%s: Post Link Speed msg fail", __func__);
|
|
||||||
qdf_mem_free(req);
|
|
||||||
}
|
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
@@ -140,6 +140,7 @@ void wma_set_peer_authorized_cb(void *wma_ctx, wma_peer_authorized_fp auth_cb);
|
|||||||
QDF_STATUS wma_set_peer_param(void *wma_ctx, uint8_t *peer_addr,
|
QDF_STATUS wma_set_peer_param(void *wma_ctx, uint8_t *peer_addr,
|
||||||
uint32_t param_id,
|
uint32_t param_id,
|
||||||
uint32_t param_value, uint32_t vdev_id);
|
uint32_t param_value, uint32_t vdev_id);
|
||||||
|
QDF_STATUS wma_get_link_speed(WMA_HANDLE handle, tSirLinkSpeedInfo *pLinkSpeed);
|
||||||
#ifdef NOT_YET
|
#ifdef NOT_YET
|
||||||
QDF_STATUS wma_update_channel_list(WMA_HANDLE handle, void *scan_chan_info);
|
QDF_STATUS wma_update_channel_list(WMA_HANDLE handle, void *scan_chan_info);
|
||||||
#endif
|
#endif
|
||||||
|
@@ -892,8 +892,6 @@ void wma_process_link_status_req(tp_wma_handle wma,
|
|||||||
QDF_STATUS wma_process_dhcp_ind(tp_wma_handle wma_handle,
|
QDF_STATUS wma_process_dhcp_ind(tp_wma_handle wma_handle,
|
||||||
tAniDHCPInd *ta_dhcp_ind);
|
tAniDHCPInd *ta_dhcp_ind);
|
||||||
|
|
||||||
QDF_STATUS wma_get_link_speed(WMA_HANDLE handle, tSirLinkSpeedInfo *pLinkSpeed);
|
|
||||||
|
|
||||||
int wma_profile_data_report_event_handler(void *handle, uint8_t *event_buf,
|
int wma_profile_data_report_event_handler(void *handle, uint8_t *event_buf,
|
||||||
uint32_t len);
|
uint32_t len);
|
||||||
|
|
||||||
|
@@ -378,7 +378,6 @@
|
|||||||
#define WMA_DFS_BEACON_TX_SUCCESS_IND SIR_HAL_BEACON_TX_SUCCESS_IND
|
#define WMA_DFS_BEACON_TX_SUCCESS_IND SIR_HAL_BEACON_TX_SUCCESS_IND
|
||||||
#define WMA_DISASSOC_TX_COMP SIR_HAL_DISASSOC_TX_COMP
|
#define WMA_DISASSOC_TX_COMP SIR_HAL_DISASSOC_TX_COMP
|
||||||
#define WMA_DEAUTH_TX_COMP SIR_HAL_DEAUTH_TX_COMP
|
#define WMA_DEAUTH_TX_COMP SIR_HAL_DEAUTH_TX_COMP
|
||||||
#define WMA_GET_LINK_SPEED SIR_HAL_GET_LINK_SPEED
|
|
||||||
|
|
||||||
#define WMA_MODEM_POWER_STATE_IND SIR_HAL_MODEM_POWER_STATE_IND
|
#define WMA_MODEM_POWER_STATE_IND SIR_HAL_MODEM_POWER_STATE_IND
|
||||||
|
|
||||||
|
@@ -6653,10 +6653,6 @@ QDF_STATUS wma_mc_process_msg(void *cds_context, struct scheduler_msg *msg)
|
|||||||
(tDisableIntraBssFwd *) msg->bodyptr);
|
(tDisableIntraBssFwd *) msg->bodyptr);
|
||||||
qdf_mem_free(msg->bodyptr);
|
qdf_mem_free(msg->bodyptr);
|
||||||
break;
|
break;
|
||||||
case WMA_GET_LINK_SPEED:
|
|
||||||
wma_get_link_speed(wma_handle, msg->bodyptr);
|
|
||||||
qdf_mem_free(msg->bodyptr);
|
|
||||||
break;
|
|
||||||
case WMA_MODEM_POWER_STATE_IND:
|
case WMA_MODEM_POWER_STATE_IND:
|
||||||
wma_notify_modem_power_state(wma_handle,
|
wma_notify_modem_power_state(wma_handle,
|
||||||
(tSirModemPowerStateInd *) msg->bodyptr);
|
(tSirModemPowerStateInd *) msg->bodyptr);
|
||||||
|
@@ -2784,24 +2784,28 @@ int wma_stats_event_handler(void *handle, uint8_t *cmd_param_info,
|
|||||||
QDF_STATUS wma_send_link_speed(uint32_t link_speed)
|
QDF_STATUS wma_send_link_speed(uint32_t link_speed)
|
||||||
{
|
{
|
||||||
QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
|
QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
|
||||||
struct scheduler_msg sme_msg = { 0 };
|
tpAniSirGlobal mac_ctx;
|
||||||
tSirLinkSpeedInfo *ls_ind =
|
tSirLinkSpeedInfo *ls_ind;
|
||||||
(tSirLinkSpeedInfo *) qdf_mem_malloc(sizeof(tSirLinkSpeedInfo));
|
|
||||||
|
mac_ctx = cds_get_context(QDF_MODULE_ID_PE);
|
||||||
|
if (!mac_ctx) {
|
||||||
|
WMA_LOGD("%s: NULL pMac ptr. Exiting", __func__);
|
||||||
|
return QDF_STATUS_E_INVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
ls_ind = (tSirLinkSpeedInfo *)qdf_mem_malloc(sizeof(tSirLinkSpeedInfo));
|
||||||
if (!ls_ind) {
|
if (!ls_ind) {
|
||||||
WMA_LOGE("%s: Memory allocation failed.", __func__);
|
WMA_LOGE("%s: Memory allocation failed.", __func__);
|
||||||
qdf_status = QDF_STATUS_E_NOMEM;
|
qdf_status = QDF_STATUS_E_NOMEM;
|
||||||
} else {
|
} else {
|
||||||
ls_ind->estLinkSpeed = link_speed;
|
ls_ind->estLinkSpeed = link_speed;
|
||||||
sme_msg.type = eWNI_SME_LINK_SPEED_IND;
|
if (mac_ctx->sme.pLinkSpeedIndCb)
|
||||||
sme_msg.bodyptr = ls_ind;
|
mac_ctx->sme.pLinkSpeedIndCb(ls_ind,
|
||||||
sme_msg.bodyval = 0;
|
mac_ctx->sme.pLinkSpeedCbContext);
|
||||||
|
else
|
||||||
qdf_status = scheduler_post_msg(QDF_MODULE_ID_SME, &sme_msg);
|
WMA_LOGD("%s: pLinkSpeedIndCb is null", __func__);
|
||||||
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
|
||||||
WMA_LOGE("%s: Fail to post linkspeed ind msg",
|
|
||||||
__func__);
|
|
||||||
qdf_mem_free(ls_ind);
|
qdf_mem_free(ls_ind);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return qdf_status;
|
return qdf_status;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user