diff --git a/umac/mlme/include/wlan_vdev_mlme.h b/umac/mlme/include/wlan_vdev_mlme.h index 463562d047..eaf50c5061 100644 --- a/umac/mlme/include/wlan_vdev_mlme.h +++ b/umac/mlme/include/wlan_vdev_mlme.h @@ -28,6 +28,7 @@ struct vdev_mlme_obj; struct cnx_mgr; +struct ml_rv_info; /* Requestor ID for multiple vdev restart */ #define MULTIPLE_VDEV_RESTART_REQ_ID 0x1234 @@ -721,6 +722,8 @@ enum vdev_start_resp_type { * the first ml reconfig IE * @mlme_vdev_reconfig_timer_complete: callback to process ml reconfing * operation + * @mlme_vdev_reconfig_notify_standby: callback to notify to process standby + * link removal * @mlme_vdev_notify_mlo_sync_wait_entry: */ struct vdev_mlme_ops { @@ -806,6 +809,9 @@ struct vdev_mlme_ops { uint16_t *tbtt_count, uint16_t bcn_int); void (*mlme_vdev_reconfig_timer_complete)( struct vdev_mlme_obj *vdev_mlme); + QDF_STATUS (*mlme_vdev_reconfig_notify_standby)( + struct vdev_mlme_obj *vdev_mlme, + struct ml_rv_info *reconfig_info); QDF_STATUS (*mlme_vdev_notify_mlo_sync_wait_entry)( struct vdev_mlme_obj *vdev_mlme); }; diff --git a/umac/mlo_mgr/src/wlan_mlo_mgr_sta.c b/umac/mlo_mgr/src/wlan_mlo_mgr_sta.c index 43f41ff8b7..229d2f8921 100644 --- a/umac/mlo_mgr/src/wlan_mlo_mgr_sta.c +++ b/umac/mlo_mgr/src/wlan_mlo_mgr_sta.c @@ -2012,6 +2012,29 @@ QDF_STATUS mlo_sta_handle_csa_standby_link( qdf_mem_free(params.chan); return status; } + +static void mlo_sta_handle_link_reconfig_standby_link( + struct wlan_objmgr_vdev *vdev, + struct ml_rv_info *reconfig_info) +{ + struct vdev_mlme_obj *vdev_mlme; + + vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev); + if (!vdev_mlme) + return; + if (vdev_mlme->ops && + vdev_mlme->ops->mlme_vdev_reconfig_notify_standby) { + vdev_mlme->ops->mlme_vdev_reconfig_notify_standby( + vdev_mlme, + reconfig_info); + } +} +#else +static void mlo_sta_handle_link_reconfig_standby_link( + struct wlan_objmgr_vdev *vdev, + struct ml_rv_info *reconfig_info) +{ +} #endif QDF_STATUS mlo_sta_csa_save_params(struct wlan_mlo_dev_context *mlo_dev_ctx, @@ -2704,6 +2727,8 @@ check_ml_rv: } } + mlo_sta_handle_link_reconfig_standby_link(vdev, &reconfig_info); + err_release_refs: for (i = 0; i < vdev_count; i++)