diff --git a/wmi_unified_api.c b/wmi_unified_api.c index 278b7ae760..b07e15deef 100644 --- a/wmi_unified_api.c +++ b/wmi_unified_api.c @@ -4604,12 +4604,14 @@ QDF_STATUS wmi_unified_init_cmd_send(void *wmi_hdl, * * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure */ -QDF_STATUS wmi_save_service_bitmap(void *wmi_hdl, void *evt_buf) +QDF_STATUS wmi_save_service_bitmap(void *wmi_hdl, void *evt_buf, + void *bitmap_buf) { struct wmi_unified *wmi_handle = (struct wmi_unified *) wmi_hdl; if (wmi_handle->ops->save_service_bitmap) { - wmi_handle->ops->save_service_bitmap(wmi_handle, evt_buf); + wmi_handle->ops->save_service_bitmap(wmi_handle, evt_buf, + bitmap_buf); return 0; } return QDF_STATUS_E_FAILURE; diff --git a/wmi_unified_non_tlv.c b/wmi_unified_non_tlv.c index 180957a25a..9882400bf6 100644 --- a/wmi_unified_non_tlv.c +++ b/wmi_unified_non_tlv.c @@ -5405,10 +5405,12 @@ static QDF_STATUS send_ext_resource_config_non_tlv(wmi_unified_t wmi_handle, * save_service_bitmap_non_tlv() - save service bitmap * @wmi_handle: wmi handle * @param evt_buf: pointer to event buffer + * @param bitmap_buf: bitmap buffer for converged legacy support * * Return: None */ -static void save_service_bitmap_non_tlv(wmi_unified_t wmi_handle, void *evt_buf) +static void save_service_bitmap_non_tlv(wmi_unified_t wmi_handle, + void *evt_buf, void *bitmap_buf) { wmi_service_ready_event *ev; @@ -5416,6 +5418,10 @@ static void save_service_bitmap_non_tlv(wmi_unified_t wmi_handle, void *evt_buf) qdf_mem_copy(wmi_handle->wmi_service_bitmap, ev->wmi_service_bitmap, (WMI_SERVICE_BM_SIZE * sizeof(uint32_t))); + + if (bitmap_buf) + qdf_mem_copy(bitmap_buf, ev->wmi_service_bitmap, + (WMI_SERVICE_BM_SIZE * sizeof(uint32_t))); } /** diff --git a/wmi_unified_tlv.c b/wmi_unified_tlv.c index 9fe47a88ce..8aa3a702c9 100644 --- a/wmi_unified_tlv.c +++ b/wmi_unified_tlv.c @@ -11920,12 +11920,14 @@ static QDF_STATUS init_cmd_send_tlv(wmi_unified_t wmi_handle, * save_service_bitmap_tlv() - save service bitmap * @wmi_handle: wmi handle * @param evt_buf: pointer to event buffer + * @param bitmap_buf: bitmap buffer, for converged legacy support * * Return: None */ #ifndef CONFIG_MCL static -void save_service_bitmap_tlv(wmi_unified_t wmi_handle, void *evt_buf) +void save_service_bitmap_tlv(wmi_unified_t wmi_handle, void *evt_buf, + void *bitmap_buf) { WMI_SERVICE_READY_EVENTID_param_tlvs *param_buf; param_buf = (WMI_SERVICE_READY_EVENTID_param_tlvs *) evt_buf; @@ -11933,14 +11935,25 @@ void save_service_bitmap_tlv(wmi_unified_t wmi_handle, void *evt_buf) qdf_mem_copy(wmi_handle->wmi_service_bitmap, param_buf->wmi_service_bitmap, (WMI_SERVICE_BM_SIZE * sizeof(uint32_t))); + + if (bitmap_buf) + qdf_mem_copy(bitmap_buf, + param_buf->wmi_service_bitmap, + (WMI_SERVICE_BM_SIZE * sizeof(uint32_t))); } #else static -void save_service_bitmap_tlv(wmi_unified_t wmi_handle, void *evt_buf) +void save_service_bitmap_tlv(wmi_unified_t wmi_handle, void *evt_buf, + void *bitmap_buf) { - return; -} + WMI_SERVICE_READY_EVENTID_param_tlvs *param_buf; + param_buf = (WMI_SERVICE_READY_EVENTID_param_tlvs *) evt_buf; + if (bitmap_buf) + qdf_mem_copy(bitmap_buf, + param_buf->wmi_service_bitmap, + (WMI_SERVICE_BM_SIZE * sizeof(uint32_t))); +} #endif /**