Browse Source

Merge "qcacmn: Change default WORLD mode"

Linux Build Service Account 6 năm trước cách đây
mục cha
commit
31c991610b
2 tập tin đã thay đổi với 40 bổ sung20 xóa
  1. 31 15
      dp/wifi3.0/dp_main.c
  2. 9 5
      umac/regulatory/core/src/reg_db.c

+ 31 - 15
dp/wifi3.0/dp_main.c

@@ -7960,27 +7960,43 @@ static struct cdp_cfg_ops dp_ops_cfg = {
 };
 
 /*
- * dp_wrapper_peer_get_ref_by_addr - wrapper function to get to peer
+ * dp_peer_get_ref_find_by_addr - get peer with addr by ref count inc
  * @dev: physical device instance
  * @peer_mac_addr: peer mac address
  * @local_id: local id for the peer
  * @debug_id: to track enum peer access
-
+ *
  * Return: peer instance pointer
  */
 static inline void *
-dp_wrapper_peer_get_ref_by_addr(struct cdp_pdev *dev, u8 *peer_mac_addr,
-				u8 *local_id,
-				enum peer_debug_id_type debug_id)
+dp_peer_get_ref_find_by_addr(struct cdp_pdev *dev, u8 *peer_mac_addr,
+			     u8 *local_id, enum peer_debug_id_type debug_id)
 {
-	/*
-	 * Currently this function does not implement the "get ref"
-	 * functionality and is mapped to dp_find_peer_by_addr which does not
-	 * increment the peer ref count. So the peer state is uncertain after
-	 * calling this API. The functionality needs to be implemented.
-	 * Accordingly the corresponding release_ref function is NULL.
-	 */
-	return dp_find_peer_by_addr(dev, peer_mac_addr, local_id);
+	struct dp_pdev *pdev = (struct dp_pdev *)dev;
+	struct dp_peer *peer;
+
+	peer = dp_peer_find_hash_find(pdev->soc, peer_mac_addr, 0, DP_VDEV_ALL);
+
+	if (!peer)
+		return NULL;
+
+	*local_id = peer->local_id;
+	DP_TRACE(INFO, "%s: peer %pK id %d", __func__, peer, *local_id);
+
+	return peer;
+}
+
+/*
+ * dp_peer_release_ref - release peer ref count
+ * @peer: peer handle
+ * @debug_id: to track enum peer access
+ *
+ * Return: None
+ */
+static inline
+void dp_peer_release_ref(void *peer, enum peer_debug_id_type debug_id)
+{
+	dp_peer_unref_delete(peer);
 }
 
 static struct cdp_peer_ops dp_ops_peer = {
@@ -7988,8 +8004,8 @@ static struct cdp_peer_ops dp_ops_peer = {
 	.clear_peer = dp_clear_peer,
 	.find_peer_by_addr = dp_find_peer_by_addr,
 	.find_peer_by_addr_and_vdev = dp_find_peer_by_addr_and_vdev,
-	.peer_get_ref_by_addr = dp_wrapper_peer_get_ref_by_addr,
-	.peer_release_ref = NULL,
+	.peer_get_ref_by_addr = dp_peer_get_ref_find_by_addr,
+	.peer_release_ref = dp_peer_release_ref,
 	.local_peer_id = dp_local_peer_id,
 	.peer_find_by_local_id = dp_peer_find_by_local_id,
 	.peer_state_update = dp_peer_state_update,

+ 9 - 5
umac/regulatory/core/src/reg_db.c

@@ -214,6 +214,7 @@ enum reg_domain {
 	FCC3_WORLD = 0x3B,
 	FCC3_ETSIC = 0x3F,
 	FCC4_FCCA = 0x12,
+	FCC5_FCCA = 0x13,
 	FCC6_WORLD = 0x23,
 	FCC6_FCCA = 0x14,
 	FCC8_FCCA = 0x16,
@@ -458,7 +459,7 @@ const struct country_code_to_reg_domain g_all_countries[] = {
 	{CTRY_ALGERIA, APL13_WORLD, "DZ", 40, 160, 0},
 	{CTRY_AMERICAN_SAMOA, FCC3_FCCA, "AS", 40, 160, 0},
 	{CTRY_ANGUILLA, ETSI1_WORLD, "AI", 40, 160, 0},
-	{CTRY_ARGENTINA, APL17_ETSID, "AR1", 40, 160, 0},
+	{CTRY_ARGENTINA, APL17_ETSID, "AR", 40, 160, 0},
 	{CTRY_ARMENIA, ETSI4_WORLD, "AM", 40, 20, 0},
 	{CTRY_ARUBA, ETSI1_WORLD, "AW", 40, 160, 0},
 	{CTRY_AUSTRALIA, FCC6_WORLD, "AU", 40, 160, 0},
@@ -634,7 +635,7 @@ const struct country_code_to_reg_domain g_all_countries[] = {
 	{CTRY_ALGERIA, APL13_WORLD, "DZ", 40, 160, 0},
 	{CTRY_AMERICAN_SAMOA, FCC3_FCCA, "AS", 40, 160, 0},
 	{CTRY_ANGUILLA, ETSI1_WORLD, "AI", 40, 160, 0},
-	{CTRY_ARGENTINA, APL17_ETSID, "AR1", 40, 160, 0},
+	{CTRY_ARGENTINA, APL17_ETSID, "AR", 40, 160, 0},
 	{CTRY_ARMENIA, ETSI4_WORLD, "AM", 40, 20, 0},
 	{CTRY_ARUBA, ETSI1_WORLD, "AW", 40, 160, 0},
 	{CTRY_AUSTRALIA, FCC6_WORLD, "AU", 40, 160, 0},
@@ -883,6 +884,7 @@ const struct reg_domain_pair g_reg_dmn_pairs[] = {
 	{FCC3_WORLD, FCC3, WORLD},
 	{FCC3_ETSIC, FCC3, ETSIC},
 	{FCC4_FCCA, FCC4, FCCA},
+	{FCC5_FCCA, FCC5, FCCA},
 	{FCC6_WORLD, FCC6, WORLD},
 	{FCC6_FCCA, FCC6, FCCA},
 	{FCC8_FCCA, FCC8, FCCA},
@@ -949,6 +951,7 @@ enum reg_rules_2g {
 	CHAN_1_13_2,
 	CHAN_1_13_3,
 	CHAN_1_13_4,
+	CHAN_12_12_1,
 	CHAN_12_13_1,
 	CHAN_14_1,
 	CHAN_14_2,
@@ -963,7 +966,8 @@ const struct regulatory_rule reg_rules_2g[] = {
 	[CHAN_1_13_2] = {2402, 2482, 40, 30, 0},
 	[CHAN_1_13_3] = {2402, 2482, 40, 36, 0},
 	[CHAN_1_13_4] = {2402, 2482, 40, 23, 0},
-	[CHAN_12_13_1] = {2457, 2482, 40, 30, REGULATORY_CHAN_NO_IR},
+	[CHAN_12_12_1] = {2457, 2477, 40, 20, REGULATORY_CHAN_NO_IR},
+	[CHAN_12_13_1] = {2457, 2482, 40, 20, REGULATORY_CHAN_NO_IR},
 	[CHAN_14_1] = {2474, 2494, 20, 23, REGULATORY_CHAN_NO_OFDM},
 	[CHAN_14_2] = {2474, 2494, 20, 20,
 		       REGULATORY_CHAN_NO_OFDM | REGULATORY_CHAN_NO_IR},
@@ -983,8 +987,8 @@ const struct regdomain regdomains_2g[] = {
 	[WORLD_2G_1] = {CTL_NONE, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_11_2} },
 	[WORLD_2G_2] = {CTL_NONE, DFS_UNINIT_REGION, 0, 0, 2,
 			{CHAN_1_11_2, CHAN_12_13_1} },
-	[WORLD_2G_3] = {CTL_NONE, DFS_UNINIT_REGION, 0, 0, 3,
-			{CHAN_1_11_2, CHAN_12_13_1, CHAN_14_2} },
+	[WORLD_2G_3] = {CTL_NONE, DFS_UNINIT_REGION, 0, 0, 2,
+			{CHAN_1_11_2, CHAN_12_12_1} },
 };