1 /*
2  * Copyright (c) 2012-2019, 2021 The Linux Foundation. All rights reserved.
3  *
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 #ifndef __CFG_LEGACY_DP
20 #define __CFG_LEGACY_DP
21 
22 #include "cfg_define.h"
23 #include "cfg_converged.h"
24 #include "qdf_types.h"
25 
26 /*
27  * <ini>
28  * gEnableFlowSteering - Enable rx traffic flow steering
29  * @Default: true
30  *
31  * Enable Rx traffic flow steering to enable Rx interrupts on multiple CEs based
32  * on the flows. Different CEs<==>different IRQs<==>probably different CPUs.
33  * Parallel Rx paths.
34  * 1 - enable  0 - disable
35  *
36  * Usage: Internal
37  *
38  * </ini>
39  */
40  #define CFG_DP_FLOW_STEERING_ENABLED \
41 		CFG_INI_BOOL( \
42 		"gEnableFlowSteering", \
43 		true, \
44 		"")
45 
46 /*
47  * <ini>
48  * maxMSDUsPerRxInd - Max number of MSDUs per HTT RX IN ORDER INDICATION msg.
49  * Note that this has a direct impact on the size of source CE rings.
50  * It is possible to go below 8, but would require testing; so we are
51  * restricting the lower limit to 8 artificially
52  *
53  * It is recommended that this value is a POWER OF 2.
54  *
55  * Values lower than 8 are for experimental purposes only
56  *
57  * </ini>.
58  */
59 #define CFG_DP_MAX_MSDUS_PER_RXIND \
60 	CFG_INI_UINT("maxMSDUsPerRxInd", \
61 	4, 32, 8, CFG_VALUE_OR_DEFAULT, \
62 	"Max number of MSDUs per HTT RX INORDER IND msg")
63 
64 /*
65  * <ini>
66  * gEnableTxSchedWrrVO - Set TX sched parameters for VO
67  * @Default:
68  *
69  * This key is mapping to VO defined in data path module through
70  * OL_TX_SCHED_WRR_ADV_CAT_CFG_SPEC. The user can tune the
71  * WRR TX sched parameters such as skip, credit, limit, credit, disc for VO.
72  * e.g., gEnableTxSchedWrrVO = 10, 9, 8, 1, 8
73  *
74  * </ini>
75  */
76 #define CFG_DP_ENABLE_TX_SCHED_WRR_VO \
77 	CFG_INI_STRING("gEnableTxSchedWrrVO", \
78 	0, 50, "", "et TX sched parameters for VO")
79 
80 /*
81  * <ini>
82  * gEnableTxSchedWrrVI - Set TX sched parameters for VI
83  * @Default:
84  *
85  * This key is mapping to VI defined in data path module through
86  * OL_TX_SCHED_WRR_ADV_CAT_CFG_SPEC. The user can tune the
87  * WRR TX sched parameters such as skip, credit, limit, credit, disc for VI.
88  * e.g., gEnableTxSchedWrrVI = 10, 9, 8, 1, 8
89  *
90  * </ini>
91  */
92 #define CFG_DP_ENABLE_TX_SCHED_WRR_VI \
93 	CFG_INI_STRING("gEnableTxSchedWrrVI", \
94 	0, 50, "", "Set TX sched parameters for VI")
95 
96 /*
97  * <ini>
98  * gEnableTxSchedWrrBE - Set TX sched parameters for BE
99  * @Default:
100  *
101  * This key is mapping to BE defined in data path module through
102  * OL_TX_SCHED_WRR_ADV_CAT_CFG_SPEC. The user can tune the
103  * WRR TX sched parameters such as skip, credit, limit, credit, disc for BE.
104  * e.g., gEnableTxSchedWrrBE = 10, 9, 8, 1, 8
105  *
106  * </ini>
107  */
108 #define CFG_DP_ENABLE_TX_SCHED_WRR_BE \
109 	CFG_INI_STRING("gEnableTxSchedWrrBE", \
110 	0, 50, "", "Set TX sched parameters for BE")
111 
112 /*
113  * <ini>
114  * gEnableTxSchedWrrBK - Set TX sched parameters for BK
115  * @Default:
116  *
117  * This key is mapping to BK defined in data path module through
118  * OL_TX_SCHED_WRR_ADV_CAT_CFG_SPEC. The user can tune the
119  * WRR TX sched parameters such as skip, credit, limit, credit, disc for BK.
120  * e.g., gEnableTxSchedWrrBK = 10, 9, 8, 1, 8
121  *
122  * </ini>
123  */
124 #define CFG_DP_ENABLE_TX_SCHED_WRR_BK \
125 	CFG_INI_STRING("gEnableTxSchedWrrBK", \
126 	0, 50, "", "Set TX sched parameters for BK")
127 
128 #define CFG_DP_CE_CLASSIFY_ENABLE \
129 		CFG_INI_BOOL("gCEClassifyEnable", \
130 		true, "enable CE classify")
131 
132 /*
133  * <ini>
134  * gEnablePeerUnmapConfSupport - Set PEER UNMAP confirmation support
135  * Default: false
136  * 1 - enable  0 - disable
137  *
138  * Enable peer unmap confirmation support in the Host. Host will send
139  * this support to the FW only if FW support is enabled.
140  *
141  * </ini>
142  */
143 #define CFG_DP_ENABLE_PEER_UMAP_CONF_SUPPORT \
144 		CFG_INI_BOOL("gEnablePeerUnmapConfSupport", \
145 		false, "enable PEER UNMAP CONF support")
146 
147 #define CFG_LEGACY_DP_ALL \
148 	CFG(CFG_DP_FLOW_STEERING_ENABLED) \
149 	CFG(CFG_DP_CE_CLASSIFY_ENABLE) \
150 	CFG(CFG_DP_MAX_MSDUS_PER_RXIND) \
151 	CFG(CFG_DP_ENABLE_TX_SCHED_WRR_VO) \
152 	CFG(CFG_DP_ENABLE_TX_SCHED_WRR_VI) \
153 	CFG(CFG_DP_ENABLE_TX_SCHED_WRR_BE) \
154 	CFG(CFG_DP_ENABLE_TX_SCHED_WRR_BK) \
155 	CFG(CFG_DP_ENABLE_PEER_UMAP_CONF_SUPPORT)
156 
157 #endif
158