From 8bdb0697af4e33e7ad7ee335ad0404cbc218ffff Mon Sep 17 00:00:00 2001 From: yeshwanth sriram guntuka Date: Tue, 18 Jul 2017 13:30:42 +0530 Subject: [PATCH 1/3] qcacmn: Add vendor features to indicate OCE support Vendor features are used to indicate OCE support from driver to user space which are set based on ini params for STA and SAP. Change-Id: I7ef572443c8a7ed313917e4dfab5f4fab73fe245 CRs-Fixed: 2031980 --- os_if/linux/qca_vendor.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/os_if/linux/qca_vendor.h b/os_if/linux/qca_vendor.h index 369f9cf65b80..7326e8d48d06 100644 --- a/os_if/linux/qca_vendor.h +++ b/os_if/linux/qca_vendor.h @@ -2663,12 +2663,24 @@ enum qca_wlan_vendor_attr_nd_offload { * user space wpa_supplicant do it. Information from received P2P * Requests are forwarded from firmware to host whenever the APPS * processor exits power collapse state. + * @QCA_WLAN_VENDOR_FEATURE_OCE_STA: Device supports all OCE non-AP STA + * specific features + * @QCA_WLAN_VENDOR_FEATURE_OCE_AP: Device supports all OCE AP specific + * features. + * @QCA_WLAN_VENDOR_FEATURE_OCE_STA_CFON: Device supports OCE STA-CFON + * specific features only. If a Device sets this bit but not the + * QCA_WLAN_VENDOR_FEATURE_OCE_AP, the userspace shall assume that + * this Device may not support all OCE AP functionalities but can support + * only OCE STA-CFON functionalities. */ enum qca_wlan_vendor_features { QCA_WLAN_VENDOR_FEATURE_KEY_MGMT_OFFLOAD = 0, QCA_WLAN_VENDOR_FEATURE_SUPPORT_HW_MODE_ANY = 1, QCA_WLAN_VENDOR_FEATURE_OFFCHANNEL_SIMULTANEOUS = 2, QCA_WLAN_VENDOR_FEATURE_P2P_LISTEN_OFFLOAD = 3, + QCA_WLAN_VENDOR_FEATURE_OCE_STA = 4, + QCA_WLAN_VENDOR_FEATURE_OCE_AP = 5, + QCA_WLAN_VENDOR_FEATURE_OCE_STA_CFON = 6, /* Additional features need to be added above this */ NUM_QCA_WLAN_VENDOR_FEATURES }; From 3dda60e173b905b3d13b215c5575a1abe34f2078 Mon Sep 17 00:00:00 2001 From: Govind Singh Date: Tue, 21 Mar 2017 13:02:00 +0530 Subject: [PATCH 2/3] qcacmn: Remove redundant header file inclusion from wmi layer Remove redundant header file inclusion from wmi layer by abstracting the dependency with in WMI layer. Change-Id: Ie113b69006a960b70d781134775bc44c7508fc4c CRs-Fixed: 2023825 --- wmi/inc/wmi_unified_api.h | 1 - wmi/inc/wmi_unified_priv.h | 5 ++++- wmi/src/wmi_tlv_platform.c | 3 +-- wmi/src/wmi_unified.c | 20 +++++++------------- wmi/src/wmi_unified_api.c | 5 ----- wmi/src/wmi_unified_non_tlv.c | 7 +------ 6 files changed, 13 insertions(+), 28 deletions(-) diff --git a/wmi/inc/wmi_unified_api.h b/wmi/inc/wmi_unified_api.h index a2892873b030..1e5e72921f9b 100644 --- a/wmi/inc/wmi_unified_api.h +++ b/wmi/inc/wmi_unified_api.h @@ -34,7 +34,6 @@ #define _WMI_UNIFIED_API_H_ #include -#include "a_types.h" #ifdef CONFIG_MCL #include "wmi.h" #endif diff --git a/wmi/inc/wmi_unified_priv.h b/wmi/inc/wmi_unified_priv.h index 9209cdb1e260..7eb00a25eaa7 100644 --- a/wmi/inc/wmi_unified_priv.h +++ b/wmi/inc/wmi_unified_priv.h @@ -32,9 +32,12 @@ #ifndef _WMI_UNIFIED_PRIV_H_ #define _WMI_UNIFIED_PRIV_H_ #include -#include "a_types.h" +#include "wmi_unified_api.h" #include "wmi_unified_param.h" #include "wlan_scan_ucfg_api.h" +#ifdef CONFIG_MCL +#include +#endif #include "qdf_atomic.h" #include "wlan_objmgr_psoc_service_ready_api.h" diff --git a/wmi/src/wmi_tlv_platform.c b/wmi/src/wmi_tlv_platform.c index d7858aed6d4f..7e0add1ad798 100644 --- a/wmi/src/wmi_tlv_platform.c +++ b/wmi/src/wmi_tlv_platform.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2014, 2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2014, 2016-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -29,7 +29,6 @@ * LMAC offload interface functions for WMI TLV Interface */ -#include "ol_if_athvar.h" #include /* qdf_mem_malloc,free, etc. */ #include #include "htc_api.h" diff --git a/wmi/src/wmi_unified.c b/wmi/src/wmi_unified.c index 910a3aae71f9..cafd7255b239 100644 --- a/wmi/src/wmi_unified.c +++ b/wmi/src/wmi_unified.c @@ -28,16 +28,9 @@ /* * Host WMI unified implementation */ -#include "athdefs.h" -#include "osapi_linux.h" -#include "a_types.h" -#include "a_debug.h" -#include "ol_if_athvar.h" #include "htc_api.h" #include "htc_api.h" -#include "dbglog_host.h" #include "wmi_unified_priv.h" -#include "wmi_unified_param.h" #ifndef WMI_NON_TLV_SUPPORT #include "wmi_tlv_helper.h" @@ -1875,11 +1868,6 @@ static uint8_t *wmi_id_to_name(uint32_t wmi_command) return "Invalid WMI cmd"; } -static inline void wma_log_cmd_id(uint32_t cmd_id, uint32_t tag) -{ - WMI_LOGD("Send WMI command:%s command_id:%d htc_tag:%d\n", - wmi_id_to_name(cmd_id), cmd_id, tag); -} #else static uint8_t *wmi_id_to_name(uint32_t wmi_command) { @@ -1888,6 +1876,12 @@ static uint8_t *wmi_id_to_name(uint32_t wmi_command) #endif #ifdef CONFIG_MCL +static inline void wmi_log_cmd_id(uint32_t cmd_id, uint32_t tag) +{ + WMI_LOGD("Send WMI command:%s command_id:%d htc_tag:%d\n", + wmi_id_to_name(cmd_id), cmd_id, tag); +} + /** * wmi_is_pm_resume_cmd() - check if a cmd is part of the resume sequence * @cmd_id: command to check @@ -2001,7 +1995,7 @@ QDF_STATUS wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, SET_HTC_PACKET_NET_BUF_CONTEXT(pkt, buf); #ifdef CONFIG_MCL - wma_log_cmd_id(cmd_id, htc_tag); + wmi_log_cmd_id(cmd_id, htc_tag); #endif #ifdef WMI_INTERFACE_EVENT_LOGGING diff --git a/wmi/src/wmi_unified_api.c b/wmi/src/wmi_unified_api.c index ca99db49e004..a31b327919d0 100644 --- a/wmi/src/wmi_unified_api.c +++ b/wmi/src/wmi_unified_api.c @@ -24,11 +24,6 @@ * under proprietary terms before Copyright ownership was assigned * to the Linux Foundation. */ -#include "athdefs.h" -#include "osapi_linux.h" -#include "a_types.h" -#include "a_debug.h" -#include "ol_if_athvar.h" #include "wmi_unified_priv.h" #include "wmi_unified_param.h" diff --git a/wmi/src/wmi_unified_non_tlv.c b/wmi/src/wmi_unified_non_tlv.c index 56450131ad7e..d2e3b297e09c 100644 --- a/wmi/src/wmi_unified_non_tlv.c +++ b/wmi/src/wmi_unified_non_tlv.c @@ -25,14 +25,9 @@ * to the Linux Foundation. */ -#include "athdefs.h" -#include "osapi_linux.h" -#include "a_types.h" -#include "a_debug.h" -#include "wlan_defs.h" -#include "ol_if_athvar.h" #include "wmi_unified_api.h" #include "wmi_unified_priv.h" +#include "hif.h" #if defined(WMI_NON_TLV_SUPPORT) || defined(WMI_TLV_AND_NON_TLV_SUPPORT) #include "wmi.h" From 4fbe3fe1c7ff160f9699294340ca799e0b73b813 Mon Sep 17 00:00:00 2001 From: Pratik Gandhi Date: Thu, 20 Jul 2017 15:31:26 +0530 Subject: [PATCH 3/3] qcacmn: SmartMesh Extract status for radiotap headers Extract rx status to add correct values in radiotap header before sending to stack. Change-Id: If7adf523dc61cd52c984ad0a97da82fccc608bbc CRs-Fixed: 2017269 --- dp/wifi3.0/dp_rx_err.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dp/wifi3.0/dp_rx_err.c b/dp/wifi3.0/dp_rx_err.c index 0d9f67d36a68..b691bc95ec43 100644 --- a/dp/wifi3.0/dp_rx_err.c +++ b/dp/wifi3.0/dp_rx_err.c @@ -212,11 +212,19 @@ dp_rx_chain_msdus(struct dp_soc *soc, qdf_nbuf_t nbuf, struct dp_rx_desc *rx_desc) { bool mpdu_done = false; + /* TODO: Currently only single radio is supported, hence + * pdev hard coded to '0' index + */ + struct dp_pdev *dp_pdev = soc->pdev_list[0]; if (hal_rx_msdu_end_first_msdu_get(rx_desc->rx_buf_start)) { qdf_nbuf_set_chfrag_start(rx_desc->nbuf, 1); soc->invalid_peer_head_msdu = NULL; soc->invalid_peer_tail_msdu = NULL; + + hal_rx_mon_hw_desc_get_mpdu_status(rx_desc->rx_buf_start, + &(dp_pdev->ppdu_info.rx_status)); + } if (hal_rx_msdu_end_last_msdu_get(rx_desc->rx_buf_start)) {