qcacmn: Handle CSA in MLO sta partner link before it is up
Before MLO sta partner link is up, FW can't indicate CSA event to host. For this case, host need save csa parameters and process it when MLO sta partner link is up. Change-Id: Id1803f32787002e020c6899ec72e428feb765b7f CRs-Fixed: 3082438
This commit is contained in:

committed by
Madan Koyyalamudi

parent
7ee4663048
commit
bdbcc9ddf0
@@ -1790,13 +1790,15 @@ static bool mlme_vdev_subst_up_active_event(void *ctx, uint16_t event,
|
||||
mlme_vdev_update_beacon(vdev_mlme, BEACON_INIT,
|
||||
event_data_len, event_data);
|
||||
if (mlme_vdev_up_send(vdev_mlme, event_data_len,
|
||||
event_data) != QDF_STATUS_SUCCESS)
|
||||
event_data) != QDF_STATUS_SUCCESS) {
|
||||
mlme_vdev_sm_deliver_event(vdev_mlme,
|
||||
WLAN_VDEV_SM_EV_UP_FAIL,
|
||||
event_data_len, event_data);
|
||||
else
|
||||
} else {
|
||||
mlme_vdev_notify_up_complete(vdev_mlme, event_data_len,
|
||||
event_data);
|
||||
mlme_vdev_up_active_notify_mlo_mgr(vdev_mlme);
|
||||
}
|
||||
status = true;
|
||||
break;
|
||||
|
||||
|
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
@@ -25,6 +26,7 @@
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
#include <wlan_mlo_mgr_ap.h>
|
||||
#include <wlan_mlo_mgr_sta.h>
|
||||
#endif
|
||||
#include <wlan_dfs_utils_api.h>
|
||||
|
||||
@@ -677,6 +679,20 @@ static inline void mlme_vdev_down_cmpl_notify_mlo_mgr(
|
||||
if (wlan_vdev_mlme_is_mlo_ap(vdev_mlme->vdev))
|
||||
mlo_ap_link_down_cmpl_notify(vdev_mlme->vdev);
|
||||
}
|
||||
|
||||
/**
|
||||
* mlme_vdev_up_active_notify_mlo_mgr - notify mlo link is up active
|
||||
* @vdev_mlme_obj: VDEV MLME comp object
|
||||
*
|
||||
* Return: VOID.
|
||||
*/
|
||||
static inline void mlme_vdev_up_active_notify_mlo_mgr(
|
||||
struct vdev_mlme_obj *vdev_mlme)
|
||||
{
|
||||
if ((wlan_vdev_mlme_get_opmode(vdev_mlme->vdev) == QDF_STA_MODE) &&
|
||||
wlan_vdev_mlme_is_mlo_vdev(vdev_mlme->vdev))
|
||||
mlo_sta_up_active_notify(vdev_mlme->vdev);
|
||||
}
|
||||
#else
|
||||
static inline void mlme_vdev_up_notify_mlo_mgr(struct vdev_mlme_obj *vdev_mlme)
|
||||
{
|
||||
@@ -691,6 +707,11 @@ static inline void mlme_vdev_down_cmpl_notify_mlo_mgr(
|
||||
struct vdev_mlme_obj *vdev_mlme)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void mlme_vdev_up_active_notify_mlo_mgr(
|
||||
struct vdev_mlme_obj *vdev_mlme)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef VDEV_SM_LOCK_SUPPORT
|
||||
|
Reference in New Issue
Block a user