xref: /wlan-dirver/qca-wifi-host-cmn/hif/src/ce/ce_assignment.h (revision 4865edfd190c086bbe2c69aae12a8226f877b91e)
1 /*
2  * Copyright (c) 2014-2018 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 /*
20  * Implementation of the Host-side Host InterFace (HIF) API
21  * for a Host/Target interconnect using Copy Engines over PCIe.
22  */
23 
24 #ifndef __HIF_PCI_INTERNAL_H__
25 #define __HIF_PCI_INTERNAL_H__
26 
27 #ifndef CONFIG_WIN
28 #ifndef PEER_CACHEING_HOST_ENABLE
29 #define PEER_CACHEING_HOST_ENABLE 0
30 #endif
31 #endif
32 
33 #define HIF_PCI_DEBUG   ATH_DEBUG_MAKE_MODULE_MASK(0)
34 #define HIF_PCI_IPA_UC_ASSIGNED_CE  5
35 
36 #if defined(WLAN_DEBUG) || defined(DEBUG)
37 static ATH_DEBUG_MASK_DESCRIPTION g_hif_debug_description[] = {
38 	{HIF_PCI_DEBUG, "hif_pci"},
39 };
40 
41 ATH_DEBUG_INSTANTIATE_MODULE_VAR(hif, "hif", "PCIe Host Interface",
42 				ATH_DEBUG_MASK_DEFAULTS | ATH_DEBUG_INFO,
43 				ATH_DEBUG_DESCRIPTION_COUNT
44 					 (g_hif_debug_description),
45 				 g_hif_debug_description);
46 #endif
47 
48 #ifdef CONFIG_ATH_PCIE_ACCESS_DEBUG
49 /* globals are initialized to 0 by the compiler */;
50 spinlock_t pcie_access_log_lock;
51 unsigned int pcie_access_log_seqnum;
52 struct HIF_ACCESS_LOG pcie_access_log[PCIE_ACCESS_LOG_NUM];
53 static void hif_target_dump_access_log(void);
54 #endif
55 
56 /*
57  * Host software's Copy Engine configuration.
58  * This table is derived from the CE_PCI TABLE, above.
59  */
60 #ifdef BIG_ENDIAN_HOST
61 #define CE_ATTR_FLAGS CE_ATTR_BYTE_SWAP_DATA
62 #else
63 #define CE_ATTR_FLAGS 0
64 #endif
65 
66 /* Maximum number of Copy Engine's supported */
67 #define CE_HTT_H2T_MSG_SRC_NENTRIES 2048
68 #define CE_HTT_H2T_MSG_SRC_NENTRIES_AR900B 4096
69 
70 #define EPPING_CE_FLAGS_POLL \
71 	(CE_ATTR_DISABLE_INTR|CE_ATTR_ENABLE_POLL|CE_ATTR_FLAGS)
72 
73 #ifdef CONFIG_WIN
74 #define PIPEDIR_INOUT_H2H 4
75 #endif
76 
77 #define CE_ATTR_DIAG_FLAGS \
78 	(CE_ATTR_FLAGS | CE_ATTR_DIAG)
79 
80 #ifdef QCA_WIFI_3_0
81 static struct CE_attr host_ce_config_wlan[] = {
82 	/* host->target HTC control and raw streams */
83 	{ /* CE0 */ CE_ATTR_FLAGS, 0, 16, 2048, 0, NULL,},
84 	/* target->host HTT + HTC control */
85 	{ /* CE1 */ CE_ATTR_FLAGS, 0, 0,  2048, 512, NULL,},
86 	/* target->host WMI */
87 	{ /* CE2 */ CE_ATTR_FLAGS, 0, 0,  2048, 128, NULL,},
88 	/* host->target WMI */
89 	{ /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,},
90 	/* host->target HTT */
91 	{ /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,
92 		CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,},
93 	/* ipa_uc->target HTC control */
94 	{ /* CE5 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,
95 		CE_HTT_H2T_MSG_SRC_NENTRIES, 512, 0, NULL,},
96 	/* Target autonomous HIF_memcpy */
97 	{ /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
98 	/* ce_diag, the Diagnostic Window */
99 	{ /* CE7 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
100 	/* Target to uMC */
101 	{ /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
102 	/* target->host HTT */
103 	{ /* CE9 */ CE_ATTR_FLAGS, 0, 0,  2048, 512, NULL,},
104 	/* target->host HTT */
105 	{ /* CE10 */ CE_ATTR_FLAGS, 0, 0,  2048, 512, NULL,},
106 	/* target -> host PKTLOG */
107 	{ /* CE11 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,},
108 };
109 
110 static struct CE_pipe_config target_ce_config_wlan[] = {
111 	/* host->target HTC control and raw streams */
112 	{ /* CE0 */ 0, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,},
113 	/* target->host HTT */
114 	{ /* CE1 */ 1, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
115 	/* target->host WMI  + HTC control */
116 	{ /* CE2 */ 2, PIPEDIR_IN,  64, 2048, CE_ATTR_FLAGS, 0,},
117 	/* host->target WMI */
118 	{ /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,},
119 	/* host->target HTT */
120 	{ /* CE4 */ 4, PIPEDIR_OUT, 256, 256,
121 		(CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,},
122 	/* NB: 50% of src nentries, since tx has 2 frags */
123 	/* ipa_uc->target */
124 	{ /* CE5 */ 5, PIPEDIR_OUT, 1024,   64,
125 		(CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,},
126 	/* Reserved for target autonomous HIF_memcpy */
127 	{ /* CE6 */ 6, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,},
128 	/* CE7 used only by Host */
129 	{ /* CE7 */ 7, PIPEDIR_INOUT_H2H, 0, 0,
130 		(CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,},
131 	/* CE8 used only by IPA */
132 	{ /* CE8 */ 8, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,},
133 	/* CE9 target->host HTT */
134 	{ /* CE9 */ 9, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
135 	/* CE10 target->host HTT */
136 	{ /* CE10 */ 10, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
137 	/* Target -> host PKTLOG */
138 	{ /* CE11 */ 11, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
139 };
140 
141 #ifdef WLAN_FEATURE_EPPING
142 static struct CE_attr host_ce_config_wlan_epping_poll[] = {
143 	/* host->target HTC control and raw streams */
144 	{ /* CE0 */ CE_ATTR_FLAGS, 0, 16, 2048, 0, NULL,},
145 	/* target->host EP-ping */
146 	{ /* CE1 */ EPPING_CE_FLAGS_POLL, 0, 0, 2048, 128, NULL,},
147 	/* target->host EP-ping */
148 	{ /* CE2 */ EPPING_CE_FLAGS_POLL, 0, 0, 2048, 128, NULL,},
149 	/* host->target EP-ping */
150 	{ /* CE3 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,},
151 	/* host->target EP-ping */
152 	{ /* CE4 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,},
153 	/* EP-ping heartbeat */
154 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0,   2048, 128, NULL,},
155 	/* unused */
156 	{ /* CE6 */ CE_ATTR_FLAGS, 0, 0,   0, 0, NULL,},
157 	/* ce_diag, the Diagnostic Window */
158 	{ /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2,   DIAG_TRANSFER_LIMIT, 2, NULL,},
159 };
160 
161 static struct CE_attr host_ce_config_wlan_epping_irq[] = {
162 	/* host->target HTC control and raw streams */
163 	{ /* CE0 */ CE_ATTR_FLAGS, 0,  16, 2048, 0, NULL,},
164 	/* target->host EP-ping */
165 	{ /* CE1 */ CE_ATTR_FLAGS, 0,   0, 2048, 128, NULL,},
166 	/* target->host EP-ping */
167 	{ /* CE2 */ CE_ATTR_FLAGS, 0,   0, 2048, 128, NULL,},
168 	/* host->target EP-ping */
169 	{ /* CE3 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,},
170 	/* host->target EP-ping */
171 	{ /* CE4 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,},
172 	/* EP-ping heartbeat */
173 	{ /* CE5 */ CE_ATTR_FLAGS, 0,   0, 2048, 128, NULL,},
174 	/* unused */
175 	{ /* CE6 */ CE_ATTR_FLAGS, 0,   0, 0, 0, NULL,},
176 	/* ce_diag, the Diagnostic Window */
177 	{ /* CE7 */ CE_ATTR_DIAG_FLAGS, 0,   2, DIAG_TRANSFER_LIMIT, 2, NULL,},
178 };
179 /*
180  * EP-ping firmware's CE configuration
181  */
182 static struct CE_pipe_config target_ce_config_wlan_epping[] = {
183 	/* host->target HTC control and raw streams */
184 	{ /* CE0 */ 0, PIPEDIR_OUT,  16, 2048, CE_ATTR_FLAGS, 0,},
185 	/* target->host EP-ping */
186 	{ /* CE1 */ 1, PIPEDIR_IN,  128, 2048, CE_ATTR_FLAGS, 0,},
187 	/* target->host EP-ping */
188 	{ /* CE2 */ 2, PIPEDIR_IN,  128, 2048, CE_ATTR_FLAGS, 0,},
189 	/* host->target EP-ping */
190 	{ /* CE3 */ 3, PIPEDIR_OUT, 128, 2048, CE_ATTR_FLAGS, 0,},
191 	/* host->target EP-ping */
192 	{ /* CE4 */ 4, PIPEDIR_OUT, 128, 2048, CE_ATTR_FLAGS, 0,},
193 	/* EP-ping heartbeat */
194 	{ /* CE5 */ 5, PIPEDIR_IN,  128, 2048, CE_ATTR_FLAGS, 0,},
195 	/* unused */
196 	{ /* CE6 */ 6, PIPEDIR_INOUT, 0, 0, CE_ATTR_FLAGS, 0,},
197 	/* CE7 used only by Host */
198 	{ /* CE7 */ 7, PIPEDIR_INOUT_H2H, 0, 0, 0, 0,},
199 	/* CE8 used only by IPA */
200 	{ /* CE8 */ 8, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}
201 };
202 #endif
203 #else
204 static struct CE_attr host_ce_config_wlan[] = {
205 	/* host->target HTC control and raw streams */
206 	{ /* CE0 */ CE_ATTR_FLAGS, 0, 16,  256, 0, NULL,},
207 	/* target->host HTT + HTC control */
208 	{ /* CE1 */ CE_ATTR_FLAGS, 0, 0,  2048, 512, NULL,},
209 	/* target->host WMI */
210 	{ /* CE2 */ CE_ATTR_FLAGS, 0, 0,  2048, 32, NULL,},
211 	/* host->target WMI */
212 	{ /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,},
213 	/* host->target HTT */
214 	{ /* CE4 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0,
215 		CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,},
216 	/* ipa_uc->target HTC control */
217 	{ /* CE5 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0,
218 		1024, 512, 0, NULL,},
219 	/* Target autonomous HIF_memcpy */
220 	{ /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
221 	/* ce_diag, the Diagnostic Window */
222 	{ /* CE7 */ (CE_ATTR_DIAG_FLAGS | CE_ATTR_DISABLE_INTR),
223 		0, 2, DIAG_TRANSFER_LIMIT, 2, NULL,},
224 };
225 
226 static struct CE_pipe_config target_ce_config_wlan[] = {
227 	/* host->target HTC control and raw streams */
228 	{ /* CE0 */ 0, PIPEDIR_OUT, 32,  256, CE_ATTR_FLAGS, 0,},
229 	/* target->host HTT + HTC control */
230 	{ /* CE1 */ 1, PIPEDIR_IN, 32,  2048, CE_ATTR_FLAGS, 0,},
231 	/* target->host WMI */
232 	{ /* CE2 */ 2, PIPEDIR_IN, 32,  2048, CE_ATTR_FLAGS, 0,},
233 	/* host->target WMI */
234 	{ /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,},
235 	/* host->target HTT */
236 	{ /* CE4 */ 4, PIPEDIR_OUT, 256, 256, CE_ATTR_FLAGS, 0,},
237 	/* NB: 50% of src nentries, since tx has 2 frags */
238 	/* ipa_uc->target HTC control */
239 	{ /* CE5 */ 5, PIPEDIR_OUT, 1024,   64, CE_ATTR_FLAGS, 0,},
240 	/* Reserved for target autonomous HIF_memcpy */
241 	{ /* CE6 */ 6, PIPEDIR_INOUT, 32, 4096, CE_ATTR_FLAGS, 0,},
242 	/* CE7 used only by Host */
243 	{ /* CE7 */ 7, PIPEDIR_INOUT_H2H, 0, 0, 0, 0,},
244 	/* CE8 used only by IPA */
245 	{ /* CE8 */ 8, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}
246 };
247 
248 #ifdef WLAN_FEATURE_EPPING
249 static struct CE_attr host_ce_config_wlan_epping_poll[] = {
250 	/* host->target HTC control and raw streams */
251 	{ /* CE0 */ CE_ATTR_FLAGS, 0, 16, 256, 0, NULL,},
252 	/* target->host EP-ping */
253 	{ /* CE1 */ EPPING_CE_FLAGS_POLL, 0, 0, 2048, 128, NULL,},
254 	/* target->host EP-ping */
255 	{ /* CE2 */ EPPING_CE_FLAGS_POLL, 0, 0, 2048, 128, NULL,},
256 	/* host->target EP-ping */
257 	{ /* CE3 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,},
258 	/* host->target EP-ping */
259 	{ /* CE4 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,},
260 	/* EP-ping heartbeat */
261 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0,   2048, 128, NULL,},
262 	/* unused */
263 	{ /* CE6 */ CE_ATTR_FLAGS, 0, 0,   0, 0, NULL,},
264 	/* ce_diag, the Diagnostic Window */
265 	{ /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2,   DIAG_TRANSFER_LIMIT, 2, NULL,},
266 	{ /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
267 	/* The following CEs are not being used yet */
268 	{ /* CE9 */ CE_ATTR_FLAGS, 0, 0,  0, 0, NULL,},
269 	{ /* CE10 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
270 	{ /* CE11 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
271 };
272 static struct CE_attr host_ce_config_wlan_epping_irq[] = {
273 	/* host->target HTC control and raw streams */
274 	{ /* CE0 */ CE_ATTR_FLAGS, 0, 16, 256, 0, NULL,},
275 	/* target->host EP-ping */
276 	{ /* CE1 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL,},
277 	/* target->host EP-ping */
278 	{ /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL,},
279 	/* host->target EP-ping */
280 	{ /* CE3 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,},
281 	/* host->target EP-ping */
282 	{ /* CE4 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,},
283 	/* EP-ping heartbeat */
284 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL,},
285 	/* unused */
286 	{ /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
287 	/* ce_diag, the Diagnostic Window */
288 	{ /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL,},
289 	{ /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
290 	/* The following CEs are not being used yet */
291 	{ /* CE9 */ CE_ATTR_FLAGS, 0, 0,  0, 0, NULL,},
292 	{ /* CE10 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
293 	{ /* CE11 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
294 };
295 /*
296  * EP-ping firmware's CE configuration
297  */
298 static struct CE_pipe_config target_ce_config_wlan_epping[] = {
299 	/* host->target HTC control and raw streams */
300 	{ /* CE0 */ 0, PIPEDIR_OUT, 16,   256, CE_ATTR_FLAGS, 0,},
301 	/* target->host EP-ping */
302 	{ /* CE1 */ 1, PIPEDIR_IN, 128,  2048, CE_ATTR_FLAGS, 0,},
303 	/* target->host EP-ping */
304 	{ /* CE2 */ 2, PIPEDIR_IN, 128,  2048, CE_ATTR_FLAGS, 0,},
305 	/* host->target EP-ping */
306 	{ /* CE3 */ 3, PIPEDIR_OUT, 128, 2048, CE_ATTR_FLAGS, 0,},
307 	/* host->target EP-ping */
308 	{ /* CE4 */ 4, PIPEDIR_OUT, 128, 2048, CE_ATTR_FLAGS, 0,},
309 	/* EP-ping heartbeat */
310 	{ /* CE5 */ 5, PIPEDIR_IN, 128,  2048, CE_ATTR_FLAGS, 0,},
311 	/* unused */
312 	{ /* CE6 */ 6, PIPEDIR_INOUT, 0, 0, CE_ATTR_FLAGS, 0,},
313 	/* CE7 used only by Host */
314 	{ /* CE7 */ 7, PIPEDIR_INOUT_H2H, 0, 0, 0, 0,},
315 	/* CE8 used only by IPA */
316 	{ /* CE8 */ 8, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,},
317 	{ /* CE9 */ 9, PIPEDIR_IN,  0, 0, CE_ATTR_FLAGS, 0,},
318 	{ /* CE10 */ 10, PIPEDIR_IN,  0, 0, CE_ATTR_FLAGS, 0,},
319 	{ /* CE11 */ 11, PIPEDIR_IN,  0, 0, CE_ATTR_FLAGS, 0,},
320 };
321 #endif
322 #endif
323 
324 static struct CE_attr host_ce_config_wlan_ar9888[] = {
325 	/* host->target HTC control and raw streams */
326 	{ /* CE0 */ CE_ATTR_FLAGS, 0, 16, 256, 0, NULL, },
327 	/* target->host BMI + HTC control */
328 	/* could be moved to share CE3 */
329 	{ /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, },
330 	/* target->host WMI */
331 	{ /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL, },
332 	/* host->target WMI */
333 	{ /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL, },
334 	/* host->target HTT */
335 	{ /* CE4 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0,
336 		CE_HTT_H2T_MSG_SRC_NENTRIES_AR900B, 256, 0, NULL, },
337 #ifdef WLAN_FEATURE_FASTPATH
338 	/* target->host HTT messages */
339 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, },
340 #else   /* WLAN_FEATURE_FASTPATH */
341 	/* unused */
342 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
343 #endif  /* WLAN_FEATURE_FASTPATH */
344 	/* Target autonomous HIF_memcpy */
345 	{ /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
346 	/* ce_diag, the Diagnostic Window */
347 	{ /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL, },
348 	/* Target autonomous HIF_memcpy */
349 	{ /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
350 };
351 
352 static struct CE_attr host_ce_config_wlan_ar900b[] = {
353 	/* host->target HTC control and raw streams */
354 	{ /* CE0 */ CE_ATTR_FLAGS, 0, 16, 256, 0, NULL, },
355 	/* target->host BMI + HTC control */
356 	/* could be moved to share CE3 */
357 	{ /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, },
358 	/* target->host WMI */
359 	{ /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL, },
360 	/* host->target WMI */
361 	{ /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL, },
362 	/* host->target HTT */
363 	{ /* CE4 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0,
364 		CE_HTT_H2T_MSG_SRC_NENTRIES_AR900B, 256, 0, NULL, },
365 #ifdef WLAN_FEATURE_FASTPATH
366 	/* target->host HTT messages */
367 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, },
368 #else   /* WLAN_FEATURE_FASTPATH */
369 	/* unused */
370 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
371 #endif  /* WLAN_FEATURE_FASTPATH */
372 	/* Target autonomous HIF_memcpy */
373 	{ /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
374 	/* ce_diag, the Diagnostic Window */
375 	{ /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL, },
376 	/* target->host pktlog */
377 	{ /* CE8 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL, },
378 	/* Target autonomous HIF_memcpy */
379 	{ /* CE9 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
380 	/* Target autonomous HIF_memcpy */
381 	{ /* CE10 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
382 	/* Target autonomous HIF_memcpy */
383 	{ /* CE11 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
384 };
385 
386 static struct CE_attr host_lowdesc_ce_cfg_wlan_ar9888[] = {
387 	/* host->target HTC control and raw streams */
388 	{ /* CE0 */ CE_ATTR_FLAGS, 0, 16, 256, 0, NULL, },
389 	/* could be moved to share CE3 */
390 #ifdef WLAN_FEATURE_FASTPATH
391 	/* target->host BMI + HTC control */
392 	{ /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 64, NULL, },
393 #else
394 	/* target->host BMI + HTC control */
395 	{ /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, },
396 #endif
397 	/* target->host WMI */
398 	{ /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL, },
399 	/* host->target WMI */
400 	{ /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL, },
401 	/* host->target HTT */
402 	{ /* CE4 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0,
403 		CE_HTT_H2T_MSG_SRC_NENTRIES_AR900B, 256, 0, NULL, },
404 #ifdef WLAN_FEATURE_FASTPATH
405 	/* target->host HTT messages */
406 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, },
407 #else   /* WLAN_FEATURE_FASTPATH */
408 	/* unused */
409 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
410 #endif  /* WLAN_FEATURE_FASTPATH */
411 	/* Target autonomous HIF_memcpy */
412 	{ /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
413 	/* ce_diag, the Diagnostic Window */
414 	{ /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL, },
415 	/* Target autonomous HIF_memcpy */
416 	{ /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
417 };
418 
419 static struct CE_attr host_lowdesc_ce_cfg_wlan_ar900b[] = {
420 	/* host->target HTC control and raw streams */
421 	{ /* CE0 */ CE_ATTR_FLAGS, 0, 16, 256, 0, NULL, },
422 	/* could be moved to share CE3 */
423 #ifdef WLAN_FEATURE_FASTPATH
424 	/* target->host BMI + HTC control */
425 	{ /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 64, NULL, },
426 #else
427 	/* target->host BMI + HTC control */
428 	{ /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, },
429 #endif
430 	/* target->host WMI */
431 	{ /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL, },
432 	/* host->target WMI */
433 	{ /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL, },
434 	/* host->target HTT */
435 	{ /* CE4 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0,
436 		CE_HTT_H2T_MSG_SRC_NENTRIES_AR900B, 256, 0, NULL, },
437 #ifdef WLAN_FEATURE_FASTPATH
438 	/* target->host HTT messages */
439 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, },
440 #else   /* WLAN_FEATURE_FASTPATH */
441 	/* unused */
442 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
443 #endif  /* WLAN_FEATURE_FASTPATH */
444 	/* Target autonomous HIF_memcpy */
445 	{ /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
446 	/* ce_diag, the Diagnostic Window */
447 	{ /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL, },
448 	/* target->host pktlog */
449 	{ /* CE8 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL, },
450 	/* Target autonomous HIF_memcpy */
451 	{ /* CE9 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
452 	/* Target autonomous HIF_memcpy */
453 	{ /* CE10 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
454 	/* Target autonomous HIF_memcpy */
455 	{ /* CE11 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
456 };
457 
458 static struct CE_attr host_lowdesc_ce_cfg_wlan_ar900b_nopktlog[] = {
459 	/* host->target HTC control and raw streams */
460 	{ /* CE0 */ CE_ATTR_FLAGS, 0, 16, 256, 0, NULL, },
461 	/* could be moved to share CE3 */
462 #ifdef WLAN_FEATURE_FASTPATH
463 	/* target->host BMI + HTC control */
464 	{ /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 64, NULL, },
465 #else
466 	/* target->host BMI + HTC control */
467 	{ /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, },
468 #endif
469 	/* target->host WMI */
470 	{ /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL, },
471 	/* host->target WMI */
472 	{ /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL, },
473 	/* host->target HTT */
474 	{ /* CE4 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0,
475 		CE_HTT_H2T_MSG_SRC_NENTRIES_AR900B, 256, 0, NULL, },
476 #ifdef WLAN_FEATURE_FASTPATH
477 	/* target->host HTT messages */
478 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, },
479 #else   /* WLAN_FEATURE_FASTPATH */
480 	/* unused */
481 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
482 #endif  /* WLAN_FEATURE_FASTPATH */
483 	/* Target autonomous HIF_memcpy */
484 	{ /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
485 	/* ce_diag, the Diagnostic Window */
486 	{ /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL, },
487 	/* target->host pktlog */
488 	{ /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
489 	/* Target autonomous HIF_memcpy */
490 	{ /* CE9 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
491 	/* Target autonomous HIF_memcpy */
492 	{ /* CE10 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
493 	/* Target autonomous HIF_memcpy */
494 	{ /* CE11 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, },
495 };
496 
497 static struct CE_pipe_config target_ce_config_wlan_ar9888[] = {
498 	/* host->target HTC control and raw streams */
499 	{ /* CE0 */ 0, PIPEDIR_OUT, 32, 256, CE_ATTR_FLAGS, 0, },
500 	/* target->host HTC control */
501 	{ /* CE1 */ 1, PIPEDIR_IN, 32, 512, CE_ATTR_FLAGS, 0, },
502 	/* target->host WMI */
503 	{ /* CE2 */ 2, PIPEDIR_IN, 64, 2048, CE_ATTR_FLAGS, 0, },
504 	/* host->target WMI */
505 	{ /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0, },
506 	/* host->target HTT */
507 	{ /* CE4 */ 4, PIPEDIR_OUT, 256, 256, CE_ATTR_FLAGS, 0, },
508 	/* NB: 50% of src nentries, since tx has 2 frags */
509 #ifdef WLAN_FEATURE_FASTPATH
510 	/* target->host HTT */
511 	{ /* CE5 */ 5, PIPEDIR_IN, 32, 512, CE_ATTR_FLAGS, 0, },
512 #else
513 	/* unused */
514 	{ /* CE5 */ 5, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0, },
515 #endif
516 	/* Reserved for target autonomous HIF_memcpy */
517 	{ /* CE6 */ 6, PIPEDIR_INOUT, 32, 4096, CE_ATTR_FLAGS, 0, },
518 	/* CE7 used only by Host */
519 };
520 
521 static struct CE_pipe_config target_ce_config_wlan_ar900b[] = {
522 	/* host->target HTC control and raw streams */
523 	{ /* CE0 */ 0, PIPEDIR_OUT, 32, 256, CE_ATTR_FLAGS, 0, },
524 	/* target->host HTC control */
525 	{ /* CE1 */ 1, PIPEDIR_IN, 32, 512, CE_ATTR_FLAGS, 0, },
526 	/* target->host WMI */
527 	{ /* CE2 */ 2, PIPEDIR_IN, 64, 2048, CE_ATTR_FLAGS, 0, },
528 	/* host->target WMI */
529 	{ /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0, },
530 	/* host->target HTT */
531 	{ /* CE4 */ 4, PIPEDIR_OUT, 256, 256, CE_ATTR_FLAGS, 0, },
532 	/* NB: 50% of src nentries, since tx has 2 frags */
533 #ifdef WLAN_FEATURE_FASTPATH
534 	/* target->host HTT */
535 	{ /* CE5 */ 5, PIPEDIR_IN, 32, 512, CE_ATTR_FLAGS, 0, },
536 #else
537 	/* unused */
538 	{ /* CE5 */ 5, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0, },
539 #endif
540 	/* Reserved for target autonomous HIF_memcpy */
541 	{ /* CE6 */ 6, PIPEDIR_INOUT, 32, 4096, CE_ATTR_FLAGS, 0, },
542 	/* CE7 used only by Host */
543 	{ /* CE7 */ 7, PIPEDIR_INOUT, 0, 0, 0, 0, },
544 	{ /* CE8 */ 8, PIPEDIR_IN, 64, 2048, CE_ATTR_FLAGS
545 		/* target->host packtlog */
546 		| CE_ATTR_DISABLE_INTR, 0, },
547 #if PEER_CACHEING_HOST_ENABLE
548 	/* target autonomous qcache memcpy */
549 	{ /* CE9 */ 9, PIPEDIR_INOUT, 32, 2048, CE_ATTR_FLAGS |
550 		CE_ATTR_DISABLE_INTR, 0, },
551 #endif
552 };
553 
554 static struct CE_attr host_ce_config_wlan_qca8074[] = {
555 	/* host->target HTC control and raw streams */
556 	{ /* CE0 */ CE_ATTR_FLAGS, 0, 16, 2048, 0, NULL,},
557 	/* target->host HTT + HTC control */
558 	{ /* CE1 */ CE_ATTR_FLAGS, 0, 0,  2048, 512, NULL,},
559 	/* target->host WMI */
560 	{ /* CE2 */ CE_ATTR_FLAGS, 0, 0,  2048, 256, NULL,},
561 	/* host->target WMI (mac0) */
562 	{ /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,},
563 	/* host->target HTT */
564 	{ /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,
565 		CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,},
566 	/* target -> host PKTLOG */
567 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,},
568 	/* Target autonomous HIF_memcpy */
569 	{ /* CE6 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0, 0,
570 		0, 0, NULL,},
571 	/* host->target WMI (mac1) */
572 	{ /* CE7 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,},
573 	/* Target to uMC */
574 	{ /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
575 	/* host->target WMI (mac2) */
576 	{ /* CE9 */ CE_ATTR_FLAGS, 0, 32,  2048, 0, NULL,},
577 	/* target->host HTT */
578 	{ /* CE10 */ CE_ATTR_FLAGS, 0, 0,  2048, 512, NULL,},
579 	/* CE11 unused */
580 };
581 
582 static struct CE_pipe_config target_ce_config_wlan_qca8074[] = {
583 	/* host->target HTC control and raw streams */
584 	{ /* CE0 */ 0, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,},
585 	/* target->host HTT */
586 	{ /* CE1 */ 1, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
587 	/* target->host WMI  + HTC control */
588 	{ /* CE2 */ 2, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
589 	/* host->target WMI */
590 	{ /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,},
591 	/* host->target HTT */
592 	{ /* CE4 */ 4, PIPEDIR_OUT, 256, 256,
593 		(CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,},
594 	/* NB: 50% of src nentries, since tx has 2 frags */
595 	/* Target -> host PKTLOG */
596 	{ /* CE5 */ 5, PIPEDIR_IN,  32, 2048, 0, 0,},
597 	/* Reserved for target autonomous HIF_memcpy */
598 	{ /* CE6 */ 6, PIPEDIR_INOUT, 32, 65535, 64, 0,},
599 	/* CE7 used only by Host */
600 	{ /* CE7 */ 7, PIPEDIR_OUT, 32, 2048,
601 		8192, 0,},
602 	/* CE8 used only by IPA */
603 	{ /* CE8 */ 8, PIPEDIR_INOUT, 32, 65535, 112, 0,},
604 	/* CE9 target->host HTT */
605 	{ /* CE9 */ 9, PIPEDIR_OUT,  32, 2048, 8192, 0,},
606 	/* CE10 target->host HTT */
607 	{ /* CE10 */ 10, PIPEDIR_INOUT_H2H,  0, 0, 0, 0,},
608 };
609 
610 static struct CE_attr host_ce_config_wlan_qca8074_pci[] = {
611 	/* host->target HTC control and raw streams */
612 	{ /* CE0 */ EPPING_CE_FLAGS_POLL, 0, 16, 2048, 0, NULL,},
613 	/* target->host HTT + HTC control */
614 	{ /* CE1 */ EPPING_CE_FLAGS_POLL, 0, 0,  2048, 512, NULL,},
615 	/* target->host WMI */
616 	{ /* CE2 */ EPPING_CE_FLAGS_POLL, 0, 0,  2048, 256, NULL,},
617 	/* host->target WMI (mac0) */
618 	{ /* CE3 */ EPPING_CE_FLAGS_POLL, 0, 32, 2048, 0, NULL,},
619 	/* host->target HTT */
620 	{ /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,
621 		CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,},
622 	/* target -> host PKTLOG */
623 	{ /* CE5 */ EPPING_CE_FLAGS_POLL, 0, 0, 2048, 512, NULL,},
624 	/* Target autonomous HIF_memcpy */
625 	{ /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
626 	/* host->target WMI (mac1) */
627 	{ /* CE7 */ EPPING_CE_FLAGS_POLL, 0, 32, 2048, 0, NULL,},
628 	/* Target to uMC */
629 	{ /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
630 	/* host->target WMI (mac2) */
631 	{ /* CE9 */ EPPING_CE_FLAGS_POLL, 0, 32,  2048, 0, NULL,},
632 	/* target->host HTT */
633 	{ /* CE10 */ CE_ATTR_FLAGS, 0, 0,  2048, 512, NULL,},
634 	/* CE11 unused */
635 };
636 
637 static struct CE_pipe_config target_ce_config_wlan_qca8074_pci[] = {
638 	/* host->target HTC control and raw streams */
639 	{ /* CE0 */ 0, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,},
640 	/* target->host HTT */
641 	{ /* CE1 */ 1, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
642 	/* target->host WMI  + HTC control */
643 	{ /* CE2 */ 2, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
644 	/* host->target WMI */
645 	{ /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,},
646 	/* host->target HTT */
647 	{ /* CE4 */ 4, PIPEDIR_OUT, 256, 256,
648 		(CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,},
649 	/* NB: 50% of src nentries, since tx has 2 frags */
650 	/* ipa_uc->target */
651 	{ /* CE5 */ 5, PIPEDIR_OUT, 1024,   64,
652 		(CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,},
653 	/* Reserved for target autonomous HIF_memcpy */
654 	{ /* CE6 */ 6, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,},
655 	/* CE7 used only by Host */
656 	{ /* CE7 */ 7, PIPEDIR_INOUT_H2H, 0, 0,
657 		(CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,},
658 	/* CE8 used only by IPA */
659 	{ /* CE8 */ 8, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,},
660 	/* CE9 target->host HTT */
661 	{ /* CE9 */ 9, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
662 	/* CE10 target->host HTT */
663 	{ /* CE10 */ 10, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
664 	/* Target -> host PKTLOG */
665 	{ /* CE11 */ 11, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
666 };
667 
668 #define QCA_6290_CE_COUNT 9
669 #ifdef CONFIG_WIN
670 static struct CE_attr host_ce_config_wlan_qca6290[] = {
671 	/* host->target HTC control and raw streams */
672 	{ /* CE0 */ CE_ATTR_FLAGS, 0, 16, 2048, 0, NULL,},
673 	/* target->host HTT + HTC control */
674 	{ /* CE1 */ CE_ATTR_FLAGS, 0, 0,  2048, 512, NULL,},
675 	/* target->host WMI */
676 	{ /* CE2 */ CE_ATTR_FLAGS, 0, 0,  2048, 32, NULL,},
677 	/* host->target WMI */
678 	{ /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,},
679 	/* host->target HTT */
680 	{ /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,
681 		CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,},
682 	/* target -> host PKTLOG */
683 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,},
684 	/* Target autonomous HIF_memcpy */
685 	{ /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
686 	/* host->target WMI (mac1) */
687 	{ /* CE7 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,},
688 	/* Reserved for target */
689 	{ /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
690 	/* CE 9, 10, 11 belong to CoreBsp & MHI driver */
691 };
692 
693 static struct CE_pipe_config target_ce_config_wlan_qca6290[] = {
694 	/* host->target HTC control and raw streams */
695 	{ /* CE0 */ 0, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,},
696 	/* target->host HTT */
697 	{ /* CE1 */ 1, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
698 	/* target->host WMI  + HTC control */
699 	{ /* CE2 */ 2, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
700 	/* host->target WMI */
701 	{ /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,},
702 	/* host->target HTT */
703 	{ /* CE4 */ 4, PIPEDIR_OUT, 256, 256,
704 		(CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,},
705 	/* Target -> host PKTLOG */
706 	{ /* CE5 */ 5, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
707 	/* Reserved for target autonomous HIF_memcpy */
708 	{ /* CE6 */ 6, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,},
709 	/* CE7 used only by Host */
710 	{ /* CE7 */ 7, PIPEDIR_OUT, 32, 2048,
711 		8192, 0,},
712 	/* Reserved for target */
713 	{ /* CE8 */ 8, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,},
714 	/* CE 9, 10, 11 belong to CoreBsp & MHI driver */
715 };
716 #else
717 static struct CE_attr host_ce_config_wlan_qca6290[] = {
718 	/* host->target HTC control and raw streams */
719 	{ /* CE0 */ CE_ATTR_FLAGS, 0, 16, 2048, 0, NULL,},
720 	/* target->host HTT + HTC control */
721 	{ /* CE1 */ CE_ATTR_FLAGS, 0, 0,  2048, 512, NULL,},
722 	/* target->host WMI */
723 	{ /* CE2 */ CE_ATTR_FLAGS, 0, 0,  2048, 32, NULL,},
724 	/* host->target WMI */
725 	{ /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,},
726 	/* host->target HTT */
727 	{ /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,
728 		CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,},
729 	/* target -> host PKTLOG */
730 	{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,},
731 	/* Target autonomous HIF_memcpy */
732 	{ /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
733 	/* ce_diag, the Diagnostic Window */
734 	{ /* CE7 */ (CE_ATTR_DIAG_FLAGS | CE_ATTR_DISABLE_INTR), 0,
735 		2, DIAG_TRANSFER_LIMIT, 2, NULL,},
736 	/* Reserved for target */
737 	{ /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,},
738 	/* CE 9, 10, 11 belong to CoreBsp & MHI driver */
739 };
740 
741 static struct CE_pipe_config target_ce_config_wlan_qca6290[] = {
742 	/* host->target HTC control and raw streams */
743 	{ /* CE0 */ 0, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,},
744 	/* target->host HTT */
745 	{ /* CE1 */ 1, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
746 	/* target->host WMI  + HTC control */
747 	{ /* CE2 */ 2, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
748 	/* host->target WMI */
749 	{ /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,},
750 	/* host->target HTT */
751 	{ /* CE4 */ 4, PIPEDIR_OUT, 256, 256,
752 		(CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,},
753 	/* Target -> host PKTLOG */
754 	{ /* CE5 */ 5, PIPEDIR_IN,  32, 2048, CE_ATTR_FLAGS, 0,},
755 	/* Reserved for target autonomous HIF_memcpy */
756 	{ /* CE6 */ 6, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,},
757 	/* CE7 used only by Host */
758 	{ /* CE7 */ 7, PIPEDIR_INOUT_H2H, 0, 0,
759 		(CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,},
760 	/* Reserved for target */
761 	{ /* CE8 */ 8, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,},
762 	/* CE 9, 10, 11 belong to CoreBsp & MHI driver */
763 };
764 #endif
765 #endif /* __HIF_PCI_INTERNAL_H__ */
766