xref: /wlan-driver/qcacld-3.0/core/hdd/inc/hdd_dp_cfg.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
4*5113495bSYour Name  *
5*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
6*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
7*5113495bSYour Name  * above copyright notice and this permission notice appear in all
8*5113495bSYour Name  * copies.
9*5113495bSYour Name  *
10*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
18*5113495bSYour Name  */
19*5113495bSYour Name 
20*5113495bSYour Name /**
21*5113495bSYour Name  * DOC: This file contains centralized definitions of converged configuration.
22*5113495bSYour Name  */
23*5113495bSYour Name 
24*5113495bSYour Name #ifndef __HDD_DP_CONFIG_H
25*5113495bSYour Name #define __HDD_DP_CONFIG_H
26*5113495bSYour Name 
27*5113495bSYour Name #define CFG_ENABLE_RX_THREAD		BIT(0)
28*5113495bSYour Name #define CFG_ENABLE_RPS			BIT(1)
29*5113495bSYour Name #define CFG_ENABLE_NAPI			BIT(2)
30*5113495bSYour Name #define CFG_ENABLE_DYNAMIC_RPS		BIT(3)
31*5113495bSYour Name #define CFG_ENABLE_DP_RX_THREADS	BIT(4)
32*5113495bSYour Name #define CFG_RX_MODE_MAX (CFG_ENABLE_RX_THREAD | \
33*5113495bSYour Name 					  CFG_ENABLE_RPS | \
34*5113495bSYour Name 					  CFG_ENABLE_NAPI | \
35*5113495bSYour Name 					  CFG_ENABLE_DYNAMIC_RPS | \
36*5113495bSYour Name 					  CFG_ENABLE_DP_RX_THREADS)
37*5113495bSYour Name #ifdef MDM_PLATFORM
38*5113495bSYour Name #define CFG_RX_MODE_DEFAULT 0
39*5113495bSYour Name #elif defined(HELIUMPLUS)
40*5113495bSYour Name #define CFG_RX_MODE_DEFAULT CFG_ENABLE_NAPI
41*5113495bSYour Name #endif
42*5113495bSYour Name 
43*5113495bSYour Name #ifndef CFG_RX_MODE_DEFAULT
44*5113495bSYour Name #if defined(FEATURE_WLAN_DP_RX_THREADS)
45*5113495bSYour Name #define CFG_RX_MODE_DEFAULT (CFG_ENABLE_DP_RX_THREADS | CFG_ENABLE_NAPI)
46*5113495bSYour Name #else
47*5113495bSYour Name #define CFG_RX_MODE_DEFAULT (CFG_ENABLE_RX_THREAD | CFG_ENABLE_NAPI)
48*5113495bSYour Name #endif
49*5113495bSYour Name #endif
50*5113495bSYour Name 
51*5113495bSYour Name /* Max # of packets to be processed in 1 tx comp loop */
52*5113495bSYour Name #define CFG_DP_TX_COMP_LOOP_PKT_LIMIT_DEFAULT 64
53*5113495bSYour Name #define CFG_DP_TX_COMP_LOOP_PKT_LIMIT_MAX (1024 * 1024)
54*5113495bSYour Name 
55*5113495bSYour Name /*Max # of packets to be processed in 1 rx reap loop */
56*5113495bSYour Name #define CFG_DP_RX_REAP_LOOP_PKT_LIMIT_DEFAULT 64
57*5113495bSYour Name #define CFG_DP_RX_REAP_LOOP_PKT_LIMIT_MAX (1024 * 1024)
58*5113495bSYour Name 
59*5113495bSYour Name /* Max # of HP OOS (out of sync) updates */
60*5113495bSYour Name #define CFG_DP_RX_HP_OOS_UPDATE_LIMIT_DEFAULT 0
61*5113495bSYour Name #define CFG_DP_RX_HP_OOS_UPDATE_LIMIT_MAX 1024
62*5113495bSYour Name 
63*5113495bSYour Name /* Max Yield time duration for RX Softirq */
64*5113495bSYour Name #define CFG_DP_RX_SOFTIRQ_MAX_YIELD_TIME_NS_DEFAULT (500 * 1000)
65*5113495bSYour Name #define CFG_DP_RX_SOFTIRQ_MAX_YIELD_TIME_NS_MAX (10 * 1000 * 1000)
66*5113495bSYour Name 
67*5113495bSYour Name #ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
68*5113495bSYour Name 
69*5113495bSYour Name /*
70*5113495bSYour Name  * <ini>
71*5113495bSYour Name  * TxFlowLowWaterMark - Low watermark for pausing network queues
72*5113495bSYour Name  *
73*5113495bSYour Name  * @Min: 0
74*5113495bSYour Name  * @Max: 1000
75*5113495bSYour Name  * @Default: 300
76*5113495bSYour Name  *
77*5113495bSYour Name  * This ini specifies the low watermark of data packets transmitted
78*5113495bSYour Name  * before pausing netif queues in tx flow path. It is only applicable
79*5113495bSYour Name  * where legacy flow control is used i.e.for Rome.
80*5113495bSYour Name  *
81*5113495bSYour Name  * Related: TxFlowHighWaterMarkOffset, TxFlowMaxQueueDepth,
82*5113495bSYour Name  *          TxLbwFlowLowWaterMark, TxLbwFlowHighWaterMarkOffset,
83*5113495bSYour Name  *          TxLbwFlowMaxQueueDepth, TxHbwFlowLowWaterMark,
84*5113495bSYour Name  *          TxHbwFlowHighWaterMarkOffset, TxHbwFlowMaxQueueDepth
85*5113495bSYour Name  *
86*5113495bSYour Name  * Supported Feature: Dynamic Flow Control
87*5113495bSYour Name  *
88*5113495bSYour Name  * Usage: Internal
89*5113495bSYour Name  *
90*5113495bSYour Name  * </ini>
91*5113495bSYour Name  */
92*5113495bSYour Name #define CFG_DP_LL_TX_FLOW_LWM \
93*5113495bSYour Name 		CFG_INI_UINT( \
94*5113495bSYour Name 		"TxFlowLowWaterMark", \
95*5113495bSYour Name 		0, \
96*5113495bSYour Name 		1000, \
97*5113495bSYour Name 		300, \
98*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
99*5113495bSYour Name 		"Low watermark for pausing network queues")
100*5113495bSYour Name 
101*5113495bSYour Name /*
102*5113495bSYour Name  * <ini>
103*5113495bSYour Name  * TxFlowHighWaterMarkOffset - High Watermark offset to unpause Netif queues
104*5113495bSYour Name  * @Min: 0
105*5113495bSYour Name  * @Max: 300
106*5113495bSYour Name  * @Default: 94
107*5113495bSYour Name  *
108*5113495bSYour Name  * This ini specifies the offset to upause the netif queues
109*5113495bSYour Name  * when they are paused due to insufficient descriptors as guided by
110*5113495bSYour Name  * ini TxFlowLowWaterMark. It is only applicable where legacy flow control
111*5113495bSYour Name  * is used i.e.for Rome.
112*5113495bSYour Name  *
113*5113495bSYour Name  * Related: TxFlowLowWaterMark, TxFlowMaxQueueDepth,
114*5113495bSYour Name  *          TxLbwFlowLowWaterMark, TxLbwFlowHighWaterMarkOffset,
115*5113495bSYour Name  *          TxLbwFlowMaxQueueDepth, TxHbwFlowLowWaterMark,
116*5113495bSYour Name  *          TxHbwFlowHighWaterMarkOffset, TxHbwFlowMaxQueueDepth
117*5113495bSYour Name  *
118*5113495bSYour Name  * Supported Feature: Dynamic Flow Control
119*5113495bSYour Name  *
120*5113495bSYour Name  * Usage: Internal
121*5113495bSYour Name  *
122*5113495bSYour Name  * </ini>
123*5113495bSYour Name  */
124*5113495bSYour Name #define CFG_DP_LL_TX_FLOW_HWM_OFFSET \
125*5113495bSYour Name 		CFG_INI_UINT( \
126*5113495bSYour Name 		"TxFlowHighWaterMarkOffset", \
127*5113495bSYour Name 		0, \
128*5113495bSYour Name 		300, \
129*5113495bSYour Name 		94, \
130*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
131*5113495bSYour Name 		"High Watermark offset to unpause Netif queues")
132*5113495bSYour Name 
133*5113495bSYour Name /*
134*5113495bSYour Name  * <ini>
135*5113495bSYour Name  * TxFlowMaxQueueDepth - Max pause queue depth.
136*5113495bSYour Name  *
137*5113495bSYour Name  * @Min: 400
138*5113495bSYour Name  * @Max: 3500
139*5113495bSYour Name  * @Default: 1500
140*5113495bSYour Name  *
141*5113495bSYour Name  * This ini specifies the max queue pause depth.It is only applicable
142*5113495bSYour Name  * where legacy flow control is used i.e.for Rome.
143*5113495bSYour Name  *
144*5113495bSYour Name  * Related: TxFlowLowWaterMark, TxFlowHighWaterMarkOffset,
145*5113495bSYour Name  *          TxLbwFlowLowWaterMark, TxLbwFlowHighWaterMarkOffset,
146*5113495bSYour Name  *          TxLbwFlowMaxQueueDepth, TxHbwFlowLowWaterMark,
147*5113495bSYour Name  *          TxHbwFlowHighWaterMarkOffset, TxHbwFlowMaxQueueDepth
148*5113495bSYour Name  *
149*5113495bSYour Name  * Supported Feature: Dynamic Flow Control
150*5113495bSYour Name  *
151*5113495bSYour Name  * Usage: Internal
152*5113495bSYour Name  *
153*5113495bSYour Name  * </ini>
154*5113495bSYour Name  */
155*5113495bSYour Name #define CFG_DP_LL_TX_FLOW_MAX_Q_DEPTH \
156*5113495bSYour Name 		CFG_INI_UINT( \
157*5113495bSYour Name 		"TxFlowMaxQueueDepth", \
158*5113495bSYour Name 		400, \
159*5113495bSYour Name 		3500, \
160*5113495bSYour Name 		1500, \
161*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
162*5113495bSYour Name 		"Max pause queue depth")
163*5113495bSYour Name 
164*5113495bSYour Name /*
165*5113495bSYour Name  * <ini>
166*5113495bSYour Name  * TxLbwFlowLowWaterMark - Low watermark for pausing network queues
167*5113495bSYour Name  *                         in low bandwidth band
168*5113495bSYour Name  * @Min: 0
169*5113495bSYour Name  * @Max: 1000
170*5113495bSYour Name  * @Default: 450
171*5113495bSYour Name  *
172*5113495bSYour Name  * This ini specifies the low watermark of data packets transmitted
173*5113495bSYour Name  * before pausing netif queues in tx flow path in low bandwidth band.
174*5113495bSYour Name  * It is only applicable where legacy flow control is used i.e.for Rome.
175*5113495bSYour Name  *
176*5113495bSYour Name  * Related: TxFlowLowWaterMark, TxFlowHighWaterMarkOffset,
177*5113495bSYour Name  *          TxFlowMaxQueueDepth, TxLbwFlowHighWaterMarkOffset,
178*5113495bSYour Name  *          TxLbwFlowMaxQueueDepth, TxHbwFlowLowWaterMark,
179*5113495bSYour Name  *          TxHbwFlowHighWaterMarkOffset, TxHbwFlowMaxQueueDepth
180*5113495bSYour Name  *
181*5113495bSYour Name  * Supported Feature: Dynamic Flow Control
182*5113495bSYour Name  *
183*5113495bSYour Name  * Usage: Internal
184*5113495bSYour Name  *
185*5113495bSYour Name  * </ini>
186*5113495bSYour Name  */
187*5113495bSYour Name #define CFG_DP_LL_TX_LBW_FLOW_LWM \
188*5113495bSYour Name 		CFG_INI_UINT( \
189*5113495bSYour Name 		"TxLbwFlowLowWaterMark", \
190*5113495bSYour Name 		0, \
191*5113495bSYour Name 		1000, \
192*5113495bSYour Name 		450, \
193*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
194*5113495bSYour Name 		"Low watermark for pausing network queues")
195*5113495bSYour Name 
196*5113495bSYour Name /*
197*5113495bSYour Name  * <ini>
198*5113495bSYour Name  * TxLbwFlowHighWaterMarkOffset - High Watermark offset to unpause Netif queues
199*5113495bSYour Name  *                                in low bandwidth band.
200*5113495bSYour Name  * @Min: 0
201*5113495bSYour Name  * @Max: 300
202*5113495bSYour Name  * @Default: 50
203*5113495bSYour Name  *
204*5113495bSYour Name  * This ini specifies the offset to upause the netif queues
205*5113495bSYour Name  * when they are paused due to insufficient descriptors as guided by
206*5113495bSYour Name  * ini TxLbwFlowLowWaterMark in low bandwidth band. It is only applicable
207*5113495bSYour Name  * where legacy flow control is used i.e.for Rome.
208*5113495bSYour Name  *
209*5113495bSYour Name  * Related: TxFlowLowWaterMark, TxFlowHighWaterMarkOffset,
210*5113495bSYour Name  *          TxFlowMaxQueueDepth, TxLbwFlowLowWaterMark,
211*5113495bSYour Name  *          TxLbwFlowMaxQueueDepth, TxHbwFlowLowWaterMark,
212*5113495bSYour Name  *          TxHbwFlowHighWaterMarkOffset, TxHbwFlowMaxQueueDepth
213*5113495bSYour Name  *
214*5113495bSYour Name  * Supported Feature: Dynamic Flow Control
215*5113495bSYour Name  *
216*5113495bSYour Name  * Usage: Internal
217*5113495bSYour Name  *
218*5113495bSYour Name  * </ini>
219*5113495bSYour Name  */
220*5113495bSYour Name #define CFG_DP_LL_TX_LBW_FLOW_HWM_OFFSET \
221*5113495bSYour Name 		CFG_INI_UINT( \
222*5113495bSYour Name 		"TxLbwFlowHighWaterMarkOffset", \
223*5113495bSYour Name 		0, \
224*5113495bSYour Name 		300, \
225*5113495bSYour Name 		50, \
226*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
227*5113495bSYour Name 		"High Watermark offset to unpause Netif queues")
228*5113495bSYour Name 
229*5113495bSYour Name /*
230*5113495bSYour Name  * <ini>
231*5113495bSYour Name  * TxLbwFlowMaxQueueDepth - Max pause queue depth in low bandwidth band
232*5113495bSYour Name  *
233*5113495bSYour Name  * @Min: 400
234*5113495bSYour Name  * @Max: 3500
235*5113495bSYour Name  * @Default: 750
236*5113495bSYour Name  *
237*5113495bSYour Name  * This ini specifies the max queue pause depth in low bandwidth band.
238*5113495bSYour Name  * It is only applicable where legacy flow control is used i.e.for Rome.
239*5113495bSYour Name  *
240*5113495bSYour Name  * Related: TxFlowLowWaterMark, TxFlowHighWaterMarkOffset,
241*5113495bSYour Name  *          TxFlowMaxQueueDepth, TxLbwFlowLowWaterMark,
242*5113495bSYour Name  *          TxLbwFlowHighWaterMarkOffset, TxHbwFlowLowWaterMark,
243*5113495bSYour Name  *          TxHbwFlowHighWaterMarkOffset, TxHbwFlowMaxQueueDepth
244*5113495bSYour Name  *
245*5113495bSYour Name  * Supported Feature: Dynamic Flow Control
246*5113495bSYour Name  *
247*5113495bSYour Name  * Usage: Internal
248*5113495bSYour Name  *
249*5113495bSYour Name  * </ini>
250*5113495bSYour Name  */
251*5113495bSYour Name #define CFG_DP_LL_TX_LBW_FLOW_MAX_Q_DEPTH \
252*5113495bSYour Name 		CFG_INI_UINT( \
253*5113495bSYour Name 		"TxLbwFlowMaxQueueDepth", \
254*5113495bSYour Name 		400, \
255*5113495bSYour Name 		3500, \
256*5113495bSYour Name 		750, \
257*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
258*5113495bSYour Name 		"Max pause queue depth in low bandwidth band")
259*5113495bSYour Name 
260*5113495bSYour Name /*
261*5113495bSYour Name  * <ini>
262*5113495bSYour Name  * TxHbwFlowLowWaterMark - Low watermark for pausing network queues
263*5113495bSYour Name  *                         in high bandwidth band
264*5113495bSYour Name  * @Min: 0
265*5113495bSYour Name  * @Max: 1000
266*5113495bSYour Name  * @Default: 406
267*5113495bSYour Name  *
268*5113495bSYour Name  * This ini specifies the threshold of data packets transmitted
269*5113495bSYour Name  * before pausing netif queues.It is only applicable where
270*5113495bSYour Name  * legacy flow control is used i.e.for Rome.
271*5113495bSYour Name  *
272*5113495bSYour Name  * Related: TxFlowLowWaterMark, TxFlowHighWaterMarkOffset,
273*5113495bSYour Name  *          TxFlowMaxQueueDepth, TxLbwFlowLowWaterMark,
274*5113495bSYour Name  *          TxLbwFlowHighWaterMarkOffset, TxLbwFlowMaxQueueDepth,
275*5113495bSYour Name  *          TxHbwFlowHighWaterMarkOffset, TxHbwFlowMaxQueueDepth
276*5113495bSYour Name  *
277*5113495bSYour Name  * Supported Feature: Dynamic Flow Control
278*5113495bSYour Name  *
279*5113495bSYour Name  * Usage: Internal
280*5113495bSYour Name  *
281*5113495bSYour Name  * </ini>
282*5113495bSYour Name  */
283*5113495bSYour Name #define CFG_DP_LL_TX_HBW_FLOW_LWM \
284*5113495bSYour Name 		CFG_INI_UINT( \
285*5113495bSYour Name 		"TxHbwFlowLowWaterMark", \
286*5113495bSYour Name 		0, \
287*5113495bSYour Name 		1000, \
288*5113495bSYour Name 		406, \
289*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
290*5113495bSYour Name 		"Low watermark for pausing network queues")
291*5113495bSYour Name 
292*5113495bSYour Name /*
293*5113495bSYour Name  * <ini>
294*5113495bSYour Name  * TxHbwFlowHighWaterMarkOffset - High Watermark offset to unpause Netif queues
295*5113495bSYour Name  *                                in high bandwidth band.
296*5113495bSYour Name  * @Min: 0
297*5113495bSYour Name  * @Max: 300
298*5113495bSYour Name  * @Default: 94
299*5113495bSYour Name  *
300*5113495bSYour Name  * This ini specifies the offset to upause the netif queues
301*5113495bSYour Name  * when they are paused due to insufficient descriptors as guided by
302*5113495bSYour Name  * ini TxHbwFlowLowWaterMark in high bandwidth band. It is only applicable
303*5113495bSYour Name  * where legacy flow control is used i.e.for Rome.
304*5113495bSYour Name  *
305*5113495bSYour Name  * Related: TxFlowLowWaterMark, TxFlowHighWaterMarkOffset,
306*5113495bSYour Name  *          TxFlowMaxQueueDepth, TxLbwFlowLowWaterMark,
307*5113495bSYour Name  *          TxLbwFlowHighWaterMarkOffset, TxLbwFlowMaxQueueDepth,
308*5113495bSYour Name  *          TxHbwFlowLowWaterMark, TxHbwFlowMaxQueueDepth
309*5113495bSYour Name  *
310*5113495bSYour Name  * Supported Feature: Dynamic Flow Control
311*5113495bSYour Name  *
312*5113495bSYour Name  * Usage: Internal
313*5113495bSYour Name  *
314*5113495bSYour Name  * </ini>
315*5113495bSYour Name  */
316*5113495bSYour Name #define CFG_DP_LL_TX_HBW_FLOW_HWM_OFFSET \
317*5113495bSYour Name 		CFG_INI_UINT( \
318*5113495bSYour Name 		"TxHbwFlowHighWaterMarkOffset", \
319*5113495bSYour Name 		0, \
320*5113495bSYour Name 		300, \
321*5113495bSYour Name 		94, \
322*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
323*5113495bSYour Name 		"High Watermark offset to unpause Netif queues")
324*5113495bSYour Name 
325*5113495bSYour Name /*
326*5113495bSYour Name  * <ini>
327*5113495bSYour Name  * TxHbwFlowMaxQueueDepth - Max pause queue depth in high bandwidth band
328*5113495bSYour Name  * @Min: 4000
329*5113495bSYour Name  * @Max: 3500
330*5113495bSYour Name  * @Default: 1500
331*5113495bSYour Name  *
332*5113495bSYour Name  * This ini specifies the max queue pause depth in high bandwidth band.
333*5113495bSYour Name  * It is only applicable where legacy flow control is used i.e.for Rome.
334*5113495bSYour Name  *
335*5113495bSYour Name  * Related: TxFlowLowWaterMark, TxFlowHighWaterMarkOffset,
336*5113495bSYour Name  *          TxFlowMaxQueueDepth, TxLbwFlowLowWaterMark,
337*5113495bSYour Name  *          TxLbwFlowHighWaterMarkOffset, TxLbwFlowMaxQueueDepth,
338*5113495bSYour Name  *          TxHbwFlowLowWaterMark, TxHbwFlowHighWaterMarkOffset
339*5113495bSYour Name  *
340*5113495bSYour Name  * Supported Feature: Dynamic Flow Control
341*5113495bSYour Name  *
342*5113495bSYour Name  * Usage: Internal
343*5113495bSYour Name  *
344*5113495bSYour Name  * </ini>
345*5113495bSYour Name  */
346*5113495bSYour Name #define CFG_DP_LL_TX_HBW_FLOW_MAX_Q_DEPTH \
347*5113495bSYour Name 		CFG_INI_UINT( \
348*5113495bSYour Name 		"TxHbwFlowMaxQueueDepth", \
349*5113495bSYour Name 		400, \
350*5113495bSYour Name 		3500, \
351*5113495bSYour Name 		1500, \
352*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
353*5113495bSYour Name 		"Max pause queue depth in high bandwidth band")
354*5113495bSYour Name 
355*5113495bSYour Name #endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */
356*5113495bSYour Name 
357*5113495bSYour Name #ifdef WLAN_FEATURE_MSCS
358*5113495bSYour Name /*
359*5113495bSYour Name  * <ini>
360*5113495bSYour Name  * mscs_pkt_threshold - Voice pkt count threshold
361*5113495bSYour Name  *
362*5113495bSYour Name  * @Min: 0
363*5113495bSYour Name  * @Max: 10000
364*5113495bSYour Name  * @Default: 1200
365*5113495bSYour Name  *
366*5113495bSYour Name  * This ini specifies the Voice pkt count threshold to
367*5113495bSYour Name  * Send MSCS action frame to AP
368*5113495bSYour Name  *
369*5113495bSYour Name  * Usage: Internal
370*5113495bSYour Name  *
371*5113495bSYour Name  * </ini>
372*5113495bSYour Name  */
373*5113495bSYour Name #define CFG_VO_PKT_COUNT_THRESHOLD \
374*5113495bSYour Name 		CFG_INI_UINT( \
375*5113495bSYour Name 		"mscs_pkt_threshold", \
376*5113495bSYour Name 		0, \
377*5113495bSYour Name 		10000, \
378*5113495bSYour Name 		1200, \
379*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
380*5113495bSYour Name 		"Voice pkt count threshold")
381*5113495bSYour Name 
382*5113495bSYour Name /*
383*5113495bSYour Name  * <ini>
384*5113495bSYour Name  * mscs_voice_interval - mscs voice interval in sec
385*5113495bSYour Name  *
386*5113495bSYour Name  * @Min: 0
387*5113495bSYour Name  * @Max: 300
388*5113495bSYour Name  * @Default: 30
389*5113495bSYour Name  *
390*5113495bSYour Name  * This ini specifies the mscs voice interval to
391*5113495bSYour Name  * monitor voice tx packet count to send MSCS action frame
392*5113495bSYour Name  *
393*5113495bSYour Name  * Related: mscs_pkt_threshold
394*5113495bSYour Name  *
395*5113495bSYour Name  * Usage: Internal
396*5113495bSYour Name  *
397*5113495bSYour Name  * </ini>
398*5113495bSYour Name  */
399*5113495bSYour Name #define CFG_MSCS_VOICE_INTERVAL \
400*5113495bSYour Name 		CFG_INI_UINT( \
401*5113495bSYour Name 		"mscs_voice_interval", \
402*5113495bSYour Name 		0, \
403*5113495bSYour Name 		300, \
404*5113495bSYour Name 		30, \
405*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
406*5113495bSYour Name 		"mscs voice interval")
407*5113495bSYour Name 
408*5113495bSYour Name #define CFG_MSCS_FEATURE_ALL \
409*5113495bSYour Name 		CFG(CFG_VO_PKT_COUNT_THRESHOLD) \
410*5113495bSYour Name 		CFG(CFG_MSCS_VOICE_INTERVAL)
411*5113495bSYour Name 
412*5113495bSYour Name #else
413*5113495bSYour Name #define CFG_MSCS_FEATURE_ALL
414*5113495bSYour Name #endif
415*5113495bSYour Name 
416*5113495bSYour Name /*
417*5113495bSYour Name  * <ini>
418*5113495bSYour Name  * NAPI_CPU_AFFINITY_MASK - CPU mask to affine NAPIs
419*5113495bSYour Name  *
420*5113495bSYour Name  * @Min: 0
421*5113495bSYour Name  * @Max: 0xFF
422*5113495bSYour Name  * @Default: 0
423*5113495bSYour Name  *
424*5113495bSYour Name  * This ini is used to set NAPI IRQ CPU affinity
425*5113495bSYour Name  *
426*5113495bSYour Name  * Supported Feature: NAPI
427*5113495bSYour Name  *
428*5113495bSYour Name  * Usage: Internal
429*5113495bSYour Name  *
430*5113495bSYour Name  * </ini>
431*5113495bSYour Name  */
432*5113495bSYour Name #define CFG_DP_NAPI_CE_CPU_MASK \
433*5113495bSYour Name 		CFG_INI_UINT( \
434*5113495bSYour Name 		"NAPI_CPU_AFFINITY_MASK", \
435*5113495bSYour Name 		0, \
436*5113495bSYour Name 		0xFF, \
437*5113495bSYour Name 		0, \
438*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, \
439*5113495bSYour Name 		"CPU mask to affine NAPIs")
440*5113495bSYour Name 
441*5113495bSYour Name /*
442*5113495bSYour Name  * <ini>
443*5113495bSYour Name  * gWmiCreditCount - Credit count for WMI exchange
444*5113495bSYour Name  * @0: Not allowed
445*5113495bSYour Name  * @1: Serialize WMI commands, 1 command at a time
446*5113495bSYour Name  * @Default: 2: As advertised by FW
447*5113495bSYour Name  *
448*5113495bSYour Name  * This ini is used to serialize the WMI commandsif required.
449*5113495bSYour Name  *
450*5113495bSYour Name  * Related: None
451*5113495bSYour Name  *
452*5113495bSYour Name  * Usage: External
453*5113495bSYour Name  *
454*5113495bSYour Name  * <ini>
455*5113495bSYour Name  */
456*5113495bSYour Name #define WLAN_CFG_WMI_CREDIT_DEFAULT	0
457*5113495bSYour Name #define WLAN_CFG_WMI_CREDIT_MIN		1
458*5113495bSYour Name #define WLAN_CFG_WMI_CREDIT_MAX		2
459*5113495bSYour Name 
460*5113495bSYour Name #define CFG_DP_HTC_WMI_CREDIT_CNT \
461*5113495bSYour Name 		CFG_INI_UINT("gWmiCreditCount", \
462*5113495bSYour Name 		 WLAN_CFG_WMI_CREDIT_MIN, \
463*5113495bSYour Name 		 WLAN_CFG_WMI_CREDIT_MAX, \
464*5113495bSYour Name 		 WLAN_CFG_WMI_CREDIT_DEFAULT, \
465*5113495bSYour Name 		 CFG_VALUE_OR_DEFAULT, "WMI HTC CREDIT COUNT")
466*5113495bSYour Name 
467*5113495bSYour Name #ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
468*5113495bSYour Name #define CFG_HDD_DP_LEGACY_TX_FLOW \
469*5113495bSYour Name 	CFG(CFG_DP_LL_TX_FLOW_LWM) \
470*5113495bSYour Name 	CFG(CFG_DP_LL_TX_FLOW_HWM_OFFSET) \
471*5113495bSYour Name 	CFG(CFG_DP_LL_TX_FLOW_MAX_Q_DEPTH) \
472*5113495bSYour Name 	CFG(CFG_DP_LL_TX_LBW_FLOW_LWM) \
473*5113495bSYour Name 	CFG(CFG_DP_LL_TX_LBW_FLOW_HWM_OFFSET) \
474*5113495bSYour Name 	CFG(CFG_DP_LL_TX_LBW_FLOW_MAX_Q_DEPTH) \
475*5113495bSYour Name 	CFG(CFG_DP_LL_TX_HBW_FLOW_LWM) \
476*5113495bSYour Name 	CFG(CFG_DP_LL_TX_HBW_FLOW_HWM_OFFSET) \
477*5113495bSYour Name 	CFG(CFG_DP_LL_TX_HBW_FLOW_MAX_Q_DEPTH)
478*5113495bSYour Name #else
479*5113495bSYour Name #define CFG_HDD_DP_LEGACY_TX_FLOW
480*5113495bSYour Name #endif
481*5113495bSYour Name 
482*5113495bSYour Name #ifdef FEATURE_ENABLE_CE_DP_IRQ_AFFINE
483*5113495bSYour Name /*
484*5113495bSYour Name  * <ini>
485*5113495bSYour Name  * Enable_ce_dp_irq_affine - Enable/disable affinity on datapath CE IRQs
486*5113495bSYour Name  *
487*5113495bSYour Name  * @Min: 0
488*5113495bSYour Name  * @Max: 1
489*5113495bSYour Name  * Default: 0
490*5113495bSYour Name  *
491*5113495bSYour Name  * This ini param is used to enable/disable the affinity on datapath
492*5113495bSYour Name  * Copy Engine IRQs.
493*5113495bSYour Name  *
494*5113495bSYour Name  * Supported Feature: STA/SAP
495*5113495bSYour Name  *
496*5113495bSYour Name  * Usage: External
497*5113495bSYour Name  *
498*5113495bSYour Name  * </ini>
499*5113495bSYour Name  */
500*5113495bSYour Name #define CFG_ENABLE_CE_DP_IRQ_AFFINE CFG_INI_BOOL(\
501*5113495bSYour Name 			"Enable_ce_dp_irq_affine", \
502*5113495bSYour Name 			0, \
503*5113495bSYour Name 			"Enable/disable irq affinity on datapath CEs")
504*5113495bSYour Name #define CFG_ENABLE_CE_DP_IRQ_AFFINE_ALL \
505*5113495bSYour Name 	CFG(CFG_ENABLE_CE_DP_IRQ_AFFINE)
506*5113495bSYour Name #else
507*5113495bSYour Name #define CFG_ENABLE_CE_DP_IRQ_AFFINE_ALL
508*5113495bSYour Name #endif
509*5113495bSYour Name 
510*5113495bSYour Name #define CFG_HDD_DP_ALL \
511*5113495bSYour Name 	CFG(CFG_DP_NAPI_CE_CPU_MASK) \
512*5113495bSYour Name 	CFG(CFG_DP_HTC_WMI_CREDIT_CNT) \
513*5113495bSYour Name 	CFG_MSCS_FEATURE_ALL \
514*5113495bSYour Name 	CFG_HDD_DP_LEGACY_TX_FLOW \
515*5113495bSYour Name 	CFG_ENABLE_CE_DP_IRQ_AFFINE_ALL
516*5113495bSYour Name #endif
517