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:
Srinivas Dasari
2021-07-19 18:05:53 +05:30
committed by Madan Koyyalamudi
szülő cb5b2dde46
commit a655f5e64e
11 fájl változott, egészen pontosan 225 új sor hozzáadva és 6 régi sor törölve

Fájl megtekintése

@@ -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__ */

Fájl megtekintése

@@ -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
};

Fájl megtekintése

@@ -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