Browse Source

qcacld-3.0: update max tx aggr size for lithium family

Currently user configured tx aggr size "0-64" is not honored in
firmware, By default firmware expects as 256 and its hardcoded.

In order to make user controllable, host has to send default max
tx aggr size as 256 for lithium and 64 for other targets.

Change-Id: I7a69f09d048f79da4c770e71b4d1c8726fa02faa
CRs-Fixed: 2846803
Balaji Pothunoori 4 years ago
parent
commit
2442b01eb2
2 changed files with 24 additions and 13 deletions
  1. 19 12
      components/mlme/dispatcher/inc/cfg_qos.h
  2. 5 1
      core/wma/src/wma_features.c

+ 19 - 12
components/mlme/dispatcher/inc/cfg_qos.h

@@ -24,13 +24,20 @@
 #ifndef __CFG_MLME_QOS_H
 #define __CFG_MLME_QOS_H
 
+#if defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390) || \
+	defined(QCA_WIFI_QCA6490) || defined(QCA_WIFI_QCA6750)
+#define ADDBA_TXAGGR_SIZE 256
+#else
+#define ADDBA_TXAGGR_SIZE 64
+#endif
+
 /*
  * <ini>
  * gTxAggregationSize - Gives an option to configure Tx aggregation size
  * in no of MPDUs
  * @Min: 0
- * @Max: 64
- * @Default: 64
+ * @Max: ADDBA_TXAGGR_SIZE
+ * @Default: ADDBA_TXAGGR_SIZE
  *
  * gTxAggregationSize gives an option to configure Tx aggregation size
  * in no of MPDUs.This can be useful in debugging throughput issues
@@ -46,8 +53,8 @@
 #define CFG_TX_AGGREGATION_SIZE CFG_INI_UINT( \
 			"gTxAggregationSize", \
 			0, \
-			64, \
-			64, \
+			ADDBA_TXAGGR_SIZE, \
+			ADDBA_TXAGGR_SIZE, \
 			CFG_VALUE_OR_DEFAULT, \
 			"Tx Aggregation size value")
 
@@ -56,7 +63,7 @@
  * gTxAggregationSizeBE - To configure Tx aggregation size for BE queue
  * in no of MPDUs
  * @Min: 0
- * @Max: 64
+ * @Max: ADDBA_TXAGGR_SIZE
  * @Default: 0
  *
  * gTxAggregationSizeBE gives an option to configure Tx aggregation size
@@ -74,7 +81,7 @@
 #define CFG_TX_AGGREGATION_SIZEBE CFG_INI_UINT( \
 			"gTxAggregationSizeBE", \
 			0, \
-			64, \
+			ADDBA_TXAGGR_SIZE, \
 			0, \
 			CFG_VALUE_OR_DEFAULT, \
 			"Tx Aggregation size value BE")
@@ -84,7 +91,7 @@
  * gTxAggregationSizeBK - To configure Tx aggregation size for BK queue
  * in no of MPDUs
  * @Min: 0
- * @Max: 64
+ * @Max: ADDBA_TXAGGR_SIZE
  * @Default: 0
  *
  * gTxAggregationSizeBK gives an option to configure Tx aggregation size
@@ -102,7 +109,7 @@
 #define CFG_TX_AGGREGATION_SIZEBK CFG_INI_UINT( \
 			"gTxAggregationSizeBK", \
 			0, \
-			64, \
+			ADDBA_TXAGGR_SIZE, \
 			0, \
 			CFG_VALUE_OR_DEFAULT, \
 			"Tx Aggregation size value BK")
@@ -112,7 +119,7 @@
  * gTxAggregationSizeVI - To configure Tx aggregation size for VI queue
  * in no of MPDUs
  * @Min: 0
- * @Max: 64
+ * @Max: ADDBA_TXAGGR_SIZE
  * @Default: 0
  *
  * gTxAggregationSizeVI gives an option to configure Tx aggregation size
@@ -130,7 +137,7 @@
 #define CFG_TX_AGGREGATION_SIZEVI CFG_INI_UINT( \
 			"gTxAggregationSizeVI", \
 			0, \
-			64, \
+			ADDBA_TXAGGR_SIZE, \
 			0, \
 			CFG_VALUE_OR_DEFAULT, \
 			"Tx Aggregation size value for VI")
@@ -140,7 +147,7 @@
  * gTxAggregationSizeVO - To configure Tx aggregation size for VO queue
  * in no of MPDUs
  * @Min: 0
- * @Max: 64
+ * @Max: ADDBA_TXAGGR_SIZE
  * @Default: 0
  *
  * gTxAggregationSizeVO gives an option to configure Tx aggregation size
@@ -158,7 +165,7 @@
 #define CFG_TX_AGGREGATION_SIZEVO CFG_INI_UINT( \
 			"gTxAggregationSizeVO", \
 			0, \
-			64, \
+			ADDBA_TXAGGR_SIZE, \
 			0, \
 			CFG_VALUE_OR_DEFAULT, \
 			"Tx Aggregation size value for VO")

+ 5 - 1
core/wma/src/wma_features.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2020 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2021 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -4011,6 +4011,8 @@ QDF_STATUS wma_set_tx_rx_aggr_size(uint8_t vdev_id,
 	if (aggr_type == WMI_VDEV_CUSTOM_AGGR_TYPE_AMSDU)
 		cmd->enable_bitmap |= 0x04;
 
+		cmd->enable_bitmap |= (0x1 << 6);
+
 	wma_debug("tx aggr: %d rx aggr: %d vdev: %d enable_bitmap %d",
 		 cmd->tx_aggr_size, cmd->rx_aggr_size, cmd->vdev_id,
 		 cmd->enable_bitmap);
@@ -4074,6 +4076,8 @@ QDF_STATUS wma_set_tx_rx_aggr_size_per_ac(WMA_HANDLE handle,
 		if (aggr_type == WMI_VDEV_CUSTOM_AGGR_TYPE_AMSDU)
 			cmd->enable_bitmap |= 0x04;
 
+			cmd->enable_bitmap |= (0x1 << 6);
+
 		wma_debug("queue_num: %d, tx aggr: %d rx aggr: %d vdev: %d, bitmap: %d",
 			 queue_num, cmd->tx_aggr_size,
 			 cmd->rx_aggr_size, cmd->vdev_id,