فهرست منبع

qcacmn: Add 11be phymodes support in WMI

Extend phymodes to support 11be phymodes in WMI layer.

Change-Id: I98e7f5eac90952ed7daf26745fc9731c128756e5
CRs-Fixed: 2881926
Venkateswara Swamy Bandaru 4 سال پیش
والد
کامیت
b390b57146
3فایلهای تغییر یافته به همراه97 افزوده شده و 3 حذف شده
  1. 74 1
      umac/cmn_services/inc/wlan_cmn.h
  2. 14 2
      wmi/inc/wmi_unified_param.h
  3. 9 0
      wmi/src/wmi_unified_api.c

+ 74 - 1
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) || \

+ 14 - 2
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<<v)-1)

+ 9 - 0
wmi/src/wmi_unified_api.c

@@ -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,