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
This commit is contained in:

committed by
Madan Koyyalamudi

szülő
cb5b2dde46
commit
a655f5e64e
@@ -1139,5 +1139,23 @@ cm_roam_event_handler(struct roam_offload_roam_event roam_event);
|
||||
QDF_STATUS
|
||||
cm_btm_blacklist_event_handler(struct wlan_objmgr_psoc *psoc,
|
||||
struct roam_blacklist_event *list);
|
||||
|
||||
/**
|
||||
* cm_vdev_disconnect_event_handler() - disconnect evt handler for target_if
|
||||
* @data: disconnect event data
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
cm_vdev_disconnect_event_handler(struct vdev_disconnect_event_data *data);
|
||||
|
||||
/**
|
||||
* cm_handle_disconnect_reason() - disconnect reason evt wrapper for wma
|
||||
* @data: disconnect event data
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS
|
||||
cm_handle_disconnect_reason(struct vdev_disconnect_event_data *data);
|
||||
#endif
|
||||
#endif /* WLAN_CM_ROAM_API_H__ */
|
||||
|
@@ -1809,6 +1809,28 @@ struct roam_blacklist_event {
|
||||
uint32_t num_entries;
|
||||
struct roam_blacklist_timeout roam_blacklist[];
|
||||
};
|
||||
|
||||
/*
|
||||
* enum cm_vdev_disconnect_reason - Roam disconnect reason
|
||||
* @CM_DISCONNECT_REASON_CSA_SA_QUERY_TIMEOUT: Disconnect due to SA query
|
||||
* timeout after moving to new channel due to CSA in OCV enabled case.
|
||||
* @CM_DISCONNECT_REASON_MOVE_TO_CELLULAR: Disconnect from WiFi to move
|
||||
* to cellular
|
||||
*/
|
||||
enum cm_vdev_disconnect_reason {
|
||||
CM_DISCONNECT_REASON_CSA_SA_QUERY_TIMEOUT = 1,
|
||||
CM_DISCONNECT_REASON_MOVE_TO_CELLULAR,
|
||||
};
|
||||
|
||||
/*
|
||||
* struct vdev_disconnect_event_data - Roam disconnect event data
|
||||
* @vdev_id: vdev id
|
||||
* @reason: roam reason of type @enum cm_vdev_disconnect_reason
|
||||
*/
|
||||
struct vdev_disconnect_event_data {
|
||||
uint8_t vdev_id;
|
||||
enum cm_vdev_disconnect_reason reason;
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -1883,6 +1905,7 @@ struct wlan_cm_roam_tx_ops {
|
||||
* @roam_sync_frame_event: Rx ops function pointer for roam sync frame event
|
||||
* @roam_event_rx: Rx ops function pointer for roam info event
|
||||
* @btm_blacklist_event: Rx ops function pointer for btm blacklist event
|
||||
* @vdev_disconnect_event: Rx ops function pointer for vdev disconnect event
|
||||
*/
|
||||
struct wlan_cm_roam_rx_ops {
|
||||
QDF_STATUS (*roam_sync_event)(struct wlan_objmgr_psoc *psoc,
|
||||
@@ -1895,6 +1918,8 @@ struct wlan_cm_roam_rx_ops {
|
||||
#ifdef ROAM_TARGET_IF_CONVERGENCE
|
||||
QDF_STATUS (*btm_blacklist_event)(struct wlan_objmgr_psoc *psoc,
|
||||
struct roam_blacklist_event *list);
|
||||
QDF_STATUS
|
||||
(*vdev_disconnect_event)(struct vdev_disconnect_event_data *data);
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@@ -1998,6 +1998,12 @@ cm_handle_roam_offload_events(struct roam_offload_roam_event roam_event)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
cm_vdev_disconnect_event_handler(struct vdev_disconnect_event_data *data)
|
||||
{
|
||||
return cm_handle_disconnect_reason(data);
|
||||
}
|
||||
#else
|
||||
static void
|
||||
cm_handle_roam_offload_events(struct roam_offload_roam_event roam_event)
|
||||
@@ -2005,6 +2011,12 @@ cm_handle_roam_offload_events(struct roam_offload_roam_event roam_event)
|
||||
mlme_debug("Unhandled roam event with reason 0x%x for vdev_id %u",
|
||||
roam_event.reason, roam_event.vdev_id);
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
cm_vdev_disconnect_event_handler(struct vdev_disconnect_event_data *data)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
QDF_STATUS
|
||||
|
Reference in New Issue
Block a user