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