From 29817dce9489264492b1d48e40cce8a6a5bbd731 Mon Sep 17 00:00:00 2001 From: Shiva Krishna Pittala Date: Sat, 25 Sep 2021 13:02:38 +0530 Subject: [PATCH] qcacmn: Move REGDMN and wireless modes to reg_services_public_struct.h There is a requirement to use REGDMN and wireless modes in UMAC layer of the cmndev component. As the WMI_HOST_REGDMN modes currently are defined in WMI layer, we can't use them directly in the UMAC layer. Hence move them to the reg_services_public_struct.h and rename them as HOST_REGDMN modes. Replace all WMI_HOST_REGDMN instances with HOST_REGDMN. Wireless modes are currently defined in WIN component, use them to cmndev component. CRs-Fixed: 3044590 Change-Id: Iee5fa1745a1a44b834334746b10bdbb6f6563a0a --- target_if/dfs/src/target_if_dfs.c | 2 +- .../init_deinit/src/service_ready_util.c | 4 +- target_if/regulatory/src/target_if_reg.c | 4 +- .../inc/reg_services_public_struct.h | 355 ++++++++++++++++++ wmi/inc/wmi_unified_param.h | 92 +---- wmi/src/wmi_unified_tlv.c | 84 ++--- 6 files changed, 403 insertions(+), 138 deletions(-) diff --git a/target_if/dfs/src/target_if_dfs.c b/target_if/dfs/src/target_if_dfs.c index 9045e22730..dc1162d1c8 100644 --- a/target_if/dfs/src/target_if_dfs.c +++ b/target_if/dfs/src/target_if_dfs.c @@ -285,7 +285,7 @@ static QDF_STATUS target_if_dfs_is_pdev_5ghz(struct wlan_objmgr_pdev *pdev, } if (reg_cap_ptr[pdev_id].wireless_modes & - WMI_HOST_REGDMN_MODE_11A) + HOST_REGDMN_MODE_11A) *is_5ghz = true; else *is_5ghz = false; diff --git a/target_if/init_deinit/src/service_ready_util.c b/target_if/init_deinit/src/service_ready_util.c index 9aec012d0a..f58bb105b9 100644 --- a/target_if/init_deinit/src/service_ready_util.c +++ b/target_if/init_deinit/src/service_ready_util.c @@ -894,14 +894,14 @@ static bool init_deinit_regdmn_160mhz_support( struct wlan_psoc_host_hal_reg_capabilities_ext *hal_cap) { return ((hal_cap->wireless_modes & - WMI_HOST_REGDMN_MODE_11AC_VHT160) != 0); + HOST_REGDMN_MODE_11AC_VHT160) != 0); } static bool init_deinit_regdmn_80p80mhz_support( struct wlan_psoc_host_hal_reg_capabilities_ext *hal_cap) { return ((hal_cap->wireless_modes & - WMI_HOST_REGDMN_MODE_11AC_VHT80_80) != 0); + HOST_REGDMN_MODE_11AC_VHT80_80) != 0); } static bool init_deinit_vht_160mhz_is_supported(uint32_t vhtcap) diff --git a/target_if/regulatory/src/target_if_reg.c b/target_if/regulatory/src/target_if_reg.c index 5f5247fcd0..338fbd7bba 100644 --- a/target_if/regulatory/src/target_if_reg.c +++ b/target_if/regulatory/src/target_if_reg.c @@ -665,13 +665,13 @@ QDF_STATUS tgt_if_regulatory_modify_freq_range(struct wlan_objmgr_psoc *psoc) return QDF_STATUS_E_FAILURE; } - if (!(reg_cap->wireless_modes & WMI_HOST_REGDMN_MODE_11A)) { + if (!(reg_cap->wireless_modes & HOST_REGDMN_MODE_11A)) { reg_cap->low_5ghz_chan = 0; reg_cap->high_5ghz_chan = 0; } if (!(reg_cap->wireless_modes & - (WMI_HOST_REGDMN_MODE_11B | WMI_HOST_REGDMN_MODE_PUREG))) { + (HOST_REGDMN_MODE_11B | HOST_REGDMN_MODE_PUREG))) { reg_cap->low_2ghz_chan = 0; reg_cap->high_2ghz_chan = 0; } diff --git a/umac/regulatory/dispatcher/inc/reg_services_public_struct.h b/umac/regulatory/dispatcher/inc/reg_services_public_struct.h index 73f504b77c..98cd412f9c 100644 --- a/umac/regulatory/dispatcher/inc/reg_services_public_struct.h +++ b/umac/regulatory/dispatcher/inc/reg_services_public_struct.h @@ -1691,6 +1691,361 @@ struct chan_5g_center_freq { #endif +/** + * enum HOST_REGDMN_MODE: + * @HOST_REGDMN_MODE_11A: 11a channels + * @HOST_REGDMN_MODE_TURBO: 11a turbo-only channels + * @HOST_REGDMN_MODE_11B: 11b channels + * @HOST_REGDMN_MODE_PUREG: 11g channels (OFDM only) + * @HOST_REGDMN_MODE_11G: historical + * @HOST_REGDMN_MODE_108G: 11g+Turbo channels + * @HOST_REGDMN_MODE_108A: 11a+Turbo channels + * @HOST_REGDMN_MODE_11AC_VHT20_2G: 2GHz, VHT20 + * @HOST_REGDMN_MODE_XR: XR channels + * @HOST_REGDMN_MODE_11A_HALF_RATE: 11a half rate channels + * @HOST_REGDMN_MODE_11A_QUARTER_RATE: 11a quarter rate channels + * @HOST_REGDMN_MODE_11NG_HT20: 11ng HT20 channels + * @HOST_REGDMN_MODE_11NA_HT20: 11na HT20 channels + * @HOST_REGDMN_MODE_11NG_HT40PLUS: 11ng HT40+ channels + * @HOST_REGDMN_MODE_11NG_HT40MINUS: 11ng HT40- channels + * @HOST_REGDMN_MODE_11NA_HT40PLUS: 11na HT40+ channels + * @HOST_REGDMN_MODE_11NA_HT40MINUS: 11na HT40- channels + * @HOST_REGDMN_MODE_11AC_VHT20: 5GHz, VHT20 + * @HOST_REGDMN_MODE_11AC_VHT40PLUS: 5GHz, VHT40+ channels + * @HOST_REGDMN_MODE_11AC_VHT40MINUS: 5GHz, VHT40- channels + * @HOST_REGDMN_MODE_11AC_VHT80: 5GHz, VHT80 channels + * @HOST_REGDMN_MODE_11AC_VHT160: 5GHz, VHT160 channels + * @HOST_REGDMN_MODE_11AC_VHT80_80: 5GHz, VHT80+80 channels + * @HOST_REGDMN_MODE_11AXG_HE20: 11ax 2.4GHz, HE20 channels + * @HOST_REGDMN_MODE_11AXA_HE20: 11ax 5GHz, HE20 channels + * @HOST_REGDMN_MODE_11AXG_HE40PLUS: 11ax 2.4GHz, HE40+ channels + * @HOST_REGDMN_MODE_11AXG_HE40MINUS: 11ax 2.4GHz, HE40- channels + * @HOST_REGDMN_MODE_11AXA_HE40PLUS: 11ax 5GHz, HE40+ channels + * @HOST_REGDMN_MODE_11AXA_HE40MINUS: 11ax 5GHz, HE40- channels + * @HOST_REGDMN_MODE_11AXA_HE80: 11ax 5GHz, HE80 channels + * @HOST_REGDMN_MODE_11AXA_HE160: 11ax 5GHz, HE160 channels + * @HOST_REGDMN_MODE_11AXA_HE80_80: 11ax 5GHz, HE80+80 channels + * @HOST_REGDMN_MODE_11BEG_EHT20: 11be 2.4GHz, EHT20 channels + * @HOST_REGDMN_MODE_11BEA_EHT20: 11be 5GHz, EHT20 channels + * @HOST_REGDMN_MODE_11BEG_EHT40PLUS: 11be 2.4GHz, EHT40+ channels + * @HOST_REGDMN_MODE_11BEG_EHT40MINUS: 11be 2.4GHz, EHT40- channels + * @HOST_REGDMN_MODE_11BEA_EHT40PLUS: 11be 5GHz, EHT40+ channels + * @HOST_REGDMN_MODE_11BEA_EHT40MINUS: 11be 5GHz, EHT40- channels + * @HOST_REGDMN_MODE_11BEA_EHT80: 11be 5GHz, EHT80 channels + * @HOST_REGDMN_MODE_11BEA_EHT160: 11be 5GHz, EHT160 channels + * @HOST_REGDMN_MODE_11BEA_EHT320: 11be 5GHz, EHT320 channels + */ +enum { + HOST_REGDMN_MODE_11A = 0x00000001, + HOST_REGDMN_MODE_TURBO = 0x00000002, + HOST_REGDMN_MODE_11B = 0x00000004, + HOST_REGDMN_MODE_PUREG = 0x00000008, + HOST_REGDMN_MODE_11G = 0x00000008, + HOST_REGDMN_MODE_108G = 0x00000020, + HOST_REGDMN_MODE_108A = 0x00000040, + HOST_REGDMN_MODE_11AC_VHT20_2G = 0x00000080, + HOST_REGDMN_MODE_XR = 0x00000100, + HOST_REGDMN_MODE_11A_HALF_RATE = 0x00000200, + HOST_REGDMN_MODE_11A_QUARTER_RATE = 0x00000400, + HOST_REGDMN_MODE_11NG_HT20 = 0x00000800, + HOST_REGDMN_MODE_11NA_HT20 = 0x00001000, + HOST_REGDMN_MODE_11NG_HT40PLUS = 0x00002000, + HOST_REGDMN_MODE_11NG_HT40MINUS = 0x00004000, + HOST_REGDMN_MODE_11NA_HT40PLUS = 0x00008000, + HOST_REGDMN_MODE_11NA_HT40MINUS = 0x00010000, + HOST_REGDMN_MODE_11AC_VHT20 = 0x00020000, + HOST_REGDMN_MODE_11AC_VHT40PLUS = 0x00040000, + HOST_REGDMN_MODE_11AC_VHT40MINUS = 0x00080000, + HOST_REGDMN_MODE_11AC_VHT80 = 0x00100000, + HOST_REGDMN_MODE_11AC_VHT160 = 0x00200000, + HOST_REGDMN_MODE_11AC_VHT80_80 = 0x00400000, + HOST_REGDMN_MODE_11AXG_HE20 = 0x00800000, + HOST_REGDMN_MODE_11AXA_HE20 = 0x01000000, + HOST_REGDMN_MODE_11AXG_HE40PLUS = 0x02000000, + HOST_REGDMN_MODE_11AXG_HE40MINUS = 0x04000000, + HOST_REGDMN_MODE_11AXA_HE40PLUS = 0x08000000, + HOST_REGDMN_MODE_11AXA_HE40MINUS = 0x10000000, + HOST_REGDMN_MODE_11AXA_HE80 = 0x20000000, + HOST_REGDMN_MODE_11AXA_HE160 = 0x40000000, + HOST_REGDMN_MODE_11AXA_HE80_80 = 0x80000000, +#ifdef WLAN_FEATURE_11BE + HOST_REGDMN_MODE_11BEG_EHT20 = 0x0000000100000000, + HOST_REGDMN_MODE_11BEA_EHT20 = 0x0000000200000000, + HOST_REGDMN_MODE_11BEG_EHT40PLUS = 0x0000000400000000, + HOST_REGDMN_MODE_11BEG_EHT40MINUS = 0x0000000800000000, + HOST_REGDMN_MODE_11BEA_EHT40PLUS = 0x0000001000000000, + HOST_REGDMN_MODE_11BEA_EHT40MINUS = 0x0000002000000000, + HOST_REGDMN_MODE_11BEA_EHT80 = 0x0000004000000000, + HOST_REGDMN_MODE_11BEA_EHT160 = 0x0000008000000000, + HOST_REGDMN_MODE_11BEA_EHT320 = 0x0000010000000000, +#endif + HOST_REGDMN_MODE_ALL = 0xffffffffffffffff +}; + +#define WIRELESS_11AX_MODES (HOST_REGDMN_MODE_11AXG_HE20 \ + | HOST_REGDMN_MODE_11AXG_HE40PLUS \ + | HOST_REGDMN_MODE_11AXG_HE40MINUS \ + | HOST_REGDMN_MODE_11AXA_HE20 \ + | HOST_REGDMN_MODE_11AXA_HE40PLUS \ + | HOST_REGDMN_MODE_11AXA_HE40MINUS \ + | HOST_REGDMN_MODE_11AXA_HE80 \ + | HOST_REGDMN_MODE_11AXA_HE160 \ + | HOST_REGDMN_MODE_11AXA_HE80_80) + +#ifdef WLAN_FEATURE_11BE +#define WIRELESS_11BE_MODES (HOST_REGDMN_MODE_11BEG_EHT20 \ + | HOST_REGDMN_MODE_11BEA_EHT20 \ + | HOST_REGDMN_MODE_11BEG_EHT40PLUS \ + | HOST_REGDMN_MODE_11BEG_EHT40MINUS \ + | HOST_REGDMN_MODE_11BEA_EHT40PLUS \ + | HOST_REGDMN_MODE_11BEA_EHT40MINUS \ + | HOST_REGDMN_MODE_11BEA_EHT80 \ + | HOST_REGDMN_MODE_11BEA_EHT160 \ + | HOST_REGDMN_MODE_11BEA_EHT320) +#endif + +#define WIRELESS_11AC_MODES (HOST_REGDMN_MODE_11AC_VHT20 \ + | HOST_REGDMN_MODE_11AC_VHT40PLUS \ + | HOST_REGDMN_MODE_11AC_VHT40MINUS \ + | HOST_REGDMN_MODE_11AC_VHT80 \ + | HOST_REGDMN_MODE_11AC_VHT160 \ + | HOST_REGDMN_MODE_11AC_VHT80_80) + +#define WIRELESS_11N_MODES (HOST_REGDMN_MODE_11NG_HT20 \ + | HOST_REGDMN_MODE_11NA_HT20 \ + | HOST_REGDMN_MODE_11NG_HT40PLUS \ + | HOST_REGDMN_MODE_11NG_HT40MINUS \ + | HOST_REGDMN_MODE_11NA_HT40PLUS \ + | HOST_REGDMN_MODE_11NA_HT40MINUS) + +#define WIRELESS_11G_MODES (HOST_REGDMN_MODE_PUREG \ + | HOST_REGDMN_MODE_11G \ + | HOST_REGDMN_MODE_108G) + +#define WIRELESS_11B_MODES (HOST_REGDMN_MODE_11B) + +#define WIRELESS_11A_MODES (HOST_REGDMN_MODE_11A \ + | HOST_REGDMN_MODE_TURBO \ + | HOST_REGDMN_MODE_108A \ + | HOST_REGDMN_MODE_11A_HALF_RATE \ + | HOST_REGDMN_MODE_11A_QUARTER_RATE) + +#ifdef WLAN_FEATURE_11BE +#define WIRELESS_20_MODES (HOST_REGDMN_MODE_11A \ + | HOST_REGDMN_MODE_TURBO \ + | HOST_REGDMN_MODE_11B \ + | HOST_REGDMN_MODE_PUREG \ + | HOST_REGDMN_MODE_11G \ + | HOST_REGDMN_MODE_11AC_VHT20_2G \ + | HOST_REGDMN_MODE_11NG_HT20 \ + | HOST_REGDMN_MODE_11NA_HT20 \ + | HOST_REGDMN_MODE_11AC_VHT20 \ + | HOST_REGDMN_MODE_11AXG_HE20 \ + | HOST_REGDMN_MODE_11AXA_HE20 \ + | HOST_REGDMN_MODE_11BEA_EHT20 \ + | HOST_REGDMN_MODE_11BEG_EHT20) +#else +#define WIRELESS_20_MODES (HOST_REGDMN_MODE_11A \ + | HOST_REGDMN_MODE_TURBO \ + | HOST_REGDMN_MODE_11B \ + | HOST_REGDMN_MODE_PUREG \ + | HOST_REGDMN_MODE_11G \ + | HOST_REGDMN_MODE_11AC_VHT20_2G \ + | HOST_REGDMN_MODE_11NG_HT20 \ + | HOST_REGDMN_MODE_11NA_HT20 \ + | HOST_REGDMN_MODE_11AC_VHT20 \ + | HOST_REGDMN_MODE_11AXG_HE20 \ + | HOST_REGDMN_MODE_11AXA_HE20) +#endif + +#define WIRELESS_10_MODES (HOST_REGDMN_MODE_11A_HALF_RATE) +#define WIRELESS_5_MODES (HOST_REGDMN_MODE_11A_QUARTER_RATE) + +#ifdef WLAN_FEATURE_11BE +#define WIRELESS_40_MODES (HOST_REGDMN_MODE_11NG_HT40PLUS \ + | HOST_REGDMN_MODE_11NG_HT40MINUS \ + | HOST_REGDMN_MODE_11NA_HT40PLUS \ + | HOST_REGDMN_MODE_11NA_HT40MINUS \ + | HOST_REGDMN_MODE_11AC_VHT40PLUS \ + | HOST_REGDMN_MODE_11AC_VHT40MINUS \ + | HOST_REGDMN_MODE_11AXG_HE40PLUS \ + | HOST_REGDMN_MODE_11AXG_HE40MINUS \ + | HOST_REGDMN_MODE_11AXA_HE40PLUS \ + | HOST_REGDMN_MODE_11AXA_HE40MINUS \ + | HOST_REGDMN_MODE_11BEA_EHT40PLUS \ + | HOST_REGDMN_MODE_11BEA_EHT40MINUS \ + | HOST_REGDMN_MODE_11BEG_EHT40PLUS \ + | HOST_REGDMN_MODE_11BEG_EHT40MINUS) +#else +#define WIRELESS_40_MODES (HOST_REGDMN_MODE_11NG_HT40PLUS \ + | HOST_REGDMN_MODE_11NG_HT40MINUS \ + | HOST_REGDMN_MODE_11NA_HT40PLUS \ + | HOST_REGDMN_MODE_11NA_HT40MINUS \ + | HOST_REGDMN_MODE_11AC_VHT40PLUS \ + | HOST_REGDMN_MODE_11AC_VHT40MINUS \ + | HOST_REGDMN_MODE_11AXG_HE40PLUS \ + | HOST_REGDMN_MODE_11AXG_HE40MINUS \ + | HOST_REGDMN_MODE_11AXA_HE40PLUS \ + | HOST_REGDMN_MODE_11AXA_HE40MINUS) +#endif + +#ifdef WLAN_FEATURE_11BE +#define WIRELESS_80_MODES (HOST_REGDMN_MODE_11AC_VHT80 \ + | HOST_REGDMN_MODE_11AXA_HE80 \ + | HOST_REGDMN_MODE_11BEA_EHT80) +#else +#define WIRELESS_80_MODES (HOST_REGDMN_MODE_11AC_VHT80 \ + | HOST_REGDMN_MODE_11AXA_HE80) +#endif + +#ifdef WLAN_FEATURE_11BE +#define WIRELESS_160_MODES (HOST_REGDMN_MODE_11AC_VHT160 \ + | HOST_REGDMN_MODE_11AXA_HE160 \ + | HOST_REGDMN_MODE_11BEA_EHT160) +#else +#define WIRELESS_160_MODES (HOST_REGDMN_MODE_11AC_VHT160 \ + | HOST_REGDMN_MODE_11AXA_HE160) +#endif + +#define WIRELESS_80P80_MODES (HOST_REGDMN_MODE_11AC_VHT80_80 \ + | HOST_REGDMN_MODE_11AXA_HE80_80) + +#ifdef WLAN_FEATURE_11BE +#define WIRELESS_320_MODES (HOST_REGDMN_MODE_11BEA_EHT320) +#endif + +#ifdef WLAN_FEATURE_11BE +#define WIRELESS_6G_MODES_11BE (HOST_REGDMN_MODE_11BEA_EHT20 \ + | HOST_REGDMN_MODE_11BEA_EHT40PLUS \ + | HOST_REGDMN_MODE_11BEA_EHT40MINUS \ + | HOST_REGDMN_MODE_11BEA_EHT80 \ + | HOST_REGDMN_MODE_11BEA_EHT160 \ + | HOST_REGDMN_MODE_11BEA_EHT320) +#else +#define WIRELESS_6G_MODES_11BE 0 +#endif /* WLAN_FEATURE_11BE*/ + +#ifdef WLAN_FEATURE_11BE +#define WIRELESS_6G_MODES (HOST_REGDMN_MODE_11AXA_HE20 \ + | HOST_REGDMN_MODE_11AXA_HE40PLUS \ + | HOST_REGDMN_MODE_11AXA_HE40MINUS \ + | HOST_REGDMN_MODE_11AXA_HE80 \ + | HOST_REGDMN_MODE_11AXA_HE160 \ + | HOST_REGDMN_MODE_11AXA_HE80_80 \ + | HOST_REGDMN_MODE_11BEA_EHT20 \ + | HOST_REGDMN_MODE_11BEA_EHT40PLUS \ + | HOST_REGDMN_MODE_11BEA_EHT40MINUS \ + | HOST_REGDMN_MODE_11BEA_EHT80 \ + | HOST_REGDMN_MODE_11BEA_EHT160 \ + | HOST_REGDMN_MODE_11BEA_EHT320) +#else +#define WIRELESS_6G_MODES (HOST_REGDMN_MODE_11AXA_HE20 \ + | HOST_REGDMN_MODE_11AXA_HE40PLUS \ + | HOST_REGDMN_MODE_11AXA_HE40MINUS \ + | HOST_REGDMN_MODE_11AXA_HE80 \ + | HOST_REGDMN_MODE_11AXA_HE160 \ + | HOST_REGDMN_MODE_11AXA_HE80_80) +#endif + +#ifdef WLAN_FEATURE_11BE +#define WIRELESS_5G_MODES_11BE (HOST_REGDMN_MODE_11BEA_EHT20 \ + | HOST_REGDMN_MODE_11BEA_EHT40PLUS \ + | HOST_REGDMN_MODE_11BEA_EHT40MINUS \ + | HOST_REGDMN_MODE_11BEA_EHT80 \ + | HOST_REGDMN_MODE_11BEA_EHT160 \ + | HOST_REGDMN_MODE_11BEA_EHT320) +#else +#define WIRELESS_5G_MODES_11BE 0 +#endif /* WLAN_FEATURE_11BE*/ + +#ifdef WLAN_FEATURE_11BE +#define WIRELESS_5G_MODES (HOST_REGDMN_MODE_11BEA_EHT20 \ + | HOST_REGDMN_MODE_11BEA_EHT40PLUS \ + | HOST_REGDMN_MODE_11BEA_EHT40MINUS \ + | HOST_REGDMN_MODE_11BEA_EHT80 \ + | HOST_REGDMN_MODE_11BEA_EHT160 \ + | HOST_REGDMN_MODE_11BEA_EHT320 \ + | HOST_REGDMN_MODE_11AXA_HE20 \ + | HOST_REGDMN_MODE_11AXA_HE40PLUS \ + | HOST_REGDMN_MODE_11AXA_HE40MINUS \ + | HOST_REGDMN_MODE_11AXA_HE80 \ + | HOST_REGDMN_MODE_11AXA_HE160 \ + | HOST_REGDMN_MODE_11AXA_HE80_80 \ + | HOST_REGDMN_MODE_11AC_VHT20 \ + | HOST_REGDMN_MODE_11AC_VHT40PLUS \ + | HOST_REGDMN_MODE_11AC_VHT40MINUS \ + | HOST_REGDMN_MODE_11AC_VHT80 \ + | HOST_REGDMN_MODE_11AC_VHT160 \ + | HOST_REGDMN_MODE_11AC_VHT80_80 \ + | HOST_REGDMN_MODE_11NA_HT20 \ + | HOST_REGDMN_MODE_11NA_HT40PLUS \ + | HOST_REGDMN_MODE_11NA_HT40MINUS \ + | HOST_REGDMN_MODE_11A \ + | HOST_REGDMN_MODE_TURBO \ + | HOST_REGDMN_MODE_108A \ + | HOST_REGDMN_MODE_11A_HALF_RATE \ + | HOST_REGDMN_MODE_11A_QUARTER_RATE) +#else +#define WIRELESS_5G_MODES (HOST_REGDMN_MODE_11AXA_HE20 \ + | HOST_REGDMN_MODE_11AXA_HE40PLUS \ + | HOST_REGDMN_MODE_11AXA_HE40MINUS \ + | HOST_REGDMN_MODE_11AXA_HE80 \ + | HOST_REGDMN_MODE_11AXA_HE160 \ + | HOST_REGDMN_MODE_11AXA_HE80_80 \ + | HOST_REGDMN_MODE_11AC_VHT20 \ + | HOST_REGDMN_MODE_11AC_VHT40PLUS \ + | HOST_REGDMN_MODE_11AC_VHT40MINUS \ + | HOST_REGDMN_MODE_11AC_VHT80 \ + | HOST_REGDMN_MODE_11AC_VHT160 \ + | HOST_REGDMN_MODE_11AC_VHT80_80 \ + | HOST_REGDMN_MODE_11NA_HT20 \ + | HOST_REGDMN_MODE_11NA_HT40PLUS \ + | HOST_REGDMN_MODE_11NA_HT40MINUS \ + | HOST_REGDMN_MODE_11A \ + | HOST_REGDMN_MODE_TURBO \ + | HOST_REGDMN_MODE_108A \ + | HOST_REGDMN_MODE_11A_HALF_RATE \ + | HOST_REGDMN_MODE_11A_QUARTER_RATE) +#endif + +#define WIRELESS_49G_MODES (HOST_REGDMN_MODE_11A \ + | HOST_REGDMN_MODE_11A_HALF_RATE \ + | HOST_REGDMN_MODE_11A_QUARTER_RATE) +#ifdef WLAN_FEATURE_11BE +#define WIRELESS_2G_MODES_11BE (HOST_REGDMN_MODE_11BEG_EHT20 \ + | HOST_REGDMN_MODE_11BEG_EHT40PLUS \ + | HOST_REGDMN_MODE_11BEG_EHT40MINUS) +#else +#define WIRELESS_2G_MODES_11BE 0 +#endif /* WLAN_FEATURE_11BE*/ + +#ifdef WLAN_FEATURE_11BE +#define WIRELESS_2G_MODES (HOST_REGDMN_MODE_11BEG_EHT20 \ + | HOST_REGDMN_MODE_11BEG_EHT40PLUS \ + | HOST_REGDMN_MODE_11BEG_EHT40MINUS \ + | HOST_REGDMN_MODE_11AXG_HE20 \ + | HOST_REGDMN_MODE_11AXG_HE40PLUS \ + | HOST_REGDMN_MODE_11AXG_HE40MINUS \ + | HOST_REGDMN_MODE_11NG_HT20 \ + | HOST_REGDMN_MODE_11NG_HT40PLUS \ + | HOST_REGDMN_MODE_11NG_HT40MINUS \ + | HOST_REGDMN_MODE_PUREG \ + | HOST_REGDMN_MODE_11G \ + | HOST_REGDMN_MODE_108G \ + | HOST_REGDMN_MODE_11B) +#else +#define WIRELESS_2G_MODES (HOST_REGDMN_MODE_11AXG_HE20 \ + | HOST_REGDMN_MODE_11AXG_HE40PLUS \ + | HOST_REGDMN_MODE_11AXG_HE40MINUS \ + | HOST_REGDMN_MODE_11NG_HT20 \ + | HOST_REGDMN_MODE_11NG_HT40PLUS \ + | HOST_REGDMN_MODE_11NG_HT40MINUS \ + | HOST_REGDMN_MODE_PUREG \ + | HOST_REGDMN_MODE_11G \ + | HOST_REGDMN_MODE_108G \ + | HOST_REGDMN_MODE_11B) +#endif + #ifdef CONFIG_AFC_SUPPORT /* enum reg_afc_cmd_type - Type of AFC command sent to FW * @REG_AFC_CMD_SERV_RESP_READY : Server response is ready diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index 3435bf17a2..f1d68876d9 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/wmi/inc/wmi_unified_param.h @@ -33,6 +33,7 @@ #endif /* WLAN_CONV_SPECTRAL_ENABLE */ #include #include +#include #define MAC_MAX_KEY_LENGTH 32 #define MAC_PN_LENGTH 8 @@ -520,97 +521,6 @@ typedef struct { uint32_t reg_info_2; } wmi_host_channel; -/** - * enum WMI_HOST_REGDMN_MODE: - * @WMI_HOST_REGDMN_MODE_11A: 11a channels - * @WMI_HOST_REGDMN_MODE_TURBO: 11a turbo-only channels - * @WMI_HOST_REGDMN_MODE_11B: 11b channels - * @WMI_HOST_REGDMN_MODE_PUREG: 11g channels (OFDM only) - * @WMI_HOST_REGDMN_MODE_11G: historical - * @WMI_HOST_REGDMN_MODE_108G: 11g+Turbo channels - * @WMI_HOST_REGDMN_MODE_108A: 11a+Turbo channels - * @WMI_HOST_REGDMN_MODE_11AC_VHT20_2G: 2GHz, VHT20 - * @WMI_HOST_REGDMN_MODE_XR: XR channels - * @WMI_HOST_REGDMN_MODE_11A_HALF_RATE: 11a half rate channels - * @WMI_HOST_REGDMN_MODE_11A_QUARTER_RATE: 11a quarter rate channels - * @WMI_HOST_REGDMN_MODE_11NG_HT20: 11ng HT20 channels - * @WMI_HOST_REGDMN_MODE_11NA_HT20: 11na HT20 channels - * @WMI_HOST_REGDMN_MODE_11NG_HT40PLUS: 11ng HT40+ channels - * @WMI_HOST_REGDMN_MODE_11NG_HT40MINUS: 11ng HT40- channels - * @WMI_HOST_REGDMN_MODE_11NA_HT40PLUS: 11na HT40+ channels - * @WMI_HOST_REGDMN_MODE_11NA_HT40MINUS: 11na HT40- channels - * @WMI_HOST_REGDMN_MODE_11AC_VHT20: 5GHz, VHT20 - * @WMI_HOST_REGDMN_MODE_11AC_VHT40PLUS: 5GHz, VHT40+ channels - * @WMI_HOST_REGDMN_MODE_11AC_VHT40MINUS: 5GHz, VHT40- channels - * @WMI_HOST_REGDMN_MODE_11AC_VHT80: 5GHz, VHT80 channels - * @WMI_HOST_REGDMN_MODE_11AC_VHT160: 5GHz, VHT160 channels - * @WMI_HOST_REGDMN_MODE_11AC_VHT80_80: 5GHz, VHT80+80 channels - * @WMI_HOST_REGDMN_MODE_11AXG_HE20: 11ax 2.4GHz, HE20 channels - * @WMI_HOST_REGDMN_MODE_11AXA_HE20: 11ax 5GHz, HE20 channels - * @WMI_HOST_REGDMN_MODE_11AXG_HE40PLUS: 11ax 2.4GHz, HE40+ channels - * @WMI_HOST_REGDMN_MODE_11AXG_HE40MINUS: 11ax 2.4GHz, HE40- channels - * @WMI_HOST_REGDMN_MODE_11AXA_HE40PLUS: 11ax 5GHz, HE40+ channels - * @WMI_HOST_REGDMN_MODE_11AXA_HE40MINUS: 11ax 5GHz, HE40- channels - * @WMI_HOST_REGDMN_MODE_11AXA_HE80: 11ax 5GHz, HE80 channels - * @WMI_HOST_REGDMN_MODE_11AXA_HE160: 11ax 5GHz, HE160 channels - * @WMI_HOST_REGDMN_MODE_11AXA_HE80_80: 11ax 5GHz, HE80+80 channels - * @WMI_HOST_REGDMN_MODE_11BEG_EHT20: 11be 2GHz, EHT20 channels - * @WMI_HOST_REGDMN_MODE_11BEA_EHT20: 11be 5GHz, EHT20 channels - * @WMI_HOST_REGDMN_MODE_11BEG_EHT40PLUS: 11be 2GHz, EHT40+ channels - * @WMI_HOST_REGDMN_MODE_11BEG_EHT40MINUS: 11be 2GHz, EHT40- channels - * @WMI_HOST_REGDMN_MODE_11BEA_EHT40PLUS: 11be 5GHz, EHT40+ channels - * @WMI_HOST_REGDMN_MODE_11BEA_EHT40MINUS: 11be 5GHz, EHT40- channels - * @WMI_HOST_REGDMN_MODE_11BEA_EHT80: 11be 5GHz, EHT80 channels - * @WMI_HOST_REGDMN_MODE_11BEA_EHT160: 11be 5GHz, EHT160 channels - * @WMI_HOST_REGDMN_MODE_11BEA_EHT320: 11be 5GHz, EHT320 channels - */ -typedef enum { - WMI_HOST_REGDMN_MODE_11A = 0x00000001, - WMI_HOST_REGDMN_MODE_TURBO = 0x00000002, - WMI_HOST_REGDMN_MODE_11B = 0x00000004, - WMI_HOST_REGDMN_MODE_PUREG = 0x00000008, - WMI_HOST_REGDMN_MODE_11G = 0x00000008, - WMI_HOST_REGDMN_MODE_108G = 0x00000020, - WMI_HOST_REGDMN_MODE_108A = 0x00000040, - WMI_HOST_REGDMN_MODE_11AC_VHT20_2G = 0x00000080, - WMI_HOST_REGDMN_MODE_XR = 0x00000100, - WMI_HOST_REGDMN_MODE_11A_HALF_RATE = 0x00000200, - WMI_HOST_REGDMN_MODE_11A_QUARTER_RATE = 0x00000400, - WMI_HOST_REGDMN_MODE_11NG_HT20 = 0x00000800, - WMI_HOST_REGDMN_MODE_11NA_HT20 = 0x00001000, - WMI_HOST_REGDMN_MODE_11NG_HT40PLUS = 0x00002000, - WMI_HOST_REGDMN_MODE_11NG_HT40MINUS = 0x00004000, - WMI_HOST_REGDMN_MODE_11NA_HT40PLUS = 0x00008000, - WMI_HOST_REGDMN_MODE_11NA_HT40MINUS = 0x00010000, - WMI_HOST_REGDMN_MODE_11AC_VHT20 = 0x00020000, - WMI_HOST_REGDMN_MODE_11AC_VHT40PLUS = 0x00040000, - WMI_HOST_REGDMN_MODE_11AC_VHT40MINUS = 0x00080000, - WMI_HOST_REGDMN_MODE_11AC_VHT80 = 0x00100000, - WMI_HOST_REGDMN_MODE_11AC_VHT160 = 0x00200000, - WMI_HOST_REGDMN_MODE_11AC_VHT80_80 = 0x00400000, - WMI_HOST_REGDMN_MODE_11AXG_HE20 = 0x00800000, - WMI_HOST_REGDMN_MODE_11AXA_HE20 = 0x01000000, - WMI_HOST_REGDMN_MODE_11AXG_HE40PLUS = 0x02000000, - WMI_HOST_REGDMN_MODE_11AXG_HE40MINUS = 0x04000000, - WMI_HOST_REGDMN_MODE_11AXA_HE40PLUS = 0x08000000, - WMI_HOST_REGDMN_MODE_11AXA_HE40MINUS = 0x10000000, - WMI_HOST_REGDMN_MODE_11AXA_HE80 = 0x20000000, - WMI_HOST_REGDMN_MODE_11AXA_HE160 = 0x40000000, - WMI_HOST_REGDMN_MODE_11AXA_HE80_80 = 0x80000000, -#ifdef WLAN_FEATURE_11BE - WMI_HOST_REGDMN_MODE_11BEG_EHT20 = 0x0000000100000000, - WMI_HOST_REGDMN_MODE_11BEA_EHT20 = 0x0000000200000000, - WMI_HOST_REGDMN_MODE_11BEG_EHT40PLUS = 0x0000000400000000, - WMI_HOST_REGDMN_MODE_11BEG_EHT40MINUS = 0x0000000800000000, - WMI_HOST_REGDMN_MODE_11BEA_EHT40PLUS = 0x0000001000000000, - WMI_HOST_REGDMN_MODE_11BEA_EHT40MINUS = 0x0000002000000000, - WMI_HOST_REGDMN_MODE_11BEA_EHT80 = 0x0000004000000000, - WMI_HOST_REGDMN_MODE_11BEA_EHT160 = 0x0000008000000000, - WMI_HOST_REGDMN_MODE_11BEA_EHT320 = 0x0000010000000000, -#endif - WMI_HOST_REGDMN_MODE_ALL = 0xffffffffffffffff -} WMI_HOST_REGDMN_MODE; - /** * enum WMI_HOST_WLAN_BAND_CAPABILITY: Band capability (2.4 GHz, 5 GHz). Maps to * WLAN_BAND_CAPABILITY used in firmware header file(s). diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 3c3cd9fa45..e7709f11b3 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -10002,7 +10002,7 @@ static QDF_STATUS extract_service_ready_tlv(wmi_unified_t wmi_handle, } /* convert_wireless_modes_tlv() - Convert REGDMN_MODE values sent by target - * to host internal WMI_HOST_REGDMN_MODE values. + * to host internal HOST_REGDMN_MODE values. * REGULATORY TODO : REGDMN_MODE_11AC_VHT*_2G values are not used by the * host currently. Add this in the future if required. * 11AX (Phase II) : 11ax related values are not currently @@ -10020,73 +10020,73 @@ static inline uint32_t convert_wireless_modes_tlv(uint32_t target_wireless_mode) wmi_debug("Target wireless mode: 0x%x", target_wireless_mode); if (target_wireless_mode & REGDMN_MODE_11A) - wireless_modes |= WMI_HOST_REGDMN_MODE_11A; + wireless_modes |= HOST_REGDMN_MODE_11A; if (target_wireless_mode & REGDMN_MODE_TURBO) - wireless_modes |= WMI_HOST_REGDMN_MODE_TURBO; + wireless_modes |= HOST_REGDMN_MODE_TURBO; if (target_wireless_mode & REGDMN_MODE_11B) - wireless_modes |= WMI_HOST_REGDMN_MODE_11B; + wireless_modes |= HOST_REGDMN_MODE_11B; if (target_wireless_mode & REGDMN_MODE_PUREG) - wireless_modes |= WMI_HOST_REGDMN_MODE_PUREG; + wireless_modes |= HOST_REGDMN_MODE_PUREG; if (target_wireless_mode & REGDMN_MODE_11G) - wireless_modes |= WMI_HOST_REGDMN_MODE_11G; + wireless_modes |= HOST_REGDMN_MODE_11G; if (target_wireless_mode & REGDMN_MODE_108G) - wireless_modes |= WMI_HOST_REGDMN_MODE_108G; + wireless_modes |= HOST_REGDMN_MODE_108G; if (target_wireless_mode & REGDMN_MODE_108A) - wireless_modes |= WMI_HOST_REGDMN_MODE_108A; + wireless_modes |= HOST_REGDMN_MODE_108A; if (target_wireless_mode & REGDMN_MODE_11AC_VHT20_2G) - wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT20_2G; + wireless_modes |= HOST_REGDMN_MODE_11AC_VHT20_2G; if (target_wireless_mode & REGDMN_MODE_XR) - wireless_modes |= WMI_HOST_REGDMN_MODE_XR; + wireless_modes |= HOST_REGDMN_MODE_XR; if (target_wireless_mode & REGDMN_MODE_11A_HALF_RATE) - wireless_modes |= WMI_HOST_REGDMN_MODE_11A_HALF_RATE; + wireless_modes |= HOST_REGDMN_MODE_11A_HALF_RATE; if (target_wireless_mode & REGDMN_MODE_11A_QUARTER_RATE) - wireless_modes |= WMI_HOST_REGDMN_MODE_11A_QUARTER_RATE; + wireless_modes |= HOST_REGDMN_MODE_11A_QUARTER_RATE; if (target_wireless_mode & REGDMN_MODE_11NG_HT20) - wireless_modes |= WMI_HOST_REGDMN_MODE_11NG_HT20; + wireless_modes |= HOST_REGDMN_MODE_11NG_HT20; if (target_wireless_mode & REGDMN_MODE_11NA_HT20) - wireless_modes |= WMI_HOST_REGDMN_MODE_11NA_HT20; + wireless_modes |= HOST_REGDMN_MODE_11NA_HT20; if (target_wireless_mode & REGDMN_MODE_11NG_HT40PLUS) - wireless_modes |= WMI_HOST_REGDMN_MODE_11NG_HT40PLUS; + wireless_modes |= HOST_REGDMN_MODE_11NG_HT40PLUS; if (target_wireless_mode & REGDMN_MODE_11NG_HT40MINUS) - wireless_modes |= WMI_HOST_REGDMN_MODE_11NG_HT40MINUS; + wireless_modes |= HOST_REGDMN_MODE_11NG_HT40MINUS; if (target_wireless_mode & REGDMN_MODE_11NA_HT40PLUS) - wireless_modes |= WMI_HOST_REGDMN_MODE_11NA_HT40PLUS; + wireless_modes |= HOST_REGDMN_MODE_11NA_HT40PLUS; if (target_wireless_mode & REGDMN_MODE_11NA_HT40MINUS) - wireless_modes |= WMI_HOST_REGDMN_MODE_11NA_HT40MINUS; + wireless_modes |= HOST_REGDMN_MODE_11NA_HT40MINUS; if (target_wireless_mode & REGDMN_MODE_11AC_VHT20) - wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT20; + wireless_modes |= HOST_REGDMN_MODE_11AC_VHT20; if (target_wireless_mode & REGDMN_MODE_11AC_VHT40PLUS) - wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT40PLUS; + wireless_modes |= HOST_REGDMN_MODE_11AC_VHT40PLUS; if (target_wireless_mode & REGDMN_MODE_11AC_VHT40MINUS) - wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT40MINUS; + wireless_modes |= HOST_REGDMN_MODE_11AC_VHT40MINUS; if (target_wireless_mode & REGDMN_MODE_11AC_VHT80) - wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT80; + wireless_modes |= HOST_REGDMN_MODE_11AC_VHT80; if (target_wireless_mode & REGDMN_MODE_11AC_VHT160) - wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT160; + wireless_modes |= HOST_REGDMN_MODE_11AC_VHT160; if (target_wireless_mode & REGDMN_MODE_11AC_VHT80_80) - wireless_modes |= WMI_HOST_REGDMN_MODE_11AC_VHT80_80; + wireless_modes |= HOST_REGDMN_MODE_11AC_VHT80_80; return wireless_modes; } @@ -10164,31 +10164,31 @@ static void convert_11be_flags_to_modes_ext(uint32_t target_wireless_modes_ext, uint64_t *wireless_modes_ext) { if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEG_EHT20) - *wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEG_EHT20; + *wireless_modes_ext |= HOST_REGDMN_MODE_11BEG_EHT20; if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEG_EHT40PLUS) - *wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEG_EHT40PLUS; + *wireless_modes_ext |= HOST_REGDMN_MODE_11BEG_EHT40PLUS; if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEG_EHT40MINUS) - *wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEG_EHT40MINUS; + *wireless_modes_ext |= HOST_REGDMN_MODE_11BEG_EHT40MINUS; if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEA_EHT20) - *wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEA_EHT20; + *wireless_modes_ext |= HOST_REGDMN_MODE_11BEA_EHT20; if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEA_EHT40PLUS) - *wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEA_EHT40PLUS; + *wireless_modes_ext |= HOST_REGDMN_MODE_11BEA_EHT40PLUS; if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEA_EHT40MINUS) - *wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEA_EHT40MINUS; + *wireless_modes_ext |= HOST_REGDMN_MODE_11BEA_EHT40MINUS; if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEA_EHT80) - *wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEA_EHT80; + *wireless_modes_ext |= HOST_REGDMN_MODE_11BEA_EHT80; if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEA_EHT160) - *wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEA_EHT160; + *wireless_modes_ext |= HOST_REGDMN_MODE_11BEA_EHT160; if (target_wireless_modes_ext & REGDMN_MODE_U32_11BEA_EHT320) - *wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11BEA_EHT320; + *wireless_modes_ext |= HOST_REGDMN_MODE_11BEA_EHT320; } #else static void convert_11be_flags_to_modes_ext(uint32_t target_wireless_modes_ext, @@ -10205,31 +10205,31 @@ static inline uint64_t convert_wireless_modes_ext_tlv( wmi_debug("Target wireless mode: 0x%x", target_wireless_modes_ext); if (target_wireless_modes_ext & REGDMN_MODE_U32_11AXG_HE20) - wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11AXG_HE20; + wireless_modes_ext |= HOST_REGDMN_MODE_11AXG_HE20; if (target_wireless_modes_ext & REGDMN_MODE_U32_11AXG_HE40PLUS) - wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11AXG_HE40PLUS; + wireless_modes_ext |= HOST_REGDMN_MODE_11AXG_HE40PLUS; if (target_wireless_modes_ext & REGDMN_MODE_U32_11AXG_HE40MINUS) - wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11AXG_HE40MINUS; + wireless_modes_ext |= HOST_REGDMN_MODE_11AXG_HE40MINUS; if (target_wireless_modes_ext & REGDMN_MODE_U32_11AXA_HE20) - wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11AXA_HE20; + wireless_modes_ext |= HOST_REGDMN_MODE_11AXA_HE20; if (target_wireless_modes_ext & REGDMN_MODE_U32_11AXA_HE40PLUS) - wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11AXA_HE40PLUS; + wireless_modes_ext |= HOST_REGDMN_MODE_11AXA_HE40PLUS; if (target_wireless_modes_ext & REGDMN_MODE_U32_11AXA_HE40MINUS) - wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11AXA_HE40MINUS; + wireless_modes_ext |= HOST_REGDMN_MODE_11AXA_HE40MINUS; if (target_wireless_modes_ext & REGDMN_MODE_U32_11AXA_HE80) - wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11AXA_HE80; + wireless_modes_ext |= HOST_REGDMN_MODE_11AXA_HE80; if (target_wireless_modes_ext & REGDMN_MODE_U32_11AXA_HE160) - wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11AXA_HE160; + wireless_modes_ext |= HOST_REGDMN_MODE_11AXA_HE160; if (target_wireless_modes_ext & REGDMN_MODE_U32_11AXA_HE80_80) - wireless_modes_ext |= WMI_HOST_REGDMN_MODE_11AXA_HE80_80; + wireless_modes_ext |= HOST_REGDMN_MODE_11AXA_HE80_80; convert_11be_flags_to_modes_ext(target_wireless_modes_ext, &wireless_modes_ext);