Ver código fonte

qcacld-3.0: Separate TcpDelAck and TcpAdvWinScale

Separate tcp-del-act and tcp-advanced-window-scaling triggers
so that these system parameters can be set separately.

Change-Id: If2f869243152e698409e8a38459f5fabe44f35cb
CRs-Fixed: 1115614
Manjunathappa Prakash 7 anos atrás
pai
commit
c13cb5bdb3
2 arquivos alterados com 19 adições e 8 exclusões
  1. 13 6
      core/hdd/src/wlan_hdd_main.c
  2. 6 2
      core/hdd/src/wlan_hdd_tx_rx.c

+ 13 - 6
core/hdd/src/wlan_hdd_main.c

@@ -6426,6 +6426,8 @@ static void hdd_pld_request_bus_bandwidth(struct hdd_context *hdd_ctx,
 	}
 
 	if (hdd_ctx->cur_rx_level != next_rx_level) {
+		struct wlan_rx_tp_data rx_tp_data = {0};
+
 		hdd_debug("TCP DELACK trigger level %d, average_rx: %llu",
 		       next_rx_level, temp_rx);
 		hdd_ctx->cur_rx_level = next_rx_level;
@@ -6436,10 +6438,13 @@ static void hdd_pld_request_bus_bandwidth(struct hdd_context *hdd_ctx,
 		 * dynamic delayed ack mechanism across the system
 		 */
 		if (hdd_ctx->config->enable_tcp_delack)
-			wlan_hdd_send_svc_nlink_msg(hdd_ctx->radio_index,
-					WLAN_SVC_WLAN_TP_IND,
-					    &next_rx_level,
-					    sizeof(next_rx_level));
+			rx_tp_data.rx_tp_flags |= TCP_DEL_ACK_IND;
+
+		rx_tp_data.rx_tp_flags |= TCP_ADV_WIN_SCL;
+		rx_tp_data.level = next_rx_level;
+		wlan_hdd_send_svc_nlink_msg(hdd_ctx->radio_index,
+				WLAN_SVC_WLAN_TP_IND, &rx_tp_data,
+				sizeof(rx_tp_data));
 	}
 
 	/* fine-tuning parameters for TX Flows */
@@ -6660,9 +6665,11 @@ void hdd_bus_bw_cancel_work(struct hdd_context *hdd_ctx)
 
 void hdd_send_wlan_tp_ind(struct hdd_context *hdd_ctx)
 {
+	struct wlan_rx_tp_data rx_tp_data = {0};
+
 	wlan_hdd_send_svc_nlink_msg(hdd_ctx->radio_index,
-			WLAN_SVC_WLAN_TP_IND, &hdd_ctx->cur_rx_level,
-			sizeof(hdd_ctx->cur_rx_level));
+			WLAN_SVC_WLAN_TP_IND, &rx_tp_data,
+			sizeof(rx_tp_data));
 }
 #endif
 

+ 6 - 2
core/hdd/src/wlan_hdd_tx_rx.c

@@ -1894,10 +1894,14 @@ void hdd_send_rps_disable_ind(struct hdd_adapter *adapter)
  */
 void hdd_reset_tcp_delack(struct hdd_context *hdd_ctx)
 {
-	enum pld_bus_width_type next_level = PLD_BUS_WIDTH_LOW;
+	enum pld_bus_width_type next_level = WLAN_SVC_TP_LOW;
+	struct wlan_rx_tp_data rx_tp_data = {0};
 
+	rx_tp_data.rx_tp_flags |= TCP_DEL_ACK_IND;
+	rx_tp_data.rx_tp_flags |= TCP_ADV_WIN_SCL;
+	rx_tp_data.level = next_level;
 	hdd_ctx->rx_high_ind_cnt = 0;
 	wlan_hdd_send_svc_nlink_msg(hdd_ctx->radio_index, WLAN_SVC_WLAN_TP_IND,
-				    &next_level, sizeof(next_level));
+				    &rx_tp_data, sizeof(rx_tp_data));
 }
 #endif /* MSM_PLATFORM */