qcacld-3.0: Notify firmware on CSA rejection

The host driver now sends a notification to the
firmware when a CSA (Channel Switch Announcement)
is rejected due to no change in channel, bandwidth,
or puncture.

Change-Id: I5d8a424459898d15a7931baf7ca4c3de8308c64e
CRs-Fixed: 3595843
This commit is contained in:
Aasir Rasheed
2023-09-13 16:19:28 +05:30
committed by Rahul Choudhary
parent 99408bd7da
commit c03f357db6
26 changed files with 384 additions and 2 deletions

16
Kbuild
View File

@@ -936,8 +936,14 @@ CLD_WMI_MC_CP_STATS_OBJS := $(WMI_DIR)/src/wmi_unified_mc_cp_stats_tlv.o \
$(WMI_DIR)/src/wmi_unified_mc_cp_stats_api.o
endif
ifeq ($(CONFIG_QCA_TARGET_IF_MLME), y)
CLD_WMI_MLME_OBJS += $(WMI_DIR)/src/wmi_unified_mlme_tlv.o \
$(WMI_DIR)/src/wmi_unified_mlme_api.o
endif
CLD_WMI_OBJS := $(CLD_WMI_ROAM_OBJS) \
$(CLD_WMI_MC_CP_STATS_OBJS)
$(CLD_WMI_MC_CP_STATS_OBJS) \
$(CLD_WMI_MLME_OBJS)
$(call add-wlan-objs,cld_wmi,$(CLD_WMI_OBJS))
@@ -1744,9 +1750,14 @@ $(call add-wlan-objs,wlan_pre_cac,$(WLAN_PRE_CAC_OBJS))
CLD_TARGET_IF_DIR := components/target_if
CLD_TARGET_IF_INC := -I$(WLAN_ROOT)/$(CLD_TARGET_IF_DIR)/pmo/inc \
-I$(WLAN_ROOT)/$(CLD_TARGET_IF_DIR)/mlme/inc \
ifeq ($(CONFIG_QCA_TARGET_IF_MLME), y)
CLD_TARGET_IF_OBJ := $(CLD_TARGET_IF_DIR)/mlme/src/target_if_mlme.o
endif
ifeq ($(CONFIG_POWER_MANAGEMENT_OFFLOAD), y)
CLD_TARGET_IF_OBJ := $(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_arp.o \
CLD_TARGET_IF_OBJ += $(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_arp.o \
$(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_gtk.o \
$(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_hw_filter.o \
$(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_lphb.o \
@@ -3416,6 +3427,7 @@ ccflags-$(CONFIG_FEATURE_WLAN_SCAN_PNO) += -DFEATURE_WLAN_SCAN_PNO
ccflags-$(CONFIG_WLAN_FEATURE_PACKET_FILTERING) += -DWLAN_FEATURE_PACKET_FILTERING
ccflags-$(CONFIG_DHCP_SERVER_OFFLOAD) += -DDHCP_SERVER_OFFLOAD
ccflags-$(CONFIG_WLAN_NS_OFFLOAD) += -DWLAN_NS_OFFLOAD
ccflags-$(CONFIG_QCA_TARGET_IF_MLME) += -DQCA_TARGET_IF_MLME
ccflags-$(CONFIG_WLAN_DYNAMIC_ARP_NS_OFFLOAD) += -DFEATURE_WLAN_DYNAMIC_ARP_NS_OFFLOAD
ccflags-$(CONFIG_WLAN_FEATURE_ICMP_OFFLOAD) += -DWLAN_FEATURE_ICMP_OFFLOAD
ccflags-$(CONFIG_FEATURE_WLAN_RA_FILTERING) += -DFEATURE_WLAN_RA_FILTERING

View File

@@ -131,6 +131,10 @@ config CP_STATS
bool "Enable CP_STATS"
default n
config QCA_TARGET_IF_MLME
bool "Enable TARGET_IF MLME"
default n
config DCS
bool "Enable DCS"
default n

View File

@@ -129,12 +129,24 @@ struct wlan_mlme_rx_ops {
struct peer_oper_mode_event *data);
};
/**
* struct wlan_mlme_tx_ops - structure of mlme tx function pointers
* @send_csa_event_status_ind: Tx ops function to send csa event indication
*
*/
struct wlan_mlme_tx_ops {
QDF_STATUS
(*send_csa_event_status_ind)(struct wlan_objmgr_vdev *vdev,
uint8_t csa_status);
};
/**
* struct wlan_mlme_psoc_ext_obj -MLME ext psoc priv object
* @cfg: cfg items
* @rso_tx_ops: Roam Tx ops to send roam offload commands to firmware
* @rso_rx_ops: Roam Rx ops to receive roam offload events from firmware
* @mlme_rx_ops: mlme Rx ops to receive events from firmware
* @mlme_tx_ops: mlme tx ops
* @wfa_testcmd: WFA config tx ops to send to FW
* @disconnect_stats_param: Peer disconnect stats related params for SAP case
* @scan_requester_id: mlme scan requester id
@@ -144,6 +156,7 @@ struct wlan_mlme_psoc_ext_obj {
struct wlan_cm_roam_tx_ops rso_tx_ops;
struct wlan_cm_roam_rx_ops rso_rx_ops;
struct wlan_mlme_rx_ops mlme_rx_ops;
struct wlan_mlme_tx_ops mlme_tx_ops;
struct wlan_mlme_wfa_cmd wfa_testcmd;
struct peer_disconnect_stats_param disconnect_stats_param;
wlan_scan_requester scan_requester_id;
@@ -1919,4 +1932,16 @@ wlan_mlme_register_common_events(struct wlan_objmgr_psoc *psoc)
return QDF_STATUS_SUCCESS;
}
#endif
/**
* wlan_mlme_send_csa_event_status_ind_cmd() - send csa event status indication
* @vdev: vdev obj
* @csa_status: csa status
*
* Return: QDF_STATUS
*/
QDF_STATUS
wlan_mlme_send_csa_event_status_ind_cmd(struct wlan_objmgr_vdev *vdev,
uint8_t csa_status);
#endif

View File

@@ -5507,3 +5507,33 @@ QDF_STATUS wlan_mlme_register_common_events(struct wlan_objmgr_psoc *psoc)
return QDF_STATUS_SUCCESS;
}
#endif
QDF_STATUS
wlan_mlme_send_csa_event_status_ind_cmd(struct wlan_objmgr_vdev *vdev,
uint8_t csa_status)
{
struct wlan_objmgr_psoc *psoc;
struct wlan_mlme_tx_ops *tx_ops;
mlme_psoc_ext_t *mlme_priv;
psoc = wlan_vdev_get_psoc(vdev);
if (!psoc) {
mlme_err("vdev_id %d psoc object is NULL",
wlan_vdev_get_id(vdev));
return QDF_STATUS_E_FAILURE;
}
mlme_priv = wlan_psoc_mlme_get_ext_hdl(psoc);
if (!mlme_priv)
return QDF_STATUS_E_FAILURE;
tx_ops = &mlme_priv->mlme_tx_ops;
if (!tx_ops || !tx_ops->send_csa_event_status_ind) {
mlme_err("CSA no op defined");
return QDF_STATUS_E_FAILURE;
}
return tx_ops->send_csa_event_status_ind(vdev, csa_status);
}

View File

@@ -45,6 +45,7 @@
#include "wlan_mlo_mgr_sta.h"
#endif
#include <wlan_lmac_if_def.h>
#include "target_if_mlme.h"
static struct vdev_mlme_ops sta_mlme_ops;
static struct vdev_mlme_ops ap_mlme_ops;
@@ -1962,6 +1963,9 @@ QDF_STATUS psoc_mlme_ext_hdl_create(struct psoc_mlme_obj *psoc_mlme)
&psoc_mlme->ext_psoc_ptr->rso_rx_ops);
wlan_mlme_register_rx_ops(&psoc_mlme->ext_psoc_ptr->mlme_rx_ops);
target_if_mlme_register_tx_ops(
&psoc_mlme->ext_psoc_ptr->mlme_tx_ops);
return QDF_STATUS_SUCCESS;
}

View File

@@ -4825,4 +4825,15 @@ wlan_mlme_set_ap_oper_ch_width(struct wlan_objmgr_vdev *vdev,
*/
enum phy_ch_width
wlan_mlme_get_ap_oper_ch_width(struct wlan_objmgr_vdev *vdev);
/**
* wlan_mlme_send_csa_event_status_ind() - send csa event status ind
* @vdev: vdev obj
* @csa_status: csa status
*
* Return: QDF_STATUS
*/
QDF_STATUS
wlan_mlme_send_csa_event_status_ind(struct wlan_objmgr_vdev *vdev,
uint8_t csa_status);
#endif /* _WLAN_MLME_API_H_ */

View File

@@ -7983,3 +7983,10 @@ wlan_mlme_get_ap_oper_ch_width(struct wlan_objmgr_vdev *vdev)
return mlme_priv->mlme_ap.oper_ch_width;
}
QDF_STATUS
wlan_mlme_send_csa_event_status_ind(struct wlan_objmgr_vdev *vdev,
uint8_t csa_status)
{
return wlan_mlme_send_csa_event_status_ind_cmd(vdev, csa_status);
}

View File

@@ -0,0 +1,39 @@
/*
* Copyright (c) 2023, 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 above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
*/
/**
* DOC: contains mlme target if declarations
*/
#ifndef _WLAN_MLME_TGT_IF_H_
#define _WLAN_MLME_TGT_IF_H_
#include "qdf_types.h"
#include "wlan_mlme_dbg.h"
#include "wlan_mlme_api.h"
#include "wlan_mlme_main.h"
#include "target_if.h"
/**
* target_if_mlme_register_tx_ops() - registers mlme tx ops
* @tx_ops: tx ops
*
* Return: none
*/
void target_if_mlme_register_tx_ops(struct wlan_mlme_tx_ops *tx_ops);
#endif

View File

@@ -0,0 +1,74 @@
/*
* Copyright (c) 2023, 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 above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
*/
/**
* DOC: contains mlme target if declarations
*/
#include "target_if_mlme.h"
#include <wmi_unified_mlme_api.h>
static struct wmi_unified
*target_if_mlme_get_wmi_handle_from_vdev(struct wlan_objmgr_vdev *vdev)
{
struct wlan_objmgr_pdev *pdev;
struct wmi_unified *wmi_handle;
pdev = wlan_vdev_get_pdev(vdev);
if (!pdev) {
target_if_err("PDEV is NULL");
return NULL;
}
wmi_handle = get_wmi_unified_hdl_from_pdev(pdev);
if (!wmi_handle) {
target_if_err("wmi_handle is null");
return NULL;
}
return wmi_handle;
}
static QDF_STATUS
target_if_mlme_send_csa_event_status_ind(struct wlan_objmgr_vdev *vdev,
uint8_t csa_status)
{
wmi_unified_t wmi_handle;
struct csa_event_status_ind params = {0};
params.vdev_id = wlan_vdev_get_id(vdev);
params.status = csa_status;
wmi_handle = target_if_mlme_get_wmi_handle_from_vdev(vdev);
if (!wmi_handle)
return QDF_STATUS_E_FAILURE;
return wmi_send_csa_event_status_ind(wmi_handle, params);
}
void
target_if_mlme_register_tx_ops(struct wlan_mlme_tx_ops *tx_ops)
{
if (!tx_ops) {
target_if_err("target if tx ops is NULL!");
return;
}
tx_ops->send_csa_event_status_ind =
target_if_mlme_send_csa_event_status_ind;
}

View File

@@ -0,0 +1,45 @@
/*
* Copyright (c) 2023, 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 above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
*/
/**
* DOC: contains wmi mlme declarations
*/
#ifndef _WLAN_UNIFIED_MLME_API_H_
#define _WLAN_UNIFIED_MLME_API_H_
/*
* struct csa_event_status_ind - structure for csa event status ind
* @vdev_id: vdev id
* @status: accept: 1 reject : 0
*/
struct csa_event_status_ind {
uint8_t vdev_id;
uint8_t status;
};
/**
* wmi_send_csa_event_status_ind
* @wmi_hdl: wmi handle
* @params: csa params
*
* Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
*/
QDF_STATUS wmi_send_csa_event_status_ind(
wmi_unified_t wmi_hdl,
struct csa_event_status_ind params);
#endif

View File

@@ -0,0 +1,35 @@
/*
* Copyright (c) 2023, 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 above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
*/
/**
* DOC: contains wmi mlme declarations
*/
#include <osdep.h>
#include <wmi.h>
#include <wmi_unified_priv.h>
#include <wmi_unified_mlme_api.h>
QDF_STATUS wmi_send_csa_event_status_ind(
wmi_unified_t wmi_hdl,
struct csa_event_status_ind params)
{
if (wmi_hdl->ops->send_csa_event_status_ind)
return wmi_hdl->ops->send_csa_event_status_ind(wmi_hdl, params);
return QDF_STATUS_E_FAILURE;
}

View File

@@ -0,0 +1,68 @@
/*
* Copyright (c) 2023, 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 above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
*/
/**
* DOC: contains wmi mlme declarations
*/
#include <wmi_unified_priv.h>
#include "wmi.h"
#include "wlan_mlme_api.h"
static QDF_STATUS csa_event_status_ind_tlv(wmi_unified_t wmi_handle,
struct csa_event_status_ind params)
{
wmi_csa_event_status_ind_fixed_param *cmd;
wmi_buf_t buf;
QDF_STATUS status;
buf = wmi_buf_alloc(wmi_handle, sizeof(*cmd));
if (!buf)
return QDF_STATUS_E_FAILURE;
cmd = (wmi_csa_event_status_ind_fixed_param *)wmi_buf_data(buf);
WMITLV_SET_HDR(&cmd->tlv_header,
WMITLV_TAG_STRUC_wmi_csa_event_status_ind_fixed_param,
WMITLV_GET_STRUCT_TLVLEN
(wmi_csa_event_status_ind_fixed_param));
cmd->vdev_id = params.vdev_id;
cmd->status = params.status;
wmi_debug("vdev_id: %d status: %d ", cmd->vdev_id, cmd->status);
status = wmi_unified_cmd_send(wmi_handle, buf, sizeof(*cmd),
WMI_CSA_EVENT_STATUS_INDICATION_CMDID);
if (QDF_IS_STATUS_ERROR(status))
wmi_buf_free(buf);
return status;
}
/**
* wmi_mlme_attach_tlv() - attach MLME tlv handlers
* @wmi_handle: wmi handle
*
* Return: void
*/
void wmi_mlme_attach_tlv(wmi_unified_t wmi_handle)
{
struct wmi_ops *ops = wmi_handle->ops;
ops->send_csa_event_status_ind = csa_event_status_ind_tlv;
}

View File

@@ -356,6 +356,10 @@
#define WLAN_SUPPORT_INFRA_CTRL_PATH_STATS (1)
#endif
#ifdef CONFIG_QCA_TARGET_IF_MLME
#define QCA_TARGET_IF_MLME
#endif
#ifdef CONFIG_CP_STATS
#define QCA_SUPPORT_CP_STATS (1)
#endif

View File

@@ -1248,6 +1248,8 @@ ifneq ($(CONFIG_WIFI_POS_CONVERGED), y)
CONFIG_WIFI_POS_LEGACY := y
endif
CONFIG_QCA_TARGET_IF_MLME := y
CONFIG_CP_STATS := y
CONFIG_FEATURE_INTEROP_ISSUES_AP := y

View File

@@ -67,6 +67,7 @@ CONFIG_FEATURE_HTC_CREDIT_HISTORY := y
CONFIG_TRACE_RECORD_FEATURE := y
CONFIG_WLAN_NUD_TRACKING := n
CONFIG_CP_STATS := y
CONFIG_QCA_TARGET_IF_MLME := y
CONFIG_FEATURE_FW_LOG_PARSING := y
CONFIG_PTT_SOCK_SVC_ENABLE := y
CONFIG_WMI_INTERFACE_EVENT_LOGGING := y

View File

@@ -22,6 +22,7 @@ CONFIG_CNSS_UTILS=y
CONFIG_CONNECTIVITY_PKTLOG=y
CONFIG_CONVERGED_P2P_ENABLE=y
CONFIG_CP_STATS=y
CONFIG_QCA_TARGET_IF_MLME=y
CONFIG_DCS=y
CONFIG_DDP_MON_RSSI_IN_DBM=y
CONFIG_DEBUG_RX_RING_BUFFER=y

View File

@@ -22,6 +22,7 @@ CONFIG_CNSS_UTILS=y
CONFIG_CONNECTIVITY_PKTLOG=y
CONFIG_CONVERGED_P2P_ENABLE=y
CONFIG_CP_STATS=y
CONFIG_QCA_TARGET_IF_MLME=y
CONFIG_DCS=y
CONFIG_DDP_MON_RSSI_IN_DBM=y
CONFIG_DEBUG_RX_RING_BUFFER=y

View File

@@ -569,6 +569,8 @@ endif
CONFIG_CP_STATS := y
CONFIG_QCA_TARGET_IF_MLME := y
CONFIG_FEATURE_WLAN_WAPI := y
CONFIG_AGEIE_ON_SCAN_RESULTS := y

View File

@@ -631,6 +631,7 @@ CONFIG_WIFI_POS_LEGACY := y
endif
CONFIG_CP_STATS := y
CONFIG_QCA_TARGET_IF_MLME := y
#Flag to enable compilation of DCS module
CONFIG_DCS := y

View File

@@ -94,6 +94,7 @@ CONFIG_TRACE_RECORD_FEATURE := y
CONFIG_WLAN_FEATURE_P2P_DEBUG := n
CONFIG_WLAN_NUD_TRACKING := n
CONFIG_CP_STATS := n
CONFIG_QCA_TARGET_IF_MLME := y
CONFIG_FEATURE_FW_LOG_PARSING := y
CONFIG_PTT_SOCK_SVC_ENABLE := y
CONFIG_WMI_INTERFACE_EVENT_LOGGING := y

View File

@@ -22,6 +22,7 @@ CONFIG_CNSS_UTILS=y
CONFIG_CONNECTIVITY_PKTLOG=y
CONFIG_CONVERGED_P2P_ENABLE=y
CONFIG_CP_STATS=y
CONFIG_QCA_TARGET_IF_MLME=y
CONFIG_DCS=y
CONFIG_DDP_MON_RSSI_IN_DBM=y
CONFIG_DEBUG_RX_RING_BUFFER=y

View File

@@ -23,6 +23,7 @@ CONFIG_CNSS_UTILS=y
CONFIG_CONNECTIVITY_PKTLOG=y
CONFIG_CONVERGED_P2P_ENABLE=y
CONFIG_CP_STATS=y
CONFIG_QCA_TARGET_IF_MLME=y
CONFIG_DCS=y
CONFIG_DDP_MON_RSSI_IN_DBM=y
CONFIG_DEBUG_RX_RING_BUFFER=y

View File

@@ -580,6 +580,9 @@ CONFIG_WIFI_POS_LEGACY := y
endif
CONFIG_CP_STATS := y
CONFIG_QCA_TARGET_IF_MLME := y
CONFIG_FEATURE_INTEROP_ISSUES_AP := y
CONFIG_FEATURE_WLAN_WAPI := y

View File

@@ -837,6 +837,7 @@ CONFIG_WIFI_POS_LEGACY := y
endif
CONFIG_CP_STATS := y
CONFIG_QCA_TARGET_IF_MLME := y
CONFIG_FEATURE_INTEROP_ISSUES_AP := y
CONFIG_FEATURE_WLAN_WAPI := y

View File

@@ -2244,6 +2244,7 @@ void lim_handle_sta_csa_param(struct mac_context *mac_ctx,
session_entry->ch_width == lim_ch_switch->ch_width &&
lim_is_puncture_same(lim_ch_switch, session_entry)) {
pe_debug("Ignore CSA, no change in ch, bw and puncture");
wlan_mlme_send_csa_event_status_ind(session_entry->vdev, 0);
goto err;
}

View File

@@ -182,6 +182,7 @@ _fixed_ipaths = [
"components/coex/core/inc",
"components/coex/dispatcher/inc",
"components/cp_stats/dispatcher/inc",
"components/target_if/mlme/inc",
"components/denylist_mgr/core/inc",
"components/denylist_mgr/dispatcher/inc",
"components/disa/core/inc",
@@ -703,6 +704,13 @@ _conditional_srcs = {
"os_if/cp_stats/src/wlan_cfg80211_mc_cp_stats.c",
],
},
"CONFIG_QCA_TARGET_IF_MLME": {
True: [
"components/target_if/mlme/src/target_if_mlme.c",
"components/wmi/src/wmi_unified_mlme_api.c",
"components/wmi/src/wmi_unified_mlme_tlv.c",
],
},
"CONFIG_DCS": {
True: [
"cmn/target_if/dcs/src/target_if_dcs.c",