From b390b5714626410cb39f9e238ce86b5f06dfe08e Mon Sep 17 00:00:00 2001 From: Venkateswara Swamy Bandaru Date: Fri, 19 Feb 2021 20:32:07 +0530 Subject: [PATCH] qcacmn: Add 11be phymodes support in WMI Extend phymodes to support 11be phymodes in WMI layer. Change-Id: I98e7f5eac90952ed7daf26745fc9731c128756e5 CRs-Fixed: 2881926 --- umac/cmn_services/inc/wlan_cmn.h | 75 +++++++++++++++++++++++++++++++- wmi/inc/wmi_unified_param.h | 16 ++++++- wmi/src/wmi_unified_api.c | 9 ++++ 3 files changed, 97 insertions(+), 3 deletions(-) diff --git a/umac/cmn_services/inc/wlan_cmn.h b/umac/cmn_services/inc/wlan_cmn.h index dbb837dd52..c0e4cd0212 100644 --- a/umac/cmn_services/inc/wlan_cmn.h +++ b/umac/cmn_services/inc/wlan_cmn.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2021 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 @@ -375,6 +375,16 @@ typedef enum { * @WLAN_PHYMODE_11AXG_HE80: 2GHz, HE80 * @WLAN_PHYMODE_11AXA_HE160: 5GHz, HE160 * @WLAN_PHYMODE_11AXA_HE80_80: 5GHz, HE80_80 + * @WLAN_PHYMODE_11BEA_EHT20: 5GHz, EHT20 + * @WLAN_PHYMODE_11BEG_EHT20: 2GHz, EHT20 + * @WLAN_PHYMODE_11BEA_EHT40: 5GHz, EHT40 + * @WLAN_PHYMODE_11BEG_EHT40PLUS: 2GHz, EHT40 (ext ch +1) + * @WLAN_PHYMODE_11BEG_EHT40MINUS:2GHz, EHT40 (ext ch -1) + * @WLAN_PHYMODE_11BEG_EHT40: 2GHz, EHT40 + * @WLAN_PHYMODE_11BEA_EHT80: 5GHz, EHT80 + * @WLAN_PHYMODE_11BEG_EHT80: 2GHz, EHT80 + * @WLAN_PHYMODE_11BEA_EHT160: 5GHz, EHT160 + * @WLAN_PHYMODE_11BEA_EHT320: 5GHz, EHT320 * @WLAN_PHYMODE_MAX: Max phymode */ enum wlan_phymode { @@ -409,9 +419,71 @@ enum wlan_phymode { WLAN_PHYMODE_11AXG_HE80 = 28, WLAN_PHYMODE_11AXA_HE160 = 29, WLAN_PHYMODE_11AXA_HE80_80 = 30, +#ifdef WLAN_FEATURE_11BE + WLAN_PHYMODE_11BEA_EHT20 = 31, + WLAN_PHYMODE_11BEG_EHT20 = 32, + WLAN_PHYMODE_11BEA_EHT40 = 33, + WLAN_PHYMODE_11BEG_EHT40PLUS = 34, + WLAN_PHYMODE_11BEG_EHT40MINUS = 35, + WLAN_PHYMODE_11BEG_EHT40 = 36, + WLAN_PHYMODE_11BEA_EHT80 = 37, + WLAN_PHYMODE_11BEG_EHT80 = 38, + WLAN_PHYMODE_11BEA_EHT160 = 39, + WLAN_PHYMODE_11BEA_EHT320 = 40, +#endif WLAN_PHYMODE_MAX }; +#ifdef WLAN_FEATURE_11BE +#define IS_WLAN_PHYMODE_320MHZ(_mode) ({typeof(_mode) mode = (_mode); \ + ((mode) == WLAN_PHYMODE_11BEA_EHT320); }) + +#define IS_WLAN_PHYMODE_160MHZ(_mode) ({typeof(_mode) mode = (_mode); \ + ((mode) == WLAN_PHYMODE_11BEA_EHT160) || \ + ((mode) == WLAN_PHYMODE_11AC_VHT80_80) || \ + ((mode) == WLAN_PHYMODE_11AC_VHT160) || \ + ((mode) == WLAN_PHYMODE_11AXA_HE80_80) || \ + ((mode) == WLAN_PHYMODE_11AXA_HE160); }) + +#define IS_WLAN_PHYMODE_80MHZ(_mode) ({typeof(_mode) mode = (_mode); \ + ((mode) == WLAN_PHYMODE_11BEA_EHT80) || \ + ((mode) == WLAN_PHYMODE_11AC_VHT80) || \ + ((mode) == WLAN_PHYMODE_11AC_VHT80_2G) || \ + ((mode) == WLAN_PHYMODE_11AXA_HE80) || \ + ((mode) == WLAN_PHYMODE_11AXG_HE80); }) + +#define IS_WLAN_PHYMODE_40MHZ(_mode) ({typeof(_mode) mode = (_mode); \ + ((mode) == WLAN_PHYMODE_11NG_HT40) || \ + ((mode) == WLAN_PHYMODE_11NG_HT40PLUS) || \ + ((mode) == WLAN_PHYMODE_11NG_HT40MINUS) || \ + ((mode) == WLAN_PHYMODE_11NA_HT40) || \ + ((mode) == WLAN_PHYMODE_11AC_VHT40) || \ + ((mode) == WLAN_PHYMODE_11AC_VHT40_2G) || \ + ((mode) == WLAN_PHYMODE_11AC_VHT40PLUS_2G) || \ + ((mode) == WLAN_PHYMODE_11AC_VHT40MINUS_2G) || \ + ((mode) == WLAN_PHYMODE_11BEA_EHT40) || \ + ((mode) == WLAN_PHYMODE_11BEG_EHT40) || \ + ((mode) == WLAN_PHYMODE_11BEG_EHT40PLUS) || \ + ((mode) == WLAN_PHYMODE_11BEG_EHT40MINUS) || \ + ((mode) == WLAN_PHYMODE_11AXA_HE40) || \ + ((mode) == WLAN_PHYMODE_11AXG_HE40) || \ + ((mode) == WLAN_PHYMODE_11AXG_HE40PLUS) || \ + ((mode) == WLAN_PHYMODE_11AXG_HE40MINUS); }) + +#define IS_WLAN_PHYMODE_EHT(_mode) ({typeof(_mode) mode = (_mode); \ + ((mode) == WLAN_PHYMODE_11BEA_EHT20) || \ + ((mode) == WLAN_PHYMODE_11BEG_EHT20) || \ + ((mode) == WLAN_PHYMODE_11BEA_EHT40) || \ + ((mode) == WLAN_PHYMODE_11BEG_EHT40) || \ + ((mode) == WLAN_PHYMODE_11BEG_EHT40PLUS) || \ + ((mode) == WLAN_PHYMODE_11BEG_EHT40MINUS) || \ + ((mode) == WLAN_PHYMODE_11BEA_EHT80) || \ + ((mode) == WLAN_PHYMODE_11BEG_EHT80) || \ + ((mode) == WLAN_PHYMODE_11BEA_EHT160) || \ + ((mode) == WLAN_PHYMODE_11BEA_EHT320); }) + +#else + #define IS_WLAN_PHYMODE_160MHZ(_mode) ({typeof(_mode) mode = (_mode); \ ((mode) == WLAN_PHYMODE_11AC_VHT80_80) || \ ((mode) == WLAN_PHYMODE_11AC_VHT160) || \ @@ -437,6 +509,7 @@ enum wlan_phymode { ((mode) == WLAN_PHYMODE_11AXG_HE40) || \ ((mode) == WLAN_PHYMODE_11AXG_HE40PLUS) || \ ((mode) == WLAN_PHYMODE_11AXG_HE40MINUS); }) +#endif #define IS_WLAN_PHYMODE_HT(_mode) ({typeof(_mode) mode = (_mode); \ ((mode) == WLAN_PHYMODE_11NA_HT20) || \ diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index 159bfe24e0..06f36d8367 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/wmi/inc/wmi_unified_param.h @@ -485,8 +485,17 @@ typedef enum { WMI_HOST_MODE_11AX_HE20_2G = 21, WMI_HOST_MODE_11AX_HE40_2G = 22, WMI_HOST_MODE_11AX_HE80_2G = 23, - WMI_HOST_MODE_UNKNOWN = 24, - WMI_HOST_MODE_MAX = 24 +#ifdef WLAN_FEATURE_11BE + WMI_HOST_MODE_11BE_EHT20 = 24, + WMI_HOST_MODE_11BE_EHT40 = 25, + WMI_HOST_MODE_11BE_EHT80 = 26, + WMI_HOST_MODE_11BE_EHT160 = 28, + WMI_HOST_MODE_11BE_EHT320 = 30, + WMI_HOST_MODE_11BE_EHT20_2G = 31, + WMI_HOST_MODE_11BE_EHT40_2G = 32, +#endif + WMI_HOST_MODE_UNKNOWN, + WMI_HOST_MODE_MAX = WMI_HOST_MODE_UNKNOWN, } WMI_HOST_WLAN_PHY_MODE; /* @@ -611,6 +620,9 @@ typedef enum { WMI_HOST_CHAN_WIDTH_5 = 5, WMI_HOST_CHAN_WIDTH_10 = 6, WMI_HOST_CHAN_WIDTH_165 = 7, +#ifdef WLAN_FEATURE_11BE + WMI_HOST_CHAN_WIDTH_320 = 8, +#endif } wmi_host_channel_width; #define ATH_EXPONENT_TO_VALUE(v) ((1<