qcacld-3.0: wma to target_if migration of vdev_disconnect_event

Currently, wmi_vdev_disconnect_event_id data is extracted and
processing is also done in wma. This is not inline with component
model where target_if takes care of data extraction and handover
the extracted data to corresponding component(connection mgr in
this case). Add changes to support the same.

Change-Id: I2486cc3f63c4b35305b60ac55cd0a622c7185323
CRs-Fixed: 2990373
这个提交包含在:
Srinivas Dasari
2021-07-19 18:05:53 +05:30
提交者 Madan Koyyalamudi
父节点 cb5b2dde46
当前提交 a655f5e64e
修改 11 个文件,包含 225 行新增6 行删除

查看文件

@@ -292,6 +292,20 @@ QDF_STATUS
wmi_extract_btm_blacklist_event(wmi_unified_t wmi_handle,
uint8_t *event, uint32_t data_len,
struct roam_blacklist_event **dst_list);
/**
* wmi_extract_vdev_disconnect_event - Extract disconnect event data
* @wmi_handle: WMI handle
* @event: Event data received from firmware
* @data_len: Event data length received from firmware
* @data: Extract the event and fill in data
*
* Return: QDF_STATUS
*/
QDF_STATUS
wmi_extract_vdev_disconnect_event(wmi_unified_t wmi_handle,
uint8_t *event, uint32_t data_len,
struct vdev_disconnect_event_data *data);
#endif /* ROAM_TARGET_IF_CONVERGENCE */
#endif /* WLAN_FEATURE_ROAM_OFFLOAD */

查看文件

@@ -391,5 +391,16 @@ wmi_extract_btm_blacklist_event(wmi_unified_t wmi_handle,
dst_list);
return QDF_STATUS_E_FAILURE;
}
QDF_STATUS
wmi_extract_vdev_disconnect_event(wmi_unified_t wmi_handle,
uint8_t *event, uint32_t data_len,
struct vdev_disconnect_event_data *data)
{
if (wmi_handle->ops->extract_vdev_disconnect_event)
return wmi_handle->ops->extract_vdev_disconnect_event(
wmi_handle, event, data_len, data);
return QDF_STATUS_E_FAILURE;
}
#endif /* ROAM_TARGET_IF_CONVERGENCE */
#endif

查看文件

@@ -2175,6 +2175,35 @@ extract_btm_blacklist_event(wmi_unified_t wmi_handle,
return QDF_STATUS_SUCCESS;
}
static QDF_STATUS
extract_vdev_disconnect_event_tlv(wmi_unified_t wmi_handle,
uint8_t *event, uint32_t data_len,
struct vdev_disconnect_event_data *data)
{
WMI_VDEV_DISCONNECT_EVENTID_param_tlvs *param_buf;
wmi_vdev_disconnect_event_fixed_param *roam_vdev_disc_ev;
param_buf = (WMI_VDEV_DISCONNECT_EVENTID_param_tlvs *)event;
roam_vdev_disc_ev = param_buf->fixed_param;
if (!roam_vdev_disc_ev) {
wmi_err("roam cap event is NULL");
return QDF_STATUS_E_INVAL;
}
if (roam_vdev_disc_ev->vdev_id >= WLAN_MAX_VDEVS) {
wmi_err("Invalid vdev id %d", roam_vdev_disc_ev->vdev_id);
return QDF_STATUS_E_INVAL;
}
data->vdev_id = roam_vdev_disc_ev->vdev_id;
data->reason = roam_vdev_disc_ev->reason;
wmi_debug("Received disconnect roam event on vdev_id : %d, reason:%d",
data->vdev_id, data->reason);
return QDF_STATUS_SUCCESS;
}
#endif
void wmi_roam_offload_attach_tlv(wmi_unified_t wmi_handle)
@@ -2190,6 +2219,7 @@ void wmi_roam_offload_attach_tlv(wmi_unified_t wmi_handle)
ops->extract_roam_sync_frame_event = extract_roam_sync_frame_event_tlv;
ops->extract_roam_event = extract_roam_event_tlv;
ops->extract_btm_bl_event = extract_btm_blacklist_event;
ops->extract_vdev_disconnect_event = extract_vdev_disconnect_event_tlv;
#endif /* ROAM_TARGET_IF_CONVERGENCE */
ops->send_set_ric_req_cmd = send_set_ric_req_cmd_tlv;
ops->send_process_roam_synch_complete_cmd =