diff --git a/Kbuild b/Kbuild index 27663fad56..4ee2462f44 100644 --- a/Kbuild +++ b/Kbuild @@ -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 diff --git a/Kconfig b/Kconfig index 2ca8833274..e9b6847316 100644 --- a/Kconfig +++ b/Kconfig @@ -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 diff --git a/components/mlme/core/inc/wlan_mlme_main.h b/components/mlme/core/inc/wlan_mlme_main.h index 7a04bbf168..c6c70288f8 100644 --- a/components/mlme/core/inc/wlan_mlme_main.h +++ b/components/mlme/core/inc/wlan_mlme_main.h @@ -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 diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c index 7aa67f7e43..b339aa48a9 100644 --- a/components/mlme/core/src/wlan_mlme_main.c +++ b/components/mlme/core/src/wlan_mlme_main.c @@ -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); +} + diff --git a/components/mlme/core/src/wlan_mlme_vdev_mgr_interface.c b/components/mlme/core/src/wlan_mlme_vdev_mgr_interface.c index 76361be656..97428f3522 100644 --- a/components/mlme/core/src/wlan_mlme_vdev_mgr_interface.c +++ b/components/mlme/core/src/wlan_mlme_vdev_mgr_interface.c @@ -45,6 +45,7 @@ #include "wlan_mlo_mgr_sta.h" #endif #include +#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; } diff --git a/components/mlme/dispatcher/inc/wlan_mlme_api.h b/components/mlme/dispatcher/inc/wlan_mlme_api.h index 607cc26ff8..bc70ffed37 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_api.h @@ -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_ */ diff --git a/components/mlme/dispatcher/src/wlan_mlme_api.c b/components/mlme/dispatcher/src/wlan_mlme_api.c index 8d07427c79..d930a0269a 100644 --- a/components/mlme/dispatcher/src/wlan_mlme_api.c +++ b/components/mlme/dispatcher/src/wlan_mlme_api.c @@ -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); +} diff --git a/components/target_if/mlme/inc/target_if_mlme.h b/components/target_if/mlme/inc/target_if_mlme.h new file mode 100644 index 0000000000..a9c75b8e76 --- /dev/null +++ b/components/target_if/mlme/inc/target_if_mlme.h @@ -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 diff --git a/components/target_if/mlme/src/target_if_mlme.c b/components/target_if/mlme/src/target_if_mlme.c new file mode 100644 index 0000000000..5ad3bc506f --- /dev/null +++ b/components/target_if/mlme/src/target_if_mlme.c @@ -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 + +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; +} + diff --git a/components/wmi/inc/wmi_unified_mlme_api.h b/components/wmi/inc/wmi_unified_mlme_api.h new file mode 100644 index 0000000000..623b681d4e --- /dev/null +++ b/components/wmi/inc/wmi_unified_mlme_api.h @@ -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 diff --git a/components/wmi/src/wmi_unified_mlme_api.c b/components/wmi/src/wmi_unified_mlme_api.c new file mode 100644 index 0000000000..8ebeb29122 --- /dev/null +++ b/components/wmi/src/wmi_unified_mlme_api.c @@ -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 +#include +#include +#include + +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; +} diff --git a/components/wmi/src/wmi_unified_mlme_tlv.c b/components/wmi/src/wmi_unified_mlme_tlv.c new file mode 100644 index 0000000000..f67709370b --- /dev/null +++ b/components/wmi/src/wmi_unified_mlme_tlv.c @@ -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 +#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; +} + diff --git a/configs/config_to_feature.h b/configs/config_to_feature.h index b6bc65b3ad..0cb1eed030 100644 --- a/configs/config_to_feature.h +++ b/configs/config_to_feature.h @@ -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 diff --git a/configs/default_defconfig b/configs/default_defconfig index 595eea2af0..7a07759e87 100644 --- a/configs/default_defconfig +++ b/configs/default_defconfig @@ -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 diff --git a/configs/genoa.common b/configs/genoa.common index fe3bb20637..887cef73e3 100644 --- a/configs/genoa.common +++ b/configs/genoa.common @@ -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 diff --git a/configs/niobe_gki_kiwi-v2_defconfig b/configs/niobe_gki_kiwi-v2_defconfig index 42d4c0df8f..4bc4bc1c04 100644 --- a/configs/niobe_gki_kiwi-v2_defconfig +++ b/configs/niobe_gki_kiwi-v2_defconfig @@ -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 diff --git a/configs/pineapple_gki_kiwi-v2_defconfig b/configs/pineapple_gki_kiwi-v2_defconfig index 522e6c6aa7..ffb6ba3675 100644 --- a/configs/pineapple_gki_kiwi-v2_defconfig +++ b/configs/pineapple_gki_kiwi-v2_defconfig @@ -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 diff --git a/configs/qca6174_defconfig b/configs/qca6174_defconfig index fb922fc75f..fa02d93a44 100644 --- a/configs/qca6174_defconfig +++ b/configs/qca6174_defconfig @@ -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 diff --git a/configs/qca6390_defconfig b/configs/qca6390_defconfig index 219cdf8612..76c1390d59 100644 --- a/configs/qca6390_defconfig +++ b/configs/qca6390_defconfig @@ -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 diff --git a/configs/qcs40x.snoc.perf_defconfig b/configs/qcs40x.snoc.perf_defconfig index 6adf7584b0..f168074489 100644 --- a/configs/qcs40x.snoc.perf_defconfig +++ b/configs/qcs40x.snoc.perf_defconfig @@ -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 diff --git a/configs/sun_gki_kiwi-v2_defconfig b/configs/sun_gki_kiwi-v2_defconfig index 3957d7f6f2..30445ec688 100644 --- a/configs/sun_gki_kiwi-v2_defconfig +++ b/configs/sun_gki_kiwi-v2_defconfig @@ -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 diff --git a/configs/sun_gki_peach_defconfig b/configs/sun_gki_peach_defconfig index c42bb06c72..35adfab81f 100644 --- a/configs/sun_gki_peach_defconfig +++ b/configs/sun_gki_peach_defconfig @@ -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 diff --git a/configs/wcn6450_defconfig b/configs/wcn6450_defconfig index f1217e42df..f1d8c3227f 100644 --- a/configs/wcn6450_defconfig +++ b/configs/wcn6450_defconfig @@ -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 diff --git a/configs/wear_defconfig b/configs/wear_defconfig index c548b74b23..0d09a532fd 100644 --- a/configs/wear_defconfig +++ b/configs/wear_defconfig @@ -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 diff --git a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c index e3518ab075..b02484605c 100644 --- a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c +++ b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c @@ -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; } diff --git a/wlan_qcacld3_modules.bzl b/wlan_qcacld3_modules.bzl index b2a4050da8..afc5eb3868 100644 --- a/wlan_qcacld3_modules.bzl +++ b/wlan_qcacld3_modules.bzl @@ -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",