From 10ed5f7e10e6247c5d66b4dde8a2c9e9468533a8 Mon Sep 17 00:00:00 2001 From: codeworkx Date: Fri, 30 Aug 2019 09:00:44 +0200 Subject: [PATCH] staging: update wifi stack from LA.UM.7.4.r1-05500-8x98.0 Change-Id: I7e3b91dc20014d0c0ed763a7f98f53c3d4235474 --- .../qcacld-3.0/core/hdd/src/wlan_hdd_cfg80211.h | 1 + .../qcacld-3.0/core/hdd/src/wlan_hdd_spectral.c | 14 ++++++++++++-- .../qcacld-3.0/core/mac/inc/qwlan_version.h | 4 ++-- .../qcacld-3.0/core/mac/inc/sir_mac_prot_def.h | 3 +++ .../mac/src/sys/legacy/src/utils/src/parser_api.c | 5 ++++- 5 files changed, 22 insertions(+), 5 deletions(-) diff --git a/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_cfg80211.h b/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_cfg80211.h index e7fc0c9d984e..b36742370fb4 100644 --- a/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_cfg80211.h +++ b/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_cfg80211.h @@ -254,6 +254,7 @@ typedef enum { #define WIFI_FEATURE_CONTROL_ROAMING 0x800000 /* Enable/Disable roaming */ #define WIFI_FEATURE_IE_WHITELIST 0x1000000 /* Support Probe IE white listing */ #define WIFI_FEATURE_SCAN_RAND 0x2000000 /* Support MAC & Probe Sequence Number randomization */ +#define WIFI_FEATURE_SET_TX_POWER_LIMIT 0x4000000 /* Support Tx Power Limit setting */ /* Support Tx Power Limit setting */ #define WIFI_FEATURE_SET_TX_POWER_LIMIT 0x4000000 diff --git a/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_spectral.c b/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_spectral.c index 23cb9e4fecfe..737bb523450b 100644 --- a/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_spectral.c +++ b/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_spectral.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019 The Linux Foundation. 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 @@ -391,7 +391,7 @@ static void __spectral_scan_msg_handler(const void *data, int data_len, void *ctx, int pid) { struct spectral_scan_msg *ss_msg = NULL; - struct nlattr *tb[QCA_WLAN_VENDOR_ATTR_MAX + 1]; + struct nlattr *tb[CLD80211_ATTR_MAX + 1]; hdd_context_t *hdd_ctx; int ret; @@ -400,6 +400,10 @@ static void __spectral_scan_msg_handler(const void *data, int data_len, if (0 != ret) return; + /* + * audit note: it is ok to pass a NULL policy here since only + * one attribute is parsed and it is explicitly validated + */ if (hdd_nla_parse(tb, CLD80211_ATTR_MAX, data, data_len, NULL)) { hdd_err("nla parse fails"); return; @@ -409,6 +413,12 @@ static void __spectral_scan_msg_handler(const void *data, int data_len, hdd_err("attr VENDOR_DATA fails"); return; } + + if (nla_len(tb[CLD80211_ATTR_DATA]) < sizeof(*ss_msg)) { + hdd_err("Invalid length for ATTR_DATA"); + return; + } + ss_msg = (struct spectral_scan_msg *)nla_data(tb[CLD80211_ATTR_DATA]); if (!ss_msg) { diff --git a/drivers/staging/qcacld-3.0/core/mac/inc/qwlan_version.h b/drivers/staging/qcacld-3.0/core/mac/inc/qwlan_version.h index 98a535d9e7a7..c6ec03ca7f23 100644 --- a/drivers/staging/qcacld-3.0/core/mac/inc/qwlan_version.h +++ b/drivers/staging/qcacld-3.0/core/mac/inc/qwlan_version.h @@ -32,9 +32,9 @@ #define QWLAN_VERSION_MAJOR 5 #define QWLAN_VERSION_MINOR 1 #define QWLAN_VERSION_PATCH 1 -#define QWLAN_VERSION_EXTRA "Q" +#define QWLAN_VERSION_EXTRA "R" #define QWLAN_VERSION_BUILD 73 -#define QWLAN_VERSIONSTR "5.1.1.73Q" +#define QWLAN_VERSIONSTR "5.1.1.73R" #endif /* QWLAN_VERSION_H */ diff --git a/drivers/staging/qcacld-3.0/core/mac/inc/sir_mac_prot_def.h b/drivers/staging/qcacld-3.0/core/mac/inc/sir_mac_prot_def.h index 07042919d9cd..724ac8e9ad3c 100644 --- a/drivers/staging/qcacld-3.0/core/mac/inc/sir_mac_prot_def.h +++ b/drivers/staging/qcacld-3.0/core/mac/inc/sir_mac_prot_def.h @@ -406,6 +406,9 @@ #define VHT_MCS_1x1 0xFFFC #define VHT_MCS_2x2 0xFFF3 +/* Mask to check if BTM offload is enabled/disabled*/ +#define BTM_OFFLOAD_ENABLED_MASK 0x01 + #ifdef FEATURE_AP_MCC_CH_AVOIDANCE #define SIR_MAC_QCOM_VENDOR_EID 200 #define SIR_MAC_QCOM_VENDOR_OUI "\x00\xA0\xC6" diff --git a/drivers/staging/qcacld-3.0/core/mac/src/sys/legacy/src/utils/src/parser_api.c b/drivers/staging/qcacld-3.0/core/mac/src/sys/legacy/src/utils/src/parser_api.c index 1513d45df870..e0eaafa01c0b 100644 --- a/drivers/staging/qcacld-3.0/core/mac/src/sys/legacy/src/utils/src/parser_api.c +++ b/drivers/staging/qcacld-3.0/core/mac/src/sys/legacy/src/utils/src/parser_api.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2019 The Linux Foundation. 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 @@ -1215,6 +1215,9 @@ populate_dot11f_ext_cap(tpAniSirGlobal pMac, if (psessionEntry && psessionEntry->enable_bcast_probe_rsp) p_ext_cap->fils_capability = 1; + if (pMac->roam.configParam.btm_offload_config & BTM_OFFLOAD_ENABLED_MASK) + p_ext_cap->bss_transition = 1; + /* Need to calulate the num_bytes based on bits set */ if (pDot11f->present) pDot11f->num_bytes = lim_compute_ext_cap_ie_length(pDot11f);