blob: 6116da993e2d3c9b8d93e314e6d634e3bcb32242 [file] [log] [blame]
Vivek126db5d2018-07-25 22:05:04 +05301/*
Karunakar Dasineni1f1acf52018-12-27 09:27:46 -08002 * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
Vivek126db5d2018-07-25 22:05:04 +05303 *
4 * Permission to use, copy, modify, and/or distribute this software for
5 * any purpose with or without fee is hereby granted, provided that the
6 * above copyright notice and this permission notice appear in all
7 * copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16 * PERFORMANCE OF THIS SOFTWARE.
17 */
18
19/**
20 * DOC: This file contains definitions of Data Path configuration.
21 */
22
23#ifndef _CFG_DP_H_
24#define _CFG_DP_H_
25
26#include "cfg_define.h"
27
28#define WLAN_CFG_MAX_CLIENTS 64
Pratik Gandhi4cce3e02018-09-05 19:43:11 +053029#define WLAN_CFG_MAX_CLIENTS_MIN 8
Vivek126db5d2018-07-25 22:05:04 +053030#define WLAN_CFG_MAX_CLIENTS_MAX 64
31
32/* Change this to a lower value to enforce scattered idle list mode */
33#define WLAN_CFG_MAX_ALLOC_SIZE 0x200000
sumedh baikady3c05f972019-04-18 15:30:30 -070034#define WLAN_CFG_MAX_ALLOC_SIZE_MIN 0x80000
Vivek126db5d2018-07-25 22:05:04 +053035#define WLAN_CFG_MAX_ALLOC_SIZE_MAX 0x200000
36
37#define WLAN_CFG_NUM_TCL_DATA_RINGS 3
38#define WLAN_CFG_NUM_TCL_DATA_RINGS_MIN 3
39#define WLAN_CFG_NUM_TCL_DATA_RINGS_MAX 3
40
41#ifdef CONFIG_MCL
jitiphil60ac9aa2018-10-05 19:54:04 +053042#ifdef QCA_LL_TX_FLOW_CONTROL_V2
43#define WLAN_CFG_TX_FLOW_START_QUEUE_OFFSET 10
44#define WLAN_CFG_TX_FLOW_STOP_QUEUE_TH 15
Vivek126db5d2018-07-25 22:05:04 +053045#else
jitiphil60ac9aa2018-10-05 19:54:04 +053046#define WLAN_CFG_TX_FLOW_START_QUEUE_OFFSET 0
47#define WLAN_CFG_TX_FLOW_STOP_QUEUE_TH 0
Vivek126db5d2018-07-25 22:05:04 +053048#endif
Vivek126db5d2018-07-25 22:05:04 +053049#endif
50
51#define WLAN_CFG_PER_PDEV_TX_RING_MIN 0
52#define WLAN_CFG_PER_PDEV_TX_RING_MAX 1
53
54#ifdef CONFIG_MCL
55#define WLAN_CFG_PER_PDEV_RX_RING 0
56#define WLAN_CFG_PER_PDEV_LMAC_RING 0
jitiphil60ac9aa2018-10-05 19:54:04 +053057#define WLAN_LRO_ENABLE 0
Venkata Sharath Chandra Manchala8d583a82019-04-21 12:32:24 -070058#define WLAN_CFG_MAC_PER_TARGET 2
Vivek126db5d2018-07-25 22:05:04 +053059#ifdef IPA_OFFLOAD
Mohit Khanna81179cb2018-08-16 20:50:43 -070060/* Size of TCL TX Ring */
61#define WLAN_CFG_TX_RING_SIZE 1024
jitiphil60ac9aa2018-10-05 19:54:04 +053062#define WLAN_CFG_PER_PDEV_TX_RING 0
63#define WLAN_CFG_IPA_UC_TX_BUF_SIZE 2048
64#define WLAN_CFG_IPA_UC_TX_PARTITION_BASE 3000
65#define WLAN_CFG_IPA_UC_RX_IND_RING_COUNT 1024
Vivek126db5d2018-07-25 22:05:04 +053066#else
67#define WLAN_CFG_TX_RING_SIZE 512
jitiphil60ac9aa2018-10-05 19:54:04 +053068#define WLAN_CFG_PER_PDEV_TX_RING 1
69#define WLAN_CFG_IPA_UC_TX_BUF_SIZE 0
70#define WLAN_CFG_IPA_UC_TX_PARTITION_BASE 0
71#define WLAN_CFG_IPA_UC_RX_IND_RING_COUNT 0
Vivek126db5d2018-07-25 22:05:04 +053072#endif
73#define WLAN_CFG_TX_COMP_RING_SIZE 1024
74
75/* Tx Descriptor and Tx Extension Descriptor pool sizes */
76#define WLAN_CFG_NUM_TX_DESC 1024
77#define WLAN_CFG_NUM_TX_EXT_DESC 1024
78
79/* Interrupt Mitigation - Batch threshold in terms of number of frames */
80#define WLAN_CFG_INT_BATCH_THRESHOLD_TX 1
81#define WLAN_CFG_INT_BATCH_THRESHOLD_RX 1
82#define WLAN_CFG_INT_BATCH_THRESHOLD_OTHER 1
83
84/* Interrupt Mitigation - Timer threshold in us */
85#define WLAN_CFG_INT_TIMER_THRESHOLD_TX 8
86#define WLAN_CFG_INT_TIMER_THRESHOLD_RX 8
87#define WLAN_CFG_INT_TIMER_THRESHOLD_OTHER 8
Vivek126db5d2018-07-25 22:05:04 +053088#endif
89
90#define WLAN_CFG_PER_PDEV_RX_RING_MIN 0
91#define WLAN_CFG_PER_PDEV_RX_RING_MAX 0
92
93#define WLAN_CFG_PER_PDEV_LMAC_RING_MIN 0
94#define WLAN_CFG_PER_PDEV_LMAC_RING_MAX 1
95
96#define WLAN_CFG_TX_RING_SIZE_MIN 512
97#define WLAN_CFG_TX_RING_SIZE_MAX 2048
98
Pratik Gandhi4cce3e02018-09-05 19:43:11 +053099#define WLAN_CFG_TX_COMP_RING_SIZE_MIN 512
Vivek126db5d2018-07-25 22:05:04 +0530100#define WLAN_CFG_TX_COMP_RING_SIZE_MAX 0x80000
101
102#define WLAN_CFG_NUM_TX_DESC_MIN 1024
Shashikala Prabhu550e69c2019-03-13 17:41:17 +0530103#define WLAN_CFG_NUM_TX_DESC_MAX 32768
Vivek126db5d2018-07-25 22:05:04 +0530104
105#define WLAN_CFG_NUM_TX_EXT_DESC_MIN 1024
106#define WLAN_CFG_NUM_TX_EXT_DESC_MAX 0x80000
107
108#define WLAN_CFG_INT_BATCH_THRESHOLD_TX_MIN 1
109#define WLAN_CFG_INT_BATCH_THRESHOLD_TX_MAX 256
110
111#define WLAN_CFG_INT_BATCH_THRESHOLD_RX_MIN 1
112#define WLAN_CFG_INT_BATCH_THRESHOLD_RX_MAX 128
113
114#define WLAN_CFG_INT_BATCH_THRESHOLD_OTHER_MIN 1
115#define WLAN_CFG_INT_BATCH_THRESHOLD_OTHER_MAX 1
116
117#define WLAN_CFG_INT_TIMER_THRESHOLD_TX_MIN 8
118#define WLAN_CFG_INT_TIMER_THRESHOLD_TX_MAX 100
119
120#define WLAN_CFG_INT_TIMER_THRESHOLD_RX_MIN 8
121#define WLAN_CFG_INT_TIMER_THRESHOLD_RX_MAX 500
122
123#define WLAN_CFG_INT_TIMER_THRESHOLD_OTHER_MIN 8
124#define WLAN_CFG_INT_TIMER_THRESHOLD_OTHER_MAX 1000
125
Aniruddha Paul7d991b32018-09-03 17:40:00 +0530126#define WLAN_CFG_NSS_TX_COMP_RING_SIZE 0x2000
127#define WLAN_CFG_NSS_TX_COMP_RING_SIZE_MIN 0x2000
Aniruddha Paul1b267242019-03-15 12:01:06 +0530128#define WLAN_CFG_NSS_TX_COMP_RING_SIZE_MAX 0xc000
Vivek126db5d2018-07-25 22:05:04 +0530129
130#ifdef QCA_LL_TX_FLOW_CONTROL_V2
131
132/* Per vdev pools */
133#define WLAN_CFG_NUM_TX_DESC_POOL 3
134#define WLAN_CFG_NUM_TXEXT_DESC_POOL 3
135
136#else /* QCA_LL_TX_FLOW_CONTROL_V2 */
137
138#ifdef TX_PER_PDEV_DESC_POOL
139#define WLAN_CFG_NUM_TX_DESC_POOL MAX_PDEV_CNT
140#define WLAN_CFG_NUM_TXEXT_DESC_POOL MAX_PDEV_CNT
141
142#else /* TX_PER_PDEV_DESC_POOL */
143
144#define WLAN_CFG_NUM_TX_DESC_POOL 3
145#define WLAN_CFG_NUM_TXEXT_DESC_POOL 3
146
147#endif /* TX_PER_PDEV_DESC_POOL */
148#endif /* QCA_LL_TX_FLOW_CONTROL_V2 */
149
150#define WLAN_CFG_NUM_TXEXT_DESC_POOL_MIN 1
151#define WLAN_CFG_NUM_TXEXT_DESC_POOL_MAX 4
152
153#define WLAN_CFG_HTT_PKT_TYPE 2
154#define WLAN_CFG_HTT_PKT_TYPE_MIN 2
155#define WLAN_CFG_HTT_PKT_TYPE_MAX 2
156
157#define WLAN_CFG_MAX_PEER_ID 64
158#define WLAN_CFG_MAX_PEER_ID_MIN 64
159#define WLAN_CFG_MAX_PEER_ID_MAX 64
160
161#define WLAN_CFG_RX_DEFRAG_TIMEOUT 100
162#define WLAN_CFG_RX_DEFRAG_TIMEOUT_MIN 100
163#define WLAN_CFG_RX_DEFRAG_TIMEOUT_MAX 100
164
165#define WLAN_CFG_NUM_TCL_DATA_RINGS 3
166#define WLAN_CFG_NUM_TCL_DATA_RINGS_MIN 3
167#define WLAN_CFG_NUM_TCL_DATA_RINGS_MAX 3
168
169#define WLAN_CFG_NUM_REO_DEST_RING 4
170#define WLAN_CFG_NUM_REO_DEST_RING_MIN 4
171#define WLAN_CFG_NUM_REO_DEST_RING_MAX 4
172
173#define WLAN_CFG_WBM_RELEASE_RING_SIZE 64
174#define WLAN_CFG_WBM_RELEASE_RING_SIZE_MIN 64
175#define WLAN_CFG_WBM_RELEASE_RING_SIZE_MAX 64
176
177#define WLAN_CFG_TCL_CMD_RING_SIZE 32
178#define WLAN_CFG_TCL_CMD_RING_SIZE_MIN 32
179#define WLAN_CFG_TCL_CMD_RING_SIZE_MAX 32
180
181#define WLAN_CFG_TCL_STATUS_RING_SIZE 32
182#define WLAN_CFG_TCL_STATUS_RING_SIZE_MIN 32
183#define WLAN_CFG_TCL_STATUS_RING_SIZE_MAX 32
184
185#if defined(QCA_WIFI_QCA6290)
186#define WLAN_CFG_REO_DST_RING_SIZE 1024
187#else
188#define WLAN_CFG_REO_DST_RING_SIZE 2048
189#endif
190
191#define WLAN_CFG_REO_DST_RING_SIZE_MIN 1024
192#define WLAN_CFG_REO_DST_RING_SIZE_MAX 2048
193
194#define WLAN_CFG_REO_REINJECT_RING_SIZE 32
195#define WLAN_CFG_REO_REINJECT_RING_SIZE_MIN 32
196#define WLAN_CFG_REO_REINJECT_RING_SIZE_MAX 32
197
198#define WLAN_CFG_RX_RELEASE_RING_SIZE 1024
Pratik Gandhi4cce3e02018-09-05 19:43:11 +0530199#define WLAN_CFG_RX_RELEASE_RING_SIZE_MIN 8
Tallapragada Kalyan0ef58ee2019-03-29 17:18:47 +0530200#if defined(QCA_WIFI_QCA6390)
Vivek126db5d2018-07-25 22:05:04 +0530201#define WLAN_CFG_RX_RELEASE_RING_SIZE_MAX 1024
Tallapragada Kalyan0ef58ee2019-03-29 17:18:47 +0530202#else
203#define WLAN_CFG_RX_RELEASE_RING_SIZE_MAX 8192
204#endif
Vivek126db5d2018-07-25 22:05:04 +0530205
206#define WLAN_CFG_REO_EXCEPTION_RING_SIZE 128
207#define WLAN_CFG_REO_EXCEPTION_RING_SIZE_MIN 128
208#define WLAN_CFG_REO_EXCEPTION_RING_SIZE_MAX 128
209
Karunakar Dasineni26ebbe42018-05-31 07:59:10 -0700210#define WLAN_CFG_REO_CMD_RING_SIZE 128
Vivek126db5d2018-07-25 22:05:04 +0530211#define WLAN_CFG_REO_CMD_RING_SIZE_MIN 64
Karunakar Dasineni26ebbe42018-05-31 07:59:10 -0700212#define WLAN_CFG_REO_CMD_RING_SIZE_MAX 128
Vivek126db5d2018-07-25 22:05:04 +0530213
Karunakar Dasineni26ebbe42018-05-31 07:59:10 -0700214#define WLAN_CFG_REO_STATUS_RING_SIZE 256
Vivek126db5d2018-07-25 22:05:04 +0530215#define WLAN_CFG_REO_STATUS_RING_SIZE_MIN 128
Karunakar Dasineni1f1acf52018-12-27 09:27:46 -0800216#define WLAN_CFG_REO_STATUS_RING_SIZE_MAX 2048
Vivek126db5d2018-07-25 22:05:04 +0530217
218#define WLAN_CFG_RXDMA_BUF_RING_SIZE 1024
219#define WLAN_CFG_RXDMA_BUF_RING_SIZE_MIN 1024
220#define WLAN_CFG_RXDMA_BUF_RING_SIZE_MAX 1024
221
222#define WLAN_CFG_RXDMA_REFILL_RING_SIZE 4096
Pratik Gandhi4cce3e02018-09-05 19:43:11 +0530223#define WLAN_CFG_RXDMA_REFILL_RING_SIZE_MIN 16
Vivek126db5d2018-07-25 22:05:04 +0530224#define WLAN_CFG_RXDMA_REFILL_RING_SIZE_MAX 4096
225
226#define WLAN_CFG_RXDMA_MONITOR_BUF_RING_SIZE 4096
Pratik Gandhi4cce3e02018-09-05 19:43:11 +0530227#define WLAN_CFG_RXDMA_MONITOR_BUF_RING_SIZE_MIN 16
Kai Chen692850b2018-12-05 15:06:07 -0800228#define WLAN_CFG_RXDMA_MONITOR_BUF_RING_SIZE_MAX 8192
Vivek126db5d2018-07-25 22:05:04 +0530229
230#define WLAN_CFG_RXDMA_MONITOR_DST_RING_SIZE 2048
Pratik Gandhi4cce3e02018-09-05 19:43:11 +0530231#define WLAN_CFG_RXDMA_MONITOR_DST_RING_SIZE_MIN 48
Kai Chen692850b2018-12-05 15:06:07 -0800232#define WLAN_CFG_RXDMA_MONITOR_DST_RING_SIZE_MAX 8192
Vivek126db5d2018-07-25 22:05:04 +0530233
234#define WLAN_CFG_RXDMA_MONITOR_STATUS_RING_SIZE 1024
Pratik Gandhi4cce3e02018-09-05 19:43:11 +0530235#define WLAN_CFG_RXDMA_MONITOR_STATUS_RING_SIZE_MIN 16
Kai Chen692850b2018-12-05 15:06:07 -0800236#define WLAN_CFG_RXDMA_MONITOR_STATUS_RING_SIZE_MAX 8192
Vivek126db5d2018-07-25 22:05:04 +0530237
238#define WLAN_CFG_RXDMA_MONITOR_DESC_RING_SIZE 4096
239#define WLAN_CFG_RXDMA_MONITOR_DESC_RING_SIZE_MIN 4096
Kai Chen692850b2018-12-05 15:06:07 -0800240#define WLAN_CFG_RXDMA_MONITOR_DESC_RING_SIZE_MAX 16384
Vivek126db5d2018-07-25 22:05:04 +0530241
242#define WLAN_CFG_RXDMA_ERR_DST_RING_SIZE 1024
243#define WLAN_CFG_RXDMA_ERR_DST_RING_SIZE_MIN 1024
Karunakar Dasineni79768452018-09-07 11:32:34 -0700244#define WLAN_CFG_RXDMA_ERR_DST_RING_SIZE_MAX 8192
Vivek126db5d2018-07-25 22:05:04 +0530245
246/* DP INI Declerations */
247#define CFG_DP_HTT_PACKET_TYPE \
248 CFG_INI_UINT("dp_htt_packet_type", \
249 WLAN_CFG_HTT_PKT_TYPE_MIN, \
250 WLAN_CFG_HTT_PKT_TYPE_MAX, \
251 WLAN_CFG_HTT_PKT_TYPE, \
252 CFG_VALUE_OR_DEFAULT, "DP HTT packet type")
253
254#define CFG_DP_INT_BATCH_THRESHOLD_OTHER \
255 CFG_INI_UINT("dp_int_batch_threshold_other", \
Karunakar Dasineni2b7628c2018-10-23 22:59:37 -0700256 WLAN_CFG_INT_BATCH_THRESHOLD_OTHER_MIN, \
257 WLAN_CFG_INT_BATCH_THRESHOLD_OTHER_MAX, \
258 WLAN_CFG_INT_BATCH_THRESHOLD_OTHER, \
Vivek126db5d2018-07-25 22:05:04 +0530259 CFG_VALUE_OR_DEFAULT, "DP INT threshold Other")
260
261#define CFG_DP_INT_BATCH_THRESHOLD_RX \
262 CFG_INI_UINT("dp_int_batch_threshold_rx", \
263 WLAN_CFG_INT_BATCH_THRESHOLD_RX_MIN, \
264 WLAN_CFG_INT_BATCH_THRESHOLD_RX_MAX, \
265 WLAN_CFG_INT_BATCH_THRESHOLD_RX, \
266 CFG_VALUE_OR_DEFAULT, "DP INT threshold Rx")
267
268#define CFG_DP_INT_BATCH_THRESHOLD_TX \
269 CFG_INI_UINT("dp_int_batch_threshold_tx", \
270 WLAN_CFG_INT_BATCH_THRESHOLD_TX_MIN, \
271 WLAN_CFG_INT_BATCH_THRESHOLD_TX_MAX, \
272 WLAN_CFG_INT_BATCH_THRESHOLD_TX, \
273 CFG_VALUE_OR_DEFAULT, "DP INT threshold Tx")
274
275#define CFG_DP_INT_TIMER_THRESHOLD_OTHER \
276 CFG_INI_UINT("dp_int_timer_threshold_other", \
277 WLAN_CFG_INT_TIMER_THRESHOLD_OTHER_MIN, \
278 WLAN_CFG_INT_TIMER_THRESHOLD_OTHER_MAX, \
279 WLAN_CFG_INT_TIMER_THRESHOLD_OTHER, \
280 CFG_VALUE_OR_DEFAULT, "DP INT timer threshold Other")
281
282#define CFG_DP_INT_TIMER_THRESHOLD_RX \
283 CFG_INI_UINT("dp_int_timer_threshold_rx", \
284 WLAN_CFG_INT_TIMER_THRESHOLD_RX_MIN, \
285 WLAN_CFG_INT_TIMER_THRESHOLD_RX_MAX, \
286 WLAN_CFG_INT_TIMER_THRESHOLD_RX, \
287 CFG_VALUE_OR_DEFAULT, "DP INT timer threshold Rx")
288
289#define CFG_DP_INT_TIMER_THRESHOLD_TX \
290 CFG_INI_UINT("dp_int_timer_threshold_tx", \
291 WLAN_CFG_INT_TIMER_THRESHOLD_TX_MIN, \
292 WLAN_CFG_INT_TIMER_THRESHOLD_TX_MAX, \
293 WLAN_CFG_INT_TIMER_THRESHOLD_TX, \
294 CFG_VALUE_OR_DEFAULT, "DP INT timer threshold Tx")
295
296#define CFG_DP_MAX_ALLOC_SIZE \
297 CFG_INI_UINT("dp_max_alloc_size", \
298 WLAN_CFG_MAX_ALLOC_SIZE_MIN, \
299 WLAN_CFG_MAX_ALLOC_SIZE_MAX, \
300 WLAN_CFG_MAX_ALLOC_SIZE, \
301 CFG_VALUE_OR_DEFAULT, "DP Max Alloc Size")
302
303#define CFG_DP_MAX_CLIENTS \
304 CFG_INI_UINT("dp_max_clients", \
305 WLAN_CFG_MAX_CLIENTS_MIN, \
306 WLAN_CFG_MAX_CLIENTS_MAX, \
307 WLAN_CFG_MAX_CLIENTS, \
308 CFG_VALUE_OR_DEFAULT, "DP Max Clients")
309
310#define CFG_DP_MAX_PEER_ID \
311 CFG_INI_UINT("dp_max_peer_id", \
312 WLAN_CFG_MAX_PEER_ID_MIN, \
313 WLAN_CFG_MAX_PEER_ID_MAX, \
314 WLAN_CFG_MAX_PEER_ID, \
315 CFG_VALUE_OR_DEFAULT, "DP Max Peer ID")
316
317#define CFG_DP_REO_DEST_RINGS \
318 CFG_INI_UINT("dp_reo_dest_rings", \
319 WLAN_CFG_NUM_REO_DEST_RING_MIN, \
320 WLAN_CFG_NUM_REO_DEST_RING_MAX, \
321 WLAN_CFG_NUM_REO_DEST_RING, \
322 CFG_VALUE_OR_DEFAULT, "DP REO Destination Rings")
323
324#define CFG_DP_TCL_DATA_RINGS \
325 CFG_INI_UINT("dp_tcl_data_rings", \
326 WLAN_CFG_NUM_TCL_DATA_RINGS_MIN, \
327 WLAN_CFG_NUM_TCL_DATA_RINGS_MAX, \
328 WLAN_CFG_NUM_TCL_DATA_RINGS, \
329 CFG_VALUE_OR_DEFAULT, "DP TCL Data Rings")
330
331#define CFG_DP_TX_DESC \
332 CFG_INI_UINT("dp_tx_desc", \
333 WLAN_CFG_NUM_TX_DESC_MIN, \
334 WLAN_CFG_NUM_TX_DESC_MAX, \
335 WLAN_CFG_NUM_TX_DESC, \
336 CFG_VALUE_OR_DEFAULT, "DP Tx Descriptors")
337
338#define CFG_DP_TX_EXT_DESC \
339 CFG_INI_UINT("dp_tx_ext_desc", \
340 WLAN_CFG_NUM_TX_EXT_DESC_MIN, \
341 WLAN_CFG_NUM_TX_EXT_DESC_MAX, \
342 WLAN_CFG_NUM_TX_EXT_DESC, \
343 CFG_VALUE_OR_DEFAULT, "DP Tx Ext Descriptors")
344
345#define CFG_DP_TX_EXT_DESC_POOLS \
346 CFG_INI_UINT("dp_tx_ext_desc_pool", \
347 WLAN_CFG_NUM_TXEXT_DESC_POOL_MIN, \
348 WLAN_CFG_NUM_TXEXT_DESC_POOL_MAX, \
349 WLAN_CFG_NUM_TXEXT_DESC_POOL, \
350 CFG_VALUE_OR_DEFAULT, "DP Tx Ext Descriptors Pool")
351
352#define CFG_DP_PDEV_RX_RING \
353 CFG_INI_UINT("dp_pdev_rx_ring", \
354 WLAN_CFG_PER_PDEV_RX_RING_MIN, \
355 WLAN_CFG_PER_PDEV_RX_RING_MAX, \
356 WLAN_CFG_PER_PDEV_RX_RING, \
357 CFG_VALUE_OR_DEFAULT, "DP PDEV Rx Ring")
358
359#define CFG_DP_PDEV_TX_RING \
360 CFG_INI_UINT("dp_pdev_tx_ring", \
361 WLAN_CFG_PER_PDEV_TX_RING_MIN, \
362 WLAN_CFG_PER_PDEV_TX_RING_MAX, \
363 WLAN_CFG_PER_PDEV_TX_RING, \
364 CFG_VALUE_OR_DEFAULT, \
365 "DP PDEV Tx Ring")
366
367#define CFG_DP_RX_DEFRAG_TIMEOUT \
368 CFG_INI_UINT("dp_rx_defrag_timeout", \
369 WLAN_CFG_RX_DEFRAG_TIMEOUT_MIN, \
370 WLAN_CFG_RX_DEFRAG_TIMEOUT_MAX, \
371 WLAN_CFG_RX_DEFRAG_TIMEOUT, \
372 CFG_VALUE_OR_DEFAULT, "DP Rx Defrag Timeout")
373
374#define CFG_DP_TX_COMPL_RING_SIZE \
375 CFG_INI_UINT("dp_tx_compl_ring_size", \
376 WLAN_CFG_TX_COMP_RING_SIZE_MIN, \
377 WLAN_CFG_TX_COMP_RING_SIZE_MAX, \
378 WLAN_CFG_TX_COMP_RING_SIZE, \
379 CFG_VALUE_OR_DEFAULT, "DP Tx Completion Ring Size")
380
381#define CFG_DP_TX_RING_SIZE \
382 CFG_INI_UINT("dp_tx_ring_size", \
383 WLAN_CFG_TX_RING_SIZE_MIN,\
384 WLAN_CFG_TX_RING_SIZE_MAX,\
385 WLAN_CFG_TX_RING_SIZE,\
386 CFG_VALUE_OR_DEFAULT, "DP Tx Ring Size")
387
388#define CFG_DP_NSS_COMP_RING_SIZE \
389 CFG_INI_UINT("dp_nss_comp_ring_size", \
390 WLAN_CFG_NSS_TX_COMP_RING_SIZE_MIN, \
391 WLAN_CFG_NSS_TX_COMP_RING_SIZE_MAX, \
392 WLAN_CFG_NSS_TX_COMP_RING_SIZE, \
393 CFG_VALUE_OR_DEFAULT, "DP NSS completion Ring Size")
394
395#define CFG_DP_PDEV_LMAC_RING \
396 CFG_INI_UINT("dp_pdev_lmac_ring", \
397 WLAN_CFG_PER_PDEV_LMAC_RING_MIN, \
398 WLAN_CFG_PER_PDEV_LMAC_RING_MAX, \
399 WLAN_CFG_PER_PDEV_LMAC_RING, \
400 CFG_VALUE_OR_DEFAULT, "DP pdev LMAC ring")
401
402#define CFG_DP_BASE_HW_MAC_ID \
403 CFG_INI_UINT("dp_base_hw_macid", \
404 0, 1, 1, \
405 CFG_VALUE_OR_DEFAULT, "DP Base HW Mac ID")
406
Vivek126db5d2018-07-25 22:05:04 +0530407#define CFG_DP_RX_HASH \
408 CFG_INI_BOOL("dp_rx_hash", true, \
409 "DP Rx Hash")
410
411#define CFG_DP_TSO \
412 CFG_INI_BOOL("TSOEnable", false, \
413 "DP TSO Enabled")
414
Akshay Kosigia4f6e172018-09-03 21:42:27 +0530415#define CFG_DP_LRO \
416 CFG_INI_BOOL("LROEnable", WLAN_LRO_ENABLE, \
417 "DP LRO Enable")
418
419#define CFG_DP_SG \
420 CFG_INI_BOOL("dp_sg_support", false, \
421 "DP SG Enable")
422
423#define CFG_DP_GRO \
424 CFG_INI_BOOL("GROEnable", false, \
425 "DP GRO Enable")
426
427#define CFG_DP_OL_TX_CSUM \
428 CFG_INI_BOOL("dp_offload_tx_csum_support", false, \
429 "DP tx csum Enable")
430
431#define CFG_DP_OL_RX_CSUM \
432 CFG_INI_BOOL("dp_offload_rx_csum_support", false, \
433 "DP rx csum Enable")
434
435#define CFG_DP_RAWMODE \
436 CFG_INI_BOOL("dp_rawmode_support", false, \
437 "DP rawmode Enable")
438
439#define CFG_DP_PEER_FLOW_CTRL \
440 CFG_INI_BOOL("dp_peer_flow_control_support", false, \
441 "DP peer flow ctrl Enable")
442
Vivek126db5d2018-07-25 22:05:04 +0530443#define CFG_DP_NAPI \
444 CFG_INI_BOOL("dp_napi_enabled", MCL_OR_WIN_VALUE(true, false), \
445 "DP Napi Enabled")
446
447#define CFG_DP_TCP_UDP_CKSUM_OFFLOAD \
jitiphil60ac9aa2018-10-05 19:54:04 +0530448 CFG_INI_BOOL("gEnableIpTcpUdpChecksumOffload", true, \
Vivek126db5d2018-07-25 22:05:04 +0530449 "DP TCP UDP Checksum Offload")
450
451#define CFG_DP_DEFRAG_TIMEOUT_CHECK \
452 CFG_INI_BOOL("dp_defrag_timeout_check", true, \
453 "DP Defrag Timeout Check")
454
455#define CFG_DP_WBM_RELEASE_RING \
456 CFG_INI_UINT("dp_wbm_release_ring", \
457 WLAN_CFG_WBM_RELEASE_RING_SIZE_MIN, \
458 WLAN_CFG_WBM_RELEASE_RING_SIZE_MAX, \
459 WLAN_CFG_WBM_RELEASE_RING_SIZE, \
460 CFG_VALUE_OR_DEFAULT, "DP WBM Release Ring")
461
462#define CFG_DP_TCL_CMD_RING \
463 CFG_INI_UINT("dp_tcl_cmd_ring", \
464 WLAN_CFG_TCL_CMD_RING_SIZE_MIN, \
465 WLAN_CFG_TCL_CMD_RING_SIZE_MAX, \
466 WLAN_CFG_TCL_CMD_RING_SIZE, \
467 CFG_VALUE_OR_DEFAULT, "DP TCL command ring")
468
469#define CFG_DP_TCL_STATUS_RING \
470 CFG_INI_UINT("dp_tcl_status_ring",\
471 WLAN_CFG_TCL_STATUS_RING_SIZE_MIN, \
472 WLAN_CFG_TCL_STATUS_RING_SIZE_MAX, \
473 WLAN_CFG_TCL_STATUS_RING_SIZE, \
474 CFG_VALUE_OR_DEFAULT, "DP TCL status ring")
475
476#define CFG_DP_REO_REINJECT_RING \
477 CFG_INI_UINT("dp_reo_reinject_ring", \
478 WLAN_CFG_REO_REINJECT_RING_SIZE_MIN, \
479 WLAN_CFG_REO_REINJECT_RING_SIZE_MAX, \
480 WLAN_CFG_REO_REINJECT_RING_SIZE, \
481 CFG_VALUE_OR_DEFAULT, "DP REO reinject ring")
482
483#define CFG_DP_RX_RELEASE_RING \
484 CFG_INI_UINT("dp_rx_release_ring", \
485 WLAN_CFG_RX_RELEASE_RING_SIZE_MIN, \
486 WLAN_CFG_RX_RELEASE_RING_SIZE_MAX, \
487 WLAN_CFG_RX_RELEASE_RING_SIZE, \
488 CFG_VALUE_OR_DEFAULT, "DP Rx release ring")
489
490#define CFG_DP_REO_EXCEPTION_RING \
491 CFG_INI_UINT("dp_reo_exception_ring", \
492 WLAN_CFG_REO_EXCEPTION_RING_SIZE_MIN, \
493 WLAN_CFG_REO_EXCEPTION_RING_SIZE_MAX, \
494 WLAN_CFG_REO_EXCEPTION_RING_SIZE, \
495 CFG_VALUE_OR_DEFAULT, "DP REO exception ring")
496
497#define CFG_DP_REO_CMD_RING \
498 CFG_INI_UINT("dp_reo_cmd_ring", \
499 WLAN_CFG_REO_CMD_RING_SIZE_MIN, \
500 WLAN_CFG_REO_CMD_RING_SIZE_MAX, \
501 WLAN_CFG_REO_CMD_RING_SIZE, \
502 CFG_VALUE_OR_DEFAULT, "DP REO command ring")
503
504#define CFG_DP_REO_STATUS_RING \
505 CFG_INI_UINT("dp_reo_status_ring", \
506 WLAN_CFG_REO_STATUS_RING_SIZE_MIN, \
507 WLAN_CFG_REO_STATUS_RING_SIZE_MAX, \
508 WLAN_CFG_REO_STATUS_RING_SIZE, \
509 CFG_VALUE_OR_DEFAULT, "DP REO status ring")
510
511#define CFG_DP_RXDMA_BUF_RING \
512 CFG_INI_UINT("dp_rxdma_buf_ring", \
513 WLAN_CFG_RXDMA_BUF_RING_SIZE_MIN, \
514 WLAN_CFG_RXDMA_BUF_RING_SIZE_MAX, \
515 WLAN_CFG_RXDMA_BUF_RING_SIZE, \
516 CFG_VALUE_OR_DEFAULT, "DP RXDMA buffer ring")
517
518#define CFG_DP_RXDMA_REFILL_RING \
519 CFG_INI_UINT("dp_rxdma_refill_ring", \
520 WLAN_CFG_RXDMA_REFILL_RING_SIZE_MIN, \
521 WLAN_CFG_RXDMA_REFILL_RING_SIZE_MAX, \
522 WLAN_CFG_RXDMA_REFILL_RING_SIZE, \
523 CFG_VALUE_OR_DEFAULT, "DP RXDMA refilll ring")
524
525#define CFG_DP_RXDMA_MONITOR_BUF_RING \
526 CFG_INI_UINT("dp_rxdma_monitor_buf_ring", \
527 WLAN_CFG_RXDMA_MONITOR_BUF_RING_SIZE_MIN, \
528 WLAN_CFG_RXDMA_MONITOR_BUF_RING_SIZE_MAX, \
529 WLAN_CFG_RXDMA_MONITOR_BUF_RING_SIZE, \
530 CFG_VALUE_OR_DEFAULT, "DP RXDMA monitor buffer ring")
531
532#define CFG_DP_RXDMA_MONITOR_DST_RING \
533 CFG_INI_UINT("dp_rxdma_monitor_dst_ring", \
534 WLAN_CFG_RXDMA_MONITOR_DST_RING_SIZE_MIN, \
535 WLAN_CFG_RXDMA_MONITOR_DST_RING_SIZE_MAX, \
536 WLAN_CFG_RXDMA_MONITOR_DST_RING_SIZE, \
537 CFG_VALUE_OR_DEFAULT, "DP RXDMA monitor destination ring")
538
539#define CFG_DP_RXDMA_MONITOR_STATUS_RING \
540 CFG_INI_UINT("dp_rxdma_monitor_status_ring", \
541 WLAN_CFG_RXDMA_MONITOR_STATUS_RING_SIZE_MIN, \
542 WLAN_CFG_RXDMA_MONITOR_STATUS_RING_SIZE_MAX, \
543 WLAN_CFG_RXDMA_MONITOR_STATUS_RING_SIZE, \
544 CFG_VALUE_OR_DEFAULT, "DP RXDMA monitor status ring")
545
546#define CFG_DP_RXDMA_MONITOR_DESC_RING \
547 CFG_INI_UINT("dp_rxdma_monitor_desc_ring", \
548 WLAN_CFG_RXDMA_MONITOR_DESC_RING_SIZE_MIN, \
549 WLAN_CFG_RXDMA_MONITOR_DESC_RING_SIZE_MAX, \
550 WLAN_CFG_RXDMA_MONITOR_DESC_RING_SIZE, \
551 CFG_VALUE_OR_DEFAULT, "DP RXDMA monitor destination ring")
552
553#define CFG_DP_RXDMA_ERR_DST_RING \
554 CFG_INI_UINT("dp_rxdma_err_dst_ring", \
555 WLAN_CFG_RXDMA_ERR_DST_RING_SIZE_MIN, \
556 WLAN_CFG_RXDMA_ERR_DST_RING_SIZE_MAX, \
557 WLAN_CFG_RXDMA_ERR_DST_RING_SIZE, \
558 CFG_VALUE_OR_DEFAULT, "RXDMA err destination ring")
559
Krunal Soni03ba0f52019-02-12 11:44:46 -0800560#define CFG_DP_PER_PKT_LOGGING \
561 CFG_INI_UINT("enable_verbose_debug", \
562 0, 0xffff, 0, \
563 CFG_VALUE_OR_DEFAULT, "Enable excessive per packet logging")
564
jitiphil60ac9aa2018-10-05 19:54:04 +0530565#define CFG_DP_TX_FLOW_START_QUEUE_OFFSET \
566 CFG_INI_UINT("TxFlowStartQueueOffset", \
567 0, 30, WLAN_CFG_TX_FLOW_START_QUEUE_OFFSET, \
568 CFG_VALUE_OR_DEFAULT, "Start queue offset")
569
570#define CFG_DP_TX_FLOW_STOP_QUEUE_TH \
571 CFG_INI_UINT("TxFlowStopQueueThreshold", \
572 0, 50, 15, \
573 CFG_VALUE_OR_DEFAULT, "Stop queue Threshold")
574
575#define CFG_DP_IPA_UC_TX_BUF_SIZE \
576 CFG_INI_UINT("IpaUcTxBufSize", \
577 0, 4096, WLAN_CFG_IPA_UC_TX_BUF_SIZE, \
578 CFG_VALUE_OR_DEFAULT, "IPA tx buffer size")
579
580#define CFG_DP_IPA_UC_TX_PARTITION_BASE \
581 CFG_INI_UINT("IpaUcTxPartitionBase", \
582 0, 9000, WLAN_CFG_IPA_UC_TX_PARTITION_BASE, \
583 CFG_VALUE_OR_DEFAULT, "IPA tx partition base")
584
585#define CFG_DP_IPA_UC_RX_IND_RING_COUNT \
586 CFG_INI_UINT("IpaUcRxIndRingCount", \
587 0, 2048, WLAN_CFG_IPA_UC_RX_IND_RING_COUNT, \
588 CFG_VALUE_OR_DEFAULT, "IPA rx indication ring count")
589
590#define CFG_DP_REORDER_OFFLOAD_SUPPORT \
591 CFG_INI_UINT("gReorderOffloadSupported", \
592 0, 1, 1, \
593 CFG_VALUE_OR_DEFAULT, "Packet reordering offload to firmware")
594
595#define CFG_DP_AP_STA_SECURITY_SEPERATION \
596 CFG_INI_BOOL("gDisableIntraBssFwd", \
597 false, "Disable intrs BSS Rx packets")
598
599#define CFG_DP_ENABLE_DATA_STALL_DETECTION \
600 CFG_INI_BOOL("gEnableDataStallDetection", \
601 true, "Enable/Disable Data stall detection")
602
Vivek126db5d2018-07-25 22:05:04 +0530603#define CFG_DP \
604 CFG(CFG_DP_HTT_PACKET_TYPE) \
605 CFG(CFG_DP_INT_BATCH_THRESHOLD_OTHER) \
606 CFG(CFG_DP_INT_BATCH_THRESHOLD_RX) \
607 CFG(CFG_DP_INT_BATCH_THRESHOLD_TX) \
608 CFG(CFG_DP_INT_TIMER_THRESHOLD_OTHER) \
609 CFG(CFG_DP_INT_TIMER_THRESHOLD_RX) \
610 CFG(CFG_DP_INT_TIMER_THRESHOLD_TX) \
611 CFG(CFG_DP_MAX_ALLOC_SIZE) \
612 CFG(CFG_DP_MAX_CLIENTS) \
613 CFG(CFG_DP_MAX_PEER_ID) \
614 CFG(CFG_DP_REO_DEST_RINGS) \
615 CFG(CFG_DP_TCL_DATA_RINGS) \
616 CFG(CFG_DP_TX_DESC) \
617 CFG(CFG_DP_TX_EXT_DESC) \
618 CFG(CFG_DP_TX_EXT_DESC_POOLS) \
619 CFG(CFG_DP_PDEV_RX_RING) \
620 CFG(CFG_DP_PDEV_TX_RING) \
621 CFG(CFG_DP_RX_DEFRAG_TIMEOUT) \
622 CFG(CFG_DP_TX_COMPL_RING_SIZE) \
623 CFG(CFG_DP_TX_RING_SIZE) \
624 CFG(CFG_DP_NSS_COMP_RING_SIZE) \
625 CFG(CFG_DP_PDEV_LMAC_RING) \
626 CFG(CFG_DP_BASE_HW_MAC_ID) \
Vivek126db5d2018-07-25 22:05:04 +0530627 CFG(CFG_DP_RX_HASH) \
628 CFG(CFG_DP_TSO) \
Akshay Kosigia4f6e172018-09-03 21:42:27 +0530629 CFG(CFG_DP_LRO) \
630 CFG(CFG_DP_SG) \
631 CFG(CFG_DP_GRO) \
632 CFG(CFG_DP_OL_TX_CSUM) \
633 CFG(CFG_DP_OL_RX_CSUM) \
634 CFG(CFG_DP_RAWMODE) \
635 CFG(CFG_DP_PEER_FLOW_CTRL) \
Vivek126db5d2018-07-25 22:05:04 +0530636 CFG(CFG_DP_NAPI) \
637 CFG(CFG_DP_TCP_UDP_CKSUM_OFFLOAD) \
638 CFG(CFG_DP_DEFRAG_TIMEOUT_CHECK) \
639 CFG(CFG_DP_WBM_RELEASE_RING) \
640 CFG(CFG_DP_TCL_CMD_RING) \
641 CFG(CFG_DP_TCL_STATUS_RING) \
642 CFG(CFG_DP_REO_REINJECT_RING) \
643 CFG(CFG_DP_RX_RELEASE_RING) \
644 CFG(CFG_DP_REO_EXCEPTION_RING) \
645 CFG(CFG_DP_REO_CMD_RING) \
646 CFG(CFG_DP_REO_STATUS_RING) \
647 CFG(CFG_DP_RXDMA_BUF_RING) \
648 CFG(CFG_DP_RXDMA_REFILL_RING) \
649 CFG(CFG_DP_RXDMA_MONITOR_BUF_RING) \
650 CFG(CFG_DP_RXDMA_MONITOR_DST_RING) \
651 CFG(CFG_DP_RXDMA_MONITOR_STATUS_RING) \
652 CFG(CFG_DP_RXDMA_MONITOR_DESC_RING) \
jitiphil60ac9aa2018-10-05 19:54:04 +0530653 CFG(CFG_DP_RXDMA_ERR_DST_RING) \
Krunal Soni03ba0f52019-02-12 11:44:46 -0800654 CFG(CFG_DP_PER_PKT_LOGGING) \
jitiphil60ac9aa2018-10-05 19:54:04 +0530655 CFG(CFG_DP_TX_FLOW_START_QUEUE_OFFSET) \
656 CFG(CFG_DP_TX_FLOW_STOP_QUEUE_TH) \
657 CFG(CFG_DP_IPA_UC_TX_BUF_SIZE) \
658 CFG(CFG_DP_IPA_UC_TX_PARTITION_BASE) \
659 CFG(CFG_DP_IPA_UC_RX_IND_RING_COUNT) \
660 CFG(CFG_DP_REORDER_OFFLOAD_SUPPORT) \
661 CFG(CFG_DP_AP_STA_SECURITY_SEPERATION) \
662 CFG(CFG_DP_ENABLE_DATA_STALL_DETECTION)
Vivek126db5d2018-07-25 22:05:04 +0530663
664#endif /* _CFG_DP_H_ */