ソースを参照

qcacmn: Move DA_war flag to SOC level

Moved DA_war flag from vdev level to soc level.
Also disable DA_war when extap is enabled.

Change-Id: I8e8b2ac7835fb8b5bcad603bd1e7d8036ef7719c
Nandha Kishore Easwaran 6 年 前
コミット
f9c44ce2ad
3 ファイル変更10 行追加7 行削除
  1. 4 2
      dp/wifi3.0/dp_main.c
  2. 4 2
      dp/wifi3.0/dp_rx.c
  3. 2 3
      dp/wifi3.0/dp_types.h

+ 4 - 2
dp/wifi3.0/dp_main.c

@@ -7949,7 +7949,7 @@ static uint32_t dp_get_vdev_param(struct cdp_vdev *vdev_handle,
 		val = vdev->mec_enabled;
 		break;
 	case CDP_ENABLE_DA_WAR:
-		val = vdev->da_war_enabled;
+		val = vdev->pdev->soc->da_war_enabled;
 		break;
 	default:
 		QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
@@ -7990,7 +7990,9 @@ static void dp_set_vdev_param(struct cdp_vdev *vdev_handle,
 		QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
 			  "da_war_enable %d for vdev(%p) id(%d)\n",
 			  val, vdev, vdev->vdev_id);
-		vdev->da_war_enabled = val;
+		vdev->pdev->soc->da_war_enabled = val;
+		dp_wds_flush_ast_table_wifi3(((struct cdp_soc_t *)
+					     vdev->pdev->soc));
 		break;
 	case CDP_ENABLE_NAWDS:
 		vdev->nawds_enabled = val;

+ 4 - 2
dp/wifi3.0/dp_rx.c

@@ -385,6 +385,9 @@ dp_rx_da_learn(struct dp_soc *soc,
 	if (qdf_unlikely(ta_peer->vdev->opmode != wlan_op_mode_ap))
 		return;
 
+	if (!soc->da_war_enabled)
+		return;
+
 	if (qdf_unlikely(!hal_rx_msdu_end_da_is_valid_get(rx_tlv_hdr) &&
 			 !hal_rx_msdu_end_da_is_mcbc_get(rx_tlv_hdr))) {
 		dp_peer_add_ast(soc,
@@ -1763,8 +1766,7 @@ done:
 			       htt_cmn_pkt_type_ethernet) &&
 		    qdf_likely(!vdev->mesh_vdev)) {
 			/* WDS Destination Address Learning */
-			if (vdev->da_war_enabled)
-				dp_rx_da_learn(soc, rx_tlv_hdr, peer, nbuf);
+			dp_rx_da_learn(soc, rx_tlv_hdr, peer, nbuf);
 
 			/* WDS Source Port Learning */
 			if (vdev->wds_enabled)

+ 2 - 3
dp/wifi3.0/dp_types.h

@@ -1008,6 +1008,8 @@ struct dp_soc {
 	bool is_peer_map_unmap_v2;
 	/* Per peer per Tid ba window size support */
 	uint8_t per_tid_basize_max_tid;
+	/* Soc level flag to enable da_war */
+	uint8_t da_war_enabled;
 };
 
 #ifdef IPA_OFFLOAD
@@ -1473,9 +1475,6 @@ struct dp_vdev {
 	/* MEC enabled */
 	bool mec_enabled;
 
-	/* DA WAR enable flag */
-	bool da_war_enabled;
-
 	/* WDS Aging timer period */
 	uint32_t wds_aging_timer_val;