Browse Source

qcacmn: Update Regulatory Database to 36th version

Add below changes as part of 36th Reg DB version
a.) Update FCC1_CLI_LPI_REGULAR_6G to FCC1_CLI_LPI_DEFAULT_6G.
b.) Add sub 6g domains APL3_AP_VLP_6G and APL3_AP_LPI_6G and
    reg rules for new domains.
c.) Add superdomain FCC1_6G_07 and APL3_6G_08 for Brazil and UAE

Change-Id: I2d379762f9d5953c47c88e08511fe227ea25ce85
CRs-Fixed: 3057765
sheenam monga 3 years ago
parent
commit
00cb0d5ed0
2 changed files with 38 additions and 7 deletions
  1. 34 7
      umac/regulatory/core/src/reg_db.c
  2. 4 0
      umac/regulatory/core/src/reg_db.h

+ 34 - 7
umac/regulatory/core/src/reg_db.c

@@ -20,7 +20,7 @@
 /**
  * DOC: reg_db.c
  * This file implements QCA regulatory database.
- * Current implementation conforms to database version 35.
+ * Current implementation conforms to database version 36.
  */
 
 #include <qdf_types.h>
@@ -1663,7 +1663,7 @@ const struct regdomain regdomains_5g[] = {
  * both AP and STA (eg ETSI1_VLP_6G).
  */
 enum reg_subdomains_6g {
-	FCC1_CLI_LPI_REGULAR_6G = 0x01,
+	FCC1_CLI_LPI_DEFAULT_6G = 0x01,
 	FCC1_CLI_SP_6G = 0x02,
 	FCC1_AP_LPI_6G = 0x03,
 	FCC1_CLI_LPI_SUBORDINATE = FCC1_AP_LPI_6G,
@@ -1684,6 +1684,10 @@ enum reg_subdomains_6g {
 	APL2_CLI_LPI_6G = APL2_AP_LPI_6G,
 	APL2_AP_VLP_6G = 0x23,
 	APL2_CLI_VLP_6G = APL2_AP_VLP_6G,
+	APL3_AP_VLP_6G = 0x24,
+	APL3_CLI_VLP_6G = APL3_AP_VLP_6G,
+	APL3_AP_LPI_6G = 0x25,
+	APL3_CLI_LPI_6G = APL3_AP_LPI_6G,
 };
 
 /**
@@ -1691,7 +1695,7 @@ enum reg_subdomains_6g {
  */
 static const struct sixghz_super_to_subdomains g_6g_reg_dmn_9_tuples[] = {
 	{FCC1_6G_01, FCC1_AP_LPI_6G, FCC1_AP_SP_6G, 0,
-	 {FCC1_CLI_LPI_REGULAR_6G, FCC1_CLI_LPI_SUBORDINATE},
+	 {FCC1_CLI_LPI_DEFAULT_6G, FCC1_CLI_LPI_SUBORDINATE},
 	 {FCC1_CLI_SP_6G, FCC1_CLI_SP_6G},
 	 {0, 0} },
 	{ETSI1_6G_02, ETSI1_AP_LPI_6G, 0, ETSI1_AP_VLP_6G,
@@ -1704,11 +1708,18 @@ static const struct sixghz_super_to_subdomains g_6g_reg_dmn_9_tuples[] = {
 	 {APL1_CLI_LPI_6G, APL1_CLI_LPI_6G}, {0, 0},
 	 {APL1_CLI_VLP_6G, APL1_CLI_VLP_6G} },
 	{FCC1_6G_05, FCC1_AP_LPI_6G, 0, 0,
-	 {FCC1_CLI_LPI_REGULAR_6G, FCC1_CLI_LPI_SUBORDINATE}, {0, 0},
+	 {FCC1_CLI_LPI_DEFAULT_6G, FCC1_CLI_LPI_SUBORDINATE}, {0, 0},
 	 {0, 0} },
 	{APL2_6G_06, APL2_AP_LPI_6G, 0, APL2_AP_VLP_6G,
 	 {APL2_CLI_LPI_6G, APL2_CLI_LPI_6G}, {0, 0},
 	 {APL2_CLI_VLP_6G, APL2_CLI_VLP_6G} },
+	{FCC1_6G_07, FCC1_AP_LPI_6G, 0, APL3_AP_VLP_6G,
+	 {FCC1_CLI_LPI_DEFAULT_6G, 0},
+	 {0, 0},
+	 {APL3_CLI_VLP_6G, APL3_CLI_VLP_6G} },
+	{APL3_6G_08, APL3_AP_LPI_6G, 0, 0,
+	 {APL3_CLI_LPI_6G, APL3_CLI_LPI_6G}, {0, 0},
+	 {0, 0} },
 };
 
 /**
@@ -1716,6 +1727,8 @@ static const struct sixghz_super_to_subdomains g_6g_reg_dmn_9_tuples[] = {
  */
 enum reg_rules_6g {
 	CHAN_5925_6425_1,
+	CHAN_5925_6425_2,
+	CHAN_5925_6425_3,
 	CHAN_5945_6425_1,
 	CHAN_5945_6425_2,
 	CHAN_5945_6425_3,
@@ -1730,16 +1743,19 @@ enum reg_rules_6g {
 	CHAN_6425_6525_2,
 	CHAN_6425_6525_3,
 	CHAN_6425_6525_4,
+	CHAN_6425_6525_5,
 	CHAN_6525_6875_1,
 	CHAN_6525_6875_2,
 	CHAN_6525_6875_3,
 	CHAN_6525_6875_4,
 	CHAN_6525_6875_5,
 	CHAN_6525_6875_6,
+	CHAN_6525_6875_7,
 	CHAN_6875_7125_1,
 	CHAN_6875_7125_2,
 	CHAN_6875_7125_3,
 	CHAN_6875_7125_4,
+	CHAN_6875_7125_5,
 };
 
 /**
@@ -1748,6 +1764,9 @@ enum reg_rules_6g {
 static const struct regulatory_rule_ext reg_rules_6g[] = {
 	[CHAN_5925_6425_1] = {5925, 6425, 320, 23, REG_MAX_PSD,
 						REGULATORY_CHAN_INDOOR_ONLY},
+	[CHAN_5925_6425_2] = {5925, 6425, 320, 17, -5, 0},
+	[CHAN_5925_6425_3] = {5925, 6425, 320, 24, REG_MAX_PSD,
+						REGULATORY_CHAN_INDOOR_ONLY},
 	[CHAN_5945_6425_1] = {5945, 6425, 320, 30, 5,
 						REGULATORY_CHAN_INDOOR_ONLY},
 	[CHAN_5945_6425_2] = {5945, 6425, 320, 36, 23, 0},
@@ -1771,16 +1790,18 @@ static const struct regulatory_rule_ext reg_rules_6g[] = {
 						REGULATORY_CHAN_INDOOR_ONLY},
 	[CHAN_6425_6525_4] = {6425, 6525, 320, 23, REG_MAX_PSD,
 						REGULATORY_CHAN_INDOOR_ONLY},
+	[CHAN_6425_6525_5] = {6425, 6525, 320, 17, -5, 0},
 	[CHAN_6525_6875_1] = {6525, 6875, 320, 30, 5,
 						REGULATORY_CHAN_INDOOR_ONLY},
-	[CHAN_6525_6875_2] = {6525, 6875, 320, 36, 23, 0},
-	[CHAN_6525_6875_3] = {6525, 6875, 320, 30, 17, 0},
+	[CHAN_6525_6875_2] = {6525, 6865, 160, 36, 23, 0},
+	[CHAN_6525_6875_3] = {6525, 6865, 160, 30, 17, 0},
 	[CHAN_6525_6875_4] = {6525, 6875, 320, 24, -1,
 						REGULATORY_CHAN_INDOOR_ONLY},
 	[CHAN_6525_6875_5] = {6525, 6875, 160, 63, 2,
 						REGULATORY_CHAN_INDOOR_ONLY},
 	[CHAN_6525_6875_6] = {6525, 6875, 320, 22, REG_MAX_PSD,
 						REGULATORY_CHAN_INDOOR_ONLY},
+	[CHAN_6525_6875_7] = {6525, 6875, 160, 17, -5, 0},
 	[CHAN_6875_7125_1] = {6875, 7125, 160, 30, 5,
 						REGULATORY_CHAN_INDOOR_ONLY},
 	[CHAN_6875_7125_2] = {6875, 7125, 160, 24, -1,
@@ -1789,6 +1810,7 @@ static const struct regulatory_rule_ext reg_rules_6g[] = {
 						REGULATORY_CHAN_INDOOR_ONLY},
 	[CHAN_6875_7125_4] = {6875, 7125, 160, 22, REG_MAX_PSD,
 						REGULATORY_CHAN_INDOOR_ONLY},
+	[CHAN_6875_7125_5] = {6875, 7125, 320, 17, -5, 0},
 };
 
 /**
@@ -1803,7 +1825,7 @@ static const struct sub_6g_regdomain sub_regdomains_6g[] = {
 				       CHAN_6525_6875_2} },
 	[FCC1_CLI_SP_6G] = {2, 320, 2, {CHAN_5945_6425_3,
 					CHAN_6525_6875_3} },
-	[FCC1_CLI_LPI_REGULAR_6G] = {2, 320,  4, {CHAN_5945_6425_4,
+	[FCC1_CLI_LPI_DEFAULT_6G] = {2, 320,  4, {CHAN_5945_6425_4,
 						  CHAN_6425_6525_2,
 						  CHAN_6525_6875_4,
 						  CHAN_6875_7125_2} },
@@ -1824,6 +1846,11 @@ static const struct sub_6g_regdomain sub_regdomains_6g[] = {
 					 CHAN_6425_6525_4,
 					 CHAN_6525_6875_6,
 					 CHAN_6875_7125_4} },
+	[APL3_AP_VLP_6G]  = {2, 320, 4, {CHAN_5925_6425_2,
+					 CHAN_6425_6525_5,
+					 CHAN_6525_6875_7,
+					 CHAN_6875_7125_5} },
+	[APL3_AP_LPI_6G]  = {2, 320, 1, {CHAN_5925_6425_3} },
 };
 #endif
 #ifdef CONFIG_REG_CLIENT

+ 4 - 0
umac/regulatory/core/src/reg_db.h

@@ -171,6 +171,8 @@ struct reg_domain_pair {
  * @APL1_6G_04: Super domain APL1_6G_04 for Korea
  * @FCC1_6G_05: Super domain FCC1_6G_05 for Chile
  * @APL2_6G_06: Super domain APL2_6G_06 for Guatemala
+ * @FCC1_6G_07: Super domain FCC1_6G_07 for Brazil
+ * @APL3_6G_08: Super domain APL3_6G_08 for UAE
  */
 enum reg_super_domain_6g {
 	FCC1_6G_01 = 0x01,
@@ -179,6 +181,8 @@ enum reg_super_domain_6g {
 	APL1_6G_04 = 0x04,
 	FCC1_6G_05 = 0x05,
 	APL2_6G_06 = 0x06,
+	FCC1_6G_07 = 0x07,
+	APL3_6G_08 = 0x08,
 };
 
 #if defined(COMPILE_REGDB_6G)