qcacmn: Add ML reconfig starting notify for link removal

Add mlme_vdev_reconfig_notify callback to notify the ML
reconfig link removal starting after receive the first
ML reconfig link removal IE.

Change-Id: I9ae37b7defc75c97e7bc39e07c9d154e1923aedd
CRs-Fixed: 3380159
This commit is contained in:
Liangwei Dong
2023-01-13 15:20:25 +08:00
committed by Madan Koyyalamudi
parent 69d9fa5a24
commit dec5632356
2 changed files with 15 additions and 0 deletions

View File

@@ -711,6 +711,9 @@ enum vdev_start_resp_type {
* @mlme_vdev_dfs_cac_wait_notify: callback to notify about CAC state
* @mlme_vdev_csa_complete: callback to indicate CSA complete
* @mlme_vdev_sta_disconn_start: callback to initiate STA disconnection
* @mlme_vdev_reconfig_notify: callback to notify ml reconfing link
* delete start operation after receive
* the first ml reconfig IE
* @mlme_vdev_reconfig_timer_complete: callback to process ml reconfing
* operation
* @mlme_vdev_notify_mlo_sync_wait_entry:
@@ -792,6 +795,9 @@ struct vdev_mlme_ops {
QDF_STATUS (*mlme_vdev_sta_disconn_start)(
struct vdev_mlme_obj *vdev_mlme,
uint16_t event_data_len, void *event_data);
QDF_STATUS (*mlme_vdev_reconfig_notify)(
struct vdev_mlme_obj *vdev_mlme,
uint16_t *tbtt_count, uint16_t bcn_int);
void (*mlme_vdev_reconfig_timer_complete)(
struct vdev_mlme_obj *vdev_mlme);
QDF_STATUS (*mlme_vdev_notify_mlo_sync_wait_entry)(

View File

@@ -2185,6 +2185,7 @@ static void mlo_process_link_remove(struct wlan_objmgr_vdev *vdev,
struct wlan_objmgr_peer *bss_peer = NULL;
uint16_t bcn_int = 0;
uint16_t tbtt_count = 0;
QDF_STATUS status;
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
if (!vdev_mlme)
@@ -2207,6 +2208,14 @@ static void mlo_process_link_remove(struct wlan_objmgr_vdev *vdev,
if (!bcn_int)
return;
if (vdev_mlme->ops &&
vdev_mlme->ops->mlme_vdev_reconfig_notify) {
status = vdev_mlme->ops->mlme_vdev_reconfig_notify(
vdev_mlme, &tbtt_count, bcn_int);
if (QDF_IS_STATUS_ERROR(status))
return;
}
vdev_mlme->ml_reconfig_started = true;
qdf_timer_mod(&vdev_mlme->ml_reconfig_timer,
qdf_time_uint_to_ms(tbtt_count * bcn_int));