summaryrefslogtreecommitdiff
path: root/core/cds
diff options
context:
space:
mode:
authorManikandan Mohan <manikand@codeaurora.org>2019-08-23 08:32:56 -0700
committernshrivas <nshrivas@codeaurora.org>2019-09-20 16:11:59 -0700
commitebc31619ce67d63385b09df432845ed17b8e7766 (patch)
tree35dbc87e475a1a19856fab9025c7b7c6d97db755 /core/cds
parentf6ff082e08fe4458d2ef7733e61ca248323afa3f (diff)
downloadqcacld-ebc31619ce67d63385b09df432845ed17b8e7766.tar.gz
qcacld-3.0: Add support for WMI over QMI
Add support for WMI over QMI to reduce power consumption for periodic stats report. Change-Id: Iec725b357d9bcfa33029aedf7c568814499bc130 CRs-fixed: 2521826
Diffstat (limited to 'core/cds')
-rw-r--r--core/cds/src/cds_api.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/core/cds/src/cds_api.c b/core/cds/src/cds_api.c
index eba06d2936..6e6aba831b 100644
--- a/core/cds/src/cds_api.c
+++ b/core/cds/src/cds_api.c
@@ -194,6 +194,23 @@ static bool cds_is_drv_connected(void)
return ((ret > 0) ? true : false);
}
+static QDF_STATUS cds_wmi_send_recv_qmi(void *buf, uint32_t len, void * cb_ctx,
+ qdf_wmi_recv_qmi_cb wmi_rx_cb)
+{
+ qdf_device_t qdf_ctx;
+
+ qdf_ctx = cds_get_context(QDF_MODULE_ID_QDF_DEVICE);
+ if (!qdf_ctx) {
+ cds_err("cds context is invalid");
+ return false;
+ }
+
+ if (pld_qmi_send(qdf_ctx->dev, 0, buf, len, cb_ctx, wmi_rx_cb))
+ return QDF_STATUS_E_INVAL;
+
+ return QDF_STATUS_SUCCESS;
+}
+
QDF_STATUS cds_init(void)
{
QDF_STATUS status;
@@ -214,6 +231,7 @@ QDF_STATUS cds_init(void)
qdf_register_fw_down_callback(cds_is_fw_down);
qdf_register_recovering_state_query_callback(cds_is_driver_recovering);
qdf_register_drv_connected_callback(cds_is_drv_connected);
+ qdf_register_wmi_send_recv_qmi_callback(cds_wmi_send_recv_qmi);
return QDF_STATUS_SUCCESS;
@@ -238,6 +256,7 @@ void cds_deinit(void)
qdf_register_recovering_state_query_callback(NULL);
qdf_register_fw_down_callback(NULL);
qdf_register_self_recovery_callback(NULL);
+ qdf_register_wmi_send_recv_qmi_callback(NULL);
gp_cds_context->qdf_ctx = NULL;
qdf_mem_zero(&g_qdf_ctx, sizeof(g_qdf_ctx));