qcacmn: Add 11be phymodes support in WMI

Extend phymodes to support 11be phymodes in WMI layer.

Change-Id: I98e7f5eac90952ed7daf26745fc9731c128756e5
CRs-Fixed: 2881926
Tento commit je obsažen v:
Venkateswara Swamy Bandaru
2021-02-19 20:32:07 +05:30
odevzdal snandini
rodič da069e5990
revize b390b57146
3 změnil soubory, kde provedl 97 přidání a 3 odebrání

Zobrazit soubor

@@ -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) || \

Zobrazit soubor

@@ -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<<v)-1)

Zobrazit soubor

@@ -52,6 +52,15 @@ static const wmi_host_channel_width mode_to_width[WMI_HOST_MODE_MAX] = {
[WMI_HOST_MODE_11AX_HE40_2G] = WMI_HOST_CHAN_WIDTH_40,
[WMI_HOST_MODE_11AX_HE80_2G] = WMI_HOST_CHAN_WIDTH_80,
#endif
#ifdef WLAN_FEATURE_11BE
[WMI_HOST_MODE_11BE_EHT20] = WMI_HOST_CHAN_WIDTH_20,
[WMI_HOST_MODE_11BE_EHT40] = WMI_HOST_CHAN_WIDTH_40,
[WMI_HOST_MODE_11BE_EHT80] = WMI_HOST_CHAN_WIDTH_80,
[WMI_HOST_MODE_11BE_EHT320] = WMI_HOST_CHAN_WIDTH_320,
[WMI_HOST_MODE_11BE_EHT160] = WMI_HOST_CHAN_WIDTH_160,
[WMI_HOST_MODE_11BE_EHT20_2G] = WMI_HOST_CHAN_WIDTH_20,
[WMI_HOST_MODE_11BE_EHT40_2G] = WMI_HOST_CHAN_WIDTH_40,
#endif
};
QDF_STATUS wmi_unified_soc_set_hw_mode_cmd(wmi_unified_t wmi_handle,