qcacmn: Add API to stop reconfig timer
Add API to stop link reconfig timer on vdev or ml dev. Add API to query the reconfig timer state. Change-Id: I729d403122e4e84cdf0dced21c49176397e10e5d CRs-Fixed: 3352937
This commit is contained in:

committed by
Madan Koyyalamudi

parent
d30d545aee
commit
1ffc60a883
@@ -621,6 +621,31 @@ bool mlo_is_sta_csa_param_handled(struct wlan_objmgr_vdev *vdev,
|
||||
*/
|
||||
void mlo_internal_disconnect_links(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* mlo_sta_vdev_get_reconfig_timer_state() - Get ml reconfig timer state on
|
||||
* vdev
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: true if reconfig timer is active, otherwise false
|
||||
*/
|
||||
bool mlo_sta_vdev_get_reconfig_timer_state(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* mlo_sta_stop_reconfig_timer_by_vdev() - Stop ml reconfig timer
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void mlo_sta_stop_reconfig_timer_by_vdev(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* mlo_sta_stop_reconfig_timer() - Stop reconfig timer on all vdev on ml dev
|
||||
* @vdev: vdev pointer
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void mlo_sta_stop_reconfig_timer(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* mlo_sta_get_vdev_list() - get mlo vdev list
|
||||
* @vdev: vdev pointer
|
||||
@@ -805,6 +830,21 @@ void mlo_sta_get_vdev_list(struct wlan_objmgr_vdev *vdev,
|
||||
{
|
||||
}
|
||||
|
||||
static inline bool
|
||||
mlo_sta_vdev_get_reconfig_timer_state(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline void
|
||||
mlo_sta_stop_reconfig_timer_by_vdev(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void mlo_sta_stop_reconfig_timer(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
}
|
||||
|
||||
static inline
|
||||
void mlo_set_keys_saved(struct wlan_objmgr_vdev *vdev,
|
||||
struct qdf_mac_addr *mac_address, bool value)
|
||||
|
@@ -2035,6 +2035,73 @@ void mlo_sta_get_vdev_list(struct wlan_objmgr_vdev *vdev, uint16_t *vdev_count,
|
||||
mlo_dev_lock_release(dev_ctx);
|
||||
}
|
||||
|
||||
bool mlo_sta_vdev_get_reconfig_timer_state(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct vdev_mlme_obj *vdev_mlme;
|
||||
|
||||
if (!vdev || !mlo_is_mld_sta(vdev))
|
||||
return false;
|
||||
|
||||
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
|
||||
if (!vdev_mlme) {
|
||||
mlo_err("vdev mlme is null");
|
||||
return false;
|
||||
}
|
||||
|
||||
return vdev_mlme->ml_reconfig_started;
|
||||
}
|
||||
|
||||
void mlo_sta_stop_reconfig_timer_by_vdev(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct vdev_mlme_obj *vdev_mlme;
|
||||
|
||||
if (!vdev || !mlo_is_mld_sta(vdev))
|
||||
return;
|
||||
|
||||
vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
|
||||
if (!vdev_mlme) {
|
||||
mlo_err("vdev mlme is null");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!vdev_mlme->ml_reconfig_started)
|
||||
return;
|
||||
|
||||
qdf_timer_stop(&vdev_mlme->ml_reconfig_timer);
|
||||
|
||||
mlo_debug("vdev %d reconfig timer active to stop",
|
||||
wlan_vdev_get_id(vdev));
|
||||
vdev_mlme->ml_reconfig_started = false;
|
||||
}
|
||||
|
||||
void mlo_sta_stop_reconfig_timer(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct wlan_objmgr_vdev *wlan_vdev_list[WLAN_UMAC_MLO_MAX_VDEVS] = {0};
|
||||
uint16_t vdev_count = 0;
|
||||
uint8_t i;
|
||||
|
||||
if (!vdev || !mlo_is_mld_sta(vdev))
|
||||
return;
|
||||
|
||||
mlo_get_ml_vdev_list(vdev, &vdev_count, wlan_vdev_list);
|
||||
if (!vdev_count) {
|
||||
mlo_err("vdev num 0 in mld dev");
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < vdev_count; i++) {
|
||||
if (!wlan_vdev_list[i]) {
|
||||
mlo_err("vdev is null in mld");
|
||||
goto release_ref;
|
||||
}
|
||||
mlo_sta_stop_reconfig_timer_by_vdev(wlan_vdev_list[i]);
|
||||
}
|
||||
|
||||
release_ref:
|
||||
for (i = 0; i < vdev_count; i++)
|
||||
mlo_release_vdev_ref(wlan_vdev_list[i]);
|
||||
}
|
||||
|
||||
void mlo_set_keys_saved(struct wlan_objmgr_vdev *vdev,
|
||||
struct qdf_mac_addr *mac_address, bool value)
|
||||
{
|
||||
|
Reference in New Issue
Block a user