Browse Source

qcacmn: Set per_tid_basize_max_tid so that BA size is configured per TID

Set per_tid_basize_max_tid so that BA size is configured per TID.
Accordingly fix dp_check_ba_buffersize to ba_window_size to incoming
buffer_size. Assert for any BA window size above 1024.

Change-Id: I40cb2aac012c50e253c3ef22d44cf5db3abfb7bb
CRs-Fixed: 3182601
Prakash Manjunathappa 3 years ago
parent
commit
017ad75e08
2 changed files with 22 additions and 1 deletions
  1. 1 0
      dp/wifi3.0/dp_main.c
  2. 21 1
      dp/wifi3.0/dp_peer.c

+ 1 - 0
dp/wifi3.0/dp_main.c

@@ -15246,6 +15246,7 @@ static void dp_soc_cfg_init(struct dp_soc *soc)
 		wlan_cfg_set_reo_dst_ring_size(soc->wlan_cfg_ctx,
 					       REO_DST_RING_SIZE_QCA6290);
 		soc->ast_override_support = 1;
+		soc->per_tid_basize_max_tid = 8;
 
 		if (soc->cdp_soc.ol_ops->get_con_mode &&
 		    soc->cdp_soc.ol_ops->get_con_mode() ==

+ 21 - 1
dp/wifi3.0/dp_peer.c

@@ -4294,11 +4294,16 @@ static void dp_check_ba_buffersize(struct dp_peer *peer,
 {
 	struct dp_rx_tid *rx_tid = NULL;
 
+	dp_info(QDF_MAC_ADDR_FMT" per_tid_basize_max_tid %d tid %d buffersize %d hw_buffer_size %d",
+		peer->mac_addr.raw,
+		peer->vdev->pdev->soc->per_tid_basize_max_tid, tid, buffersize,
+		peer->hw_buffer_size);
+
 	rx_tid = &peer->rx_tid[tid];
 	if (peer->vdev->pdev->soc->per_tid_basize_max_tid &&
 	    tid < peer->vdev->pdev->soc->per_tid_basize_max_tid) {
 		rx_tid->ba_win_size = buffersize;
-		return;
+		goto out;
 	} else {
 		if (peer->active_ba_session_cnt == 0) {
 			rx_tid->ba_win_size = buffersize;
@@ -4316,9 +4321,24 @@ static void dp_check_ba_buffersize(struct dp_peer *peer,
 					peer->hw_buffer_size = 64;
 					peer->kill_256_sessions = 1;
 				}
+			} else if (buffersize <= 1024) {
+				/**
+				 * Above checks are only for HK V2
+				 * Set incoming buffer size for others
+				 */
+				rx_tid->ba_win_size = buffersize;
+			} else {
+				dp_err("Invalid buffer size %d", buffersize);
+				qdf_assert_always(0);
 			}
 		}
 	}
+
+out:
+	dp_info("rx_tid->ba_win_size %d peer->hw_buffer_size %d peer->kill_256_sessions %d",
+		rx_tid->ba_win_size,
+		peer->hw_buffer_size,
+		peer->kill_256_sessions);
 }
 
 QDF_STATUS dp_rx_tid_update_ba_win_size(struct cdp_soc_t *cdp_soc,