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
这个提交包含在:
@@ -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 =
|
||||
|
在新工单中引用
屏蔽一个用户