1  /*
2   * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
3   * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
4   *
5   * Permission to use, copy, modify, and/or distribute this software for
6   * any purpose with or without fee is hereby granted, provided that the
7   * above copyright notice and this permission notice appear in all
8   * copies.
9   *
10   * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11   * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12   * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13   * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14   * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15   * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16   * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17   * PERFORMANCE OF THIS SOFTWARE.
18   */
19  
20  /**
21   * DOC: This file contains definitions of Data Path configuration.
22   */
23  
24  #ifndef _CFG_IPA_H_
25  #define _CFG_IPA_H_
26  
27  #include "cfg_define.h"
28  
29  /* DP INI Declarations */
30  /*
31   * IPA Offload configuration - Each bit enables a feature
32   * bit0 - IPA Enable
33   * bit1 - IPA Pre filter enable
34   * bit2 - IPv6 enable
35   * bit3 - IPA Resource Manager (RM) enable
36   * bit4 - IPA Clock scaling enable
37   * bit5 - IPA UC enable
38   * bit6 - IPA UC STA enable
39   * bit8 - IPA real time debugging
40   * bit9 - IPA Optional wifi dp enable
41   */
42  
43  /*
44   * <ini>
45   * gIPAConfig - IPA configuration
46   * @Min: 0
47   * @Max: 0xFFFFFFFF
48   * @Default: 0
49   *
50   * This ini specifies the IPA configuration
51   *
52   * Related: N/A
53   *
54   * Supported Feature: IPA
55   *
56   * Usage: Internal
57   *
58   * </ini>
59   */
60  #define CFG_DP_IPA_OFFLOAD_CONFIG \
61  		CFG_INI_UINT("gIPAConfig", \
62  		0, \
63  		0xFFFFFFFF, \
64  		0, \
65  		CFG_VALUE_OR_DEFAULT, "IPA offload configuration")
66  
67  /*
68   * <ini>
69   * gIPADescSize - IPA descriptor size
70   * @Min: 800
71   * @Max: 8000
72   * @Default: 800
73   *
74   * This ini specifies the IPA descriptor size
75   *
76   * Related: N/A
77   *
78   * Supported Feature: IPA
79   *
80   * Usage: Internal
81   *
82   * </ini>
83   */
84   #define CFG_DP_IPA_DESC_SIZE \
85  		CFG_INI_UINT("gIPADescSize", \
86  		800, \
87  		8000, \
88  		800, \
89  		CFG_VALUE_OR_DEFAULT, "IPA DESC SIZE")
90  
91  /*
92   * <ini>
93   * gIPAHighBandwidthMbps - IPA high bw threshold
94   * @Min: 200
95   * @Max: 4294967295UL
96   * @Default: 400
97   *
98   * This ini specifies the IPA high bw threshold
99   *
100   * Related: N/A
101   *
102   * Supported Feature: IPA
103   *
104   * Usage: Internal
105   *
106   * </ini>
107   */
108   #define CFG_DP_IPA_HIGH_BANDWIDTH_MBPS \
109  		CFG_INI_UINT("gIPAHighBandwidthMbps", \
110  		200, \
111  		4294967295UL, \
112  		400, \
113  		CFG_VALUE_OR_DEFAULT, "IPA high bw threshold")
114  
115  /*
116   * <ini>
117   * gIPAMediumBandwidthMbps - IPA medium bw threshold
118   * @Min: 100
119   * @Max: 4294967295UL
120   * @Default: 200
121   *
122   * This ini specifies the IPA medium bw threshold
123   *
124   * Related: N/A
125   *
126   * Supported Feature: IPA
127   *
128   * Usage: Internal
129   *
130   * </ini>
131   */
132   #define CFG_DP_IPA_MEDIUM_BANDWIDTH_MBPS \
133  		CFG_INI_UINT("gIPAMediumBandwidthMbps", \
134  		100, \
135  		4294967295UL, \
136  		200, \
137  		CFG_VALUE_OR_DEFAULT, "IPA medium bw threshold")
138  
139  /*
140   * <ini>
141   * gIPALowBandwidthMbps - IPA low bw threshold
142   * @Min: 0
143   * @Max: 4294967295UL
144   * @Default: 100
145   *
146   * This ini specifies the IPA low bw threshold
147   *
148   * Related: N/A
149   *
150   * Supported Feature: IPA
151   *
152   * Usage: Internal
153   *
154   * </ini>
155   */
156   #define CFG_DP_IPA_LOW_BANDWIDTH_MBPS \
157  		CFG_INI_UINT("gIPALowBandwidthMbps", \
158  		0, \
159  		4294967295UL, \
160  		100, \
161  		CFG_VALUE_OR_DEFAULT, "IPA low bw threshold")
162  
163  /*
164   * <ini>
165   * gIPAForceVotingEnable - IPA force voting enable
166   * @Default: false
167   *
168   * This ini specifies to enable IPA force voting
169   *
170   * Related: N/A
171   *
172   * Supported Feature: IPA
173   *
174   * Usage: Internal
175   *
176   * </ini>
177   */
178  #define CFG_DP_IPA_ENABLE_FORCE_VOTING \
179  		CFG_INI_BOOL("gIPAForceVotingEnable", \
180  		false, "Ctrl to enable force voting")
181  
182  /*
183   * <ini>
184   * IpaUcTxBufCount - IPA tx buffer count
185   * @Min: 0
186   * @Max: 2048
187   * @Default: 512
188   *
189   * This ini specifies the IPA tx buffer count
190   *
191   * Related: N/A
192   *
193   * Supported Feature: IPA
194   *
195   * Usage: Internal
196   *
197   * </ini>
198   */
199   #define CFG_DP_IPA_UC_TX_BUF_COUNT \
200  		CFG_INI_UINT("IpaUcTxBufCount", \
201  		0, \
202  		2048, \
203  		512, \
204  		CFG_VALUE_OR_DEFAULT, "IPA tx buffer count")
205  
206  /*
207   * <ini>
208   * gIPAWds - IPA WDS Enable
209   * @Default: false
210   *
211   * This ini specifies to enable WDS for IPA
212   *
213   * Related: N/A
214   *
215   * Supported Feature: IPA
216   *
217   * Usage: Internal
218   *
219   * </ini>
220   */
221  #define CFG_DP_IPA_WDS_STATUS \
222  		CFG_INI_BOOL("gIPAWds", \
223  		false, "Ctrl to enable WDS for EasyMesh")
224  
225  /*
226   * <ini>
227   * gIPAVlanEnable - IPA vlan support enable
228   * @Default: false
229   *
230   * This ini specifies to enable IPA vlan support
231   *
232   * Related: N/A
233   *
234   * Supported Feature: IPA
235   *
236   * Usage: Internal
237   *
238   * </ini>
239   */
240  #define CFG_DP_IPA_ENABLE_VLAN_SUPPORT \
241  		CFG_INI_BOOL("gIPAVlanEnable", \
242  		false, "Ctrl to enable vlan support with IPA Offload")
243  
244  #define CFG_IPA \
245  	CFG(CFG_DP_IPA_OFFLOAD_CONFIG) \
246  	CFG(CFG_DP_IPA_DESC_SIZE) \
247  	CFG(CFG_DP_IPA_HIGH_BANDWIDTH_MBPS) \
248  	CFG(CFG_DP_IPA_MEDIUM_BANDWIDTH_MBPS) \
249  	CFG(CFG_DP_IPA_LOW_BANDWIDTH_MBPS) \
250  	CFG(CFG_DP_IPA_ENABLE_FORCE_VOTING) \
251  	CFG(CFG_DP_IPA_UC_TX_BUF_COUNT) \
252  	CFG(CFG_DP_IPA_WDS_STATUS) \
253  	CFG(CFG_DP_IPA_ENABLE_VLAN_SUPPORT)
254  #endif /* _CFG_IPA_H_ */
255