xref: /linux/drivers/net/wireless/ath/ath12k/wifi7/ce.c (revision 37a93dd5c49b5fda807fd204edf2547c3493319c)
1a7202704SKiran Venkatappa // SPDX-License-Identifier: BSD-3-Clause-Clear
2a7202704SKiran Venkatappa /*
3a7202704SKiran Venkatappa  * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
4a7202704SKiran Venkatappa  * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
5a7202704SKiran Venkatappa  */
6a7202704SKiran Venkatappa 
7a7202704SKiran Venkatappa #include <linux/types.h>
8a7202704SKiran Venkatappa #include <linux/bitops.h>
9a7202704SKiran Venkatappa #include <linux/bitfield.h>
10a7202704SKiran Venkatappa 
11a7202704SKiran Venkatappa #include "../core.h"
12a7202704SKiran Venkatappa #include "../ce.h"
13a7202704SKiran Venkatappa #include "ce.h"
14a7202704SKiran Venkatappa #include "../dp_rx.h"
15a7202704SKiran Venkatappa 
16a7202704SKiran Venkatappa /* Copy Engine (CE) configs for QCN9274 */
17a7202704SKiran Venkatappa /* Target firmware's Copy Engine configuration. */
18*bce3b73dSKiran Venkatappa const struct ce_pipe_config ath12k_wifi7_target_ce_config_wlan_qcn9274[] = {
19a7202704SKiran Venkatappa 	/* CE0: host->target HTC control and raw streams */
20a7202704SKiran Venkatappa 	{
21a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(0),
22a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_OUT),
23a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
24a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
25a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
26a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
27a7202704SKiran Venkatappa 	},
28a7202704SKiran Venkatappa 
29a7202704SKiran Venkatappa 	/* CE1: target->host HTT + HTC control */
30a7202704SKiran Venkatappa 	{
31a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(1),
32a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_IN),
33a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
34a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
35a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
36a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
37a7202704SKiran Venkatappa 	},
38a7202704SKiran Venkatappa 
39a7202704SKiran Venkatappa 	/* CE2: target->host WMI */
40a7202704SKiran Venkatappa 	{
41a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(2),
42a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_IN),
43a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
44a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
45a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
46a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
47a7202704SKiran Venkatappa 	},
48a7202704SKiran Venkatappa 
49a7202704SKiran Venkatappa 	/* CE3: host->target WMI (mac0) */
50a7202704SKiran Venkatappa 	{
51a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(3),
52a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_OUT),
53a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
54a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
55a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
56a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
57a7202704SKiran Venkatappa 	},
58a7202704SKiran Venkatappa 
59a7202704SKiran Venkatappa 	/* CE4: host->target HTT */
60a7202704SKiran Venkatappa 	{
61a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(4),
62a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_OUT),
63a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(256),
64a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(256),
65a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS | CE_ATTR_DIS_INTR),
66a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
67a7202704SKiran Venkatappa 	},
68a7202704SKiran Venkatappa 
69a7202704SKiran Venkatappa 	/* CE5: target->host Pktlog */
70a7202704SKiran Venkatappa 	{
71a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(5),
72a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_IN),
73a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
74a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
75a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
76a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
77a7202704SKiran Venkatappa 	},
78a7202704SKiran Venkatappa 
79a7202704SKiran Venkatappa 	/* CE6: Reserved for target autonomous hif_memcpy */
80a7202704SKiran Venkatappa 	{
81a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(6),
82a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_INOUT),
83a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
84a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(16384),
85a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
86a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
87a7202704SKiran Venkatappa 	},
88a7202704SKiran Venkatappa 
89a7202704SKiran Venkatappa 	/* CE7: host->target WMI (mac1) */
90a7202704SKiran Venkatappa 	{
91a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(7),
92a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_OUT),
93a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
94a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
95a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
96a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
97a7202704SKiran Venkatappa 	},
98a7202704SKiran Venkatappa 
99a7202704SKiran Venkatappa 	/* CE8: Reserved for target autonomous hif_memcpy */
100a7202704SKiran Venkatappa 	{
101a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(8),
102a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_INOUT),
103a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
104a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(16384),
105a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
106a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
107a7202704SKiran Venkatappa 	},
108a7202704SKiran Venkatappa 
109a7202704SKiran Venkatappa 	/* CE9, 10 and 11: Reserved for MHI */
110a7202704SKiran Venkatappa 
111a7202704SKiran Venkatappa 	/* CE12: Target CV prefetch */
112a7202704SKiran Venkatappa 	{
113a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(12),
114a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_OUT),
115a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
116a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
117a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
118a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
119a7202704SKiran Venkatappa 	},
120a7202704SKiran Venkatappa 
121a7202704SKiran Venkatappa 	/* CE13: Target CV prefetch */
122a7202704SKiran Venkatappa 	{
123a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(13),
124a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_OUT),
125a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
126a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
127a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
128a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
129a7202704SKiran Venkatappa 	},
130a7202704SKiran Venkatappa 
131a7202704SKiran Venkatappa 	/* CE14: WMI logging/CFR/Spectral/Radar */
132a7202704SKiran Venkatappa 	{
133a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(14),
134a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_IN),
135a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
136a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
137a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
138a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
139a7202704SKiran Venkatappa 	},
140a7202704SKiran Venkatappa 
141a7202704SKiran Venkatappa 	/* CE15: Reserved */
142a7202704SKiran Venkatappa };
143a7202704SKiran Venkatappa 
144a7202704SKiran Venkatappa /* Map from service/endpoint to Copy Engine.
145a7202704SKiran Venkatappa  * This table is derived from the CE_PCI TABLE, above.
146a7202704SKiran Venkatappa  * It is passed to the Target at startup for use by firmware.
147a7202704SKiran Venkatappa  * Pipe direction:
148a7202704SKiran Venkatappa  *      PIPEDIR_OUT = UL = host -> target
149a7202704SKiran Venkatappa  *      PIPEDIR_IN = DL = target -> host
150a7202704SKiran Venkatappa  */
151*bce3b73dSKiran Venkatappa const struct service_to_pipe
152*bce3b73dSKiran Venkatappa ath12k_wifi7_target_service_to_ce_map_wlan_qcn9274[] = {
153a7202704SKiran Venkatappa 	{
154a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VO),
155a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
156a7202704SKiran Venkatappa 		__cpu_to_le32(3),
157a7202704SKiran Venkatappa 	},
158a7202704SKiran Venkatappa 	{
159a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VO),
160a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
161a7202704SKiran Venkatappa 		__cpu_to_le32(2),
162a7202704SKiran Venkatappa 	},
163a7202704SKiran Venkatappa 	{
164a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BK),
165a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
166a7202704SKiran Venkatappa 		__cpu_to_le32(3),
167a7202704SKiran Venkatappa 	},
168a7202704SKiran Venkatappa 	{
169a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BK),
170a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
171a7202704SKiran Venkatappa 		__cpu_to_le32(2),
172a7202704SKiran Venkatappa 	},
173a7202704SKiran Venkatappa 	{
174a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BE),
175a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
176a7202704SKiran Venkatappa 		__cpu_to_le32(3),
177a7202704SKiran Venkatappa 	},
178a7202704SKiran Venkatappa 	{
179a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BE),
180a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
181a7202704SKiran Venkatappa 		__cpu_to_le32(2),
182a7202704SKiran Venkatappa 	},
183a7202704SKiran Venkatappa 	{
184a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VI),
185a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
186a7202704SKiran Venkatappa 		__cpu_to_le32(3),
187a7202704SKiran Venkatappa 	},
188a7202704SKiran Venkatappa 	{
189a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VI),
190a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
191a7202704SKiran Venkatappa 		__cpu_to_le32(2),
192a7202704SKiran Venkatappa 	},
193a7202704SKiran Venkatappa 	{
194a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL),
195a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
196a7202704SKiran Venkatappa 		__cpu_to_le32(3),
197a7202704SKiran Venkatappa 	},
198a7202704SKiran Venkatappa 	{
199a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL),
200a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
201a7202704SKiran Venkatappa 		__cpu_to_le32(2),
202a7202704SKiran Venkatappa 	},
203a7202704SKiran Venkatappa 	{
204a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_RSVD_CTRL),
205a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
206a7202704SKiran Venkatappa 		__cpu_to_le32(0),
207a7202704SKiran Venkatappa 	},
208a7202704SKiran Venkatappa 	{
209a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_RSVD_CTRL),
210a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
211a7202704SKiran Venkatappa 		__cpu_to_le32(1),
212a7202704SKiran Venkatappa 	},
213a7202704SKiran Venkatappa 	{
214a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_TEST_RAW_STREAMS),
215a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
216a7202704SKiran Venkatappa 		__cpu_to_le32(0),
217a7202704SKiran Venkatappa 	},
218a7202704SKiran Venkatappa 	{
219a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_TEST_RAW_STREAMS),
220a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
221a7202704SKiran Venkatappa 		__cpu_to_le32(1),
222a7202704SKiran Venkatappa 	},
223a7202704SKiran Venkatappa 	{
224a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_HTT_DATA_MSG),
225a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
226a7202704SKiran Venkatappa 		__cpu_to_le32(4),
227a7202704SKiran Venkatappa 	},
228a7202704SKiran Venkatappa 	{
229a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_HTT_DATA_MSG),
230a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
231a7202704SKiran Venkatappa 		__cpu_to_le32(1),
232a7202704SKiran Venkatappa 	},
233a7202704SKiran Venkatappa 	{
234a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL_MAC1),
235a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
236a7202704SKiran Venkatappa 		__cpu_to_le32(7),
237a7202704SKiran Venkatappa 	},
238a7202704SKiran Venkatappa 	{
239a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL_MAC1),
240a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
241a7202704SKiran Venkatappa 		__cpu_to_le32(2),
242a7202704SKiran Venkatappa 	},
243a7202704SKiran Venkatappa 	{
244a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_PKT_LOG),
245a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
246a7202704SKiran Venkatappa 		__cpu_to_le32(5),
247a7202704SKiran Venkatappa 	},
248a7202704SKiran Venkatappa 	{
249a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL_DIAG),
250a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
251a7202704SKiran Venkatappa 		__cpu_to_le32(14),
252a7202704SKiran Venkatappa 	},
253a7202704SKiran Venkatappa 
254a7202704SKiran Venkatappa 	/* (Additions here) */
255a7202704SKiran Venkatappa 
256a7202704SKiran Venkatappa 	{ /* must be last */
257a7202704SKiran Venkatappa 		__cpu_to_le32(0),
258a7202704SKiran Venkatappa 		__cpu_to_le32(0),
259a7202704SKiran Venkatappa 		__cpu_to_le32(0),
260a7202704SKiran Venkatappa 	},
261a7202704SKiran Venkatappa };
262a7202704SKiran Venkatappa 
263*bce3b73dSKiran Venkatappa const struct ce_attr ath12k_wifi7_host_ce_config_qcn9274[] = {
264a7202704SKiran Venkatappa 	/* CE0: host->target HTC control and raw streams */
265a7202704SKiran Venkatappa 	{
266a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
267a7202704SKiran Venkatappa 		.src_nentries = 16,
268a7202704SKiran Venkatappa 		.src_sz_max = 2048,
269a7202704SKiran Venkatappa 		.dest_nentries = 0,
270a7202704SKiran Venkatappa 	},
271a7202704SKiran Venkatappa 
272a7202704SKiran Venkatappa 	/* CE1: target->host HTT + HTC control */
273a7202704SKiran Venkatappa 	{
274a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
275a7202704SKiran Venkatappa 		.src_nentries = 0,
276a7202704SKiran Venkatappa 		.src_sz_max = 2048,
277a7202704SKiran Venkatappa 		.dest_nentries = 512,
278a7202704SKiran Venkatappa 		.recv_cb = ath12k_htc_rx_completion_handler,
279a7202704SKiran Venkatappa 	},
280a7202704SKiran Venkatappa 
281a7202704SKiran Venkatappa 	/* CE2: target->host WMI */
282a7202704SKiran Venkatappa 	{
283a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
284a7202704SKiran Venkatappa 		.src_nentries = 0,
285a7202704SKiran Venkatappa 		.src_sz_max = 2048,
286a7202704SKiran Venkatappa 		.dest_nentries = 128,
287a7202704SKiran Venkatappa 		.recv_cb = ath12k_htc_rx_completion_handler,
288a7202704SKiran Venkatappa 	},
289a7202704SKiran Venkatappa 
290a7202704SKiran Venkatappa 	/* CE3: host->target WMI (mac0) */
291a7202704SKiran Venkatappa 	{
292a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
293a7202704SKiran Venkatappa 		.src_nentries = 32,
294a7202704SKiran Venkatappa 		.src_sz_max = 2048,
295a7202704SKiran Venkatappa 		.dest_nentries = 0,
296a7202704SKiran Venkatappa 	},
297a7202704SKiran Venkatappa 
298a7202704SKiran Venkatappa 	/* CE4: host->target HTT */
299a7202704SKiran Venkatappa 	{
300a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
301a7202704SKiran Venkatappa 		.src_nentries = 2048,
302a7202704SKiran Venkatappa 		.src_sz_max = 256,
303a7202704SKiran Venkatappa 		.dest_nentries = 0,
304a7202704SKiran Venkatappa 	},
305a7202704SKiran Venkatappa 
306a7202704SKiran Venkatappa 	/* CE5: target->host pktlog */
307a7202704SKiran Venkatappa 	{
308a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
309a7202704SKiran Venkatappa 		.src_nentries = 0,
310a7202704SKiran Venkatappa 		.src_sz_max = 2048,
311a7202704SKiran Venkatappa 		.dest_nentries = 512,
312a7202704SKiran Venkatappa 		.recv_cb = ath12k_dp_htt_htc_t2h_msg_handler,
313a7202704SKiran Venkatappa 	},
314a7202704SKiran Venkatappa 
315a7202704SKiran Venkatappa 	/* CE6: target autonomous hif_memcpy */
316a7202704SKiran Venkatappa 	{
317a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
318a7202704SKiran Venkatappa 		.src_nentries = 0,
319a7202704SKiran Venkatappa 		.src_sz_max = 0,
320a7202704SKiran Venkatappa 		.dest_nentries = 0,
321a7202704SKiran Venkatappa 	},
322a7202704SKiran Venkatappa 
323a7202704SKiran Venkatappa 	/* CE7: host->target WMI (mac1) */
324a7202704SKiran Venkatappa 	{
325a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
326a7202704SKiran Venkatappa 		.src_nentries = 32,
327a7202704SKiran Venkatappa 		.src_sz_max = 2048,
328a7202704SKiran Venkatappa 		.dest_nentries = 0,
329a7202704SKiran Venkatappa 	},
330a7202704SKiran Venkatappa 
331a7202704SKiran Venkatappa 	/* CE8: target autonomous hif_memcpy */
332a7202704SKiran Venkatappa 	{
333a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
334a7202704SKiran Venkatappa 		.src_nentries = 0,
335a7202704SKiran Venkatappa 		.src_sz_max = 0,
336a7202704SKiran Venkatappa 		.dest_nentries = 0,
337a7202704SKiran Venkatappa 	},
338a7202704SKiran Venkatappa 
339a7202704SKiran Venkatappa 	/* CE9: MHI */
340a7202704SKiran Venkatappa 	{
341a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
342a7202704SKiran Venkatappa 		.src_nentries = 0,
343a7202704SKiran Venkatappa 		.src_sz_max = 0,
344a7202704SKiran Venkatappa 		.dest_nentries = 0,
345a7202704SKiran Venkatappa 	},
346a7202704SKiran Venkatappa 
347a7202704SKiran Venkatappa 	/* CE10: MHI */
348a7202704SKiran Venkatappa 	{
349a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
350a7202704SKiran Venkatappa 		.src_nentries = 0,
351a7202704SKiran Venkatappa 		.src_sz_max = 0,
352a7202704SKiran Venkatappa 		.dest_nentries = 0,
353a7202704SKiran Venkatappa 	},
354a7202704SKiran Venkatappa 
355a7202704SKiran Venkatappa 	/* CE11: MHI */
356a7202704SKiran Venkatappa 	{
357a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
358a7202704SKiran Venkatappa 		.src_nentries = 0,
359a7202704SKiran Venkatappa 		.src_sz_max = 0,
360a7202704SKiran Venkatappa 		.dest_nentries = 0,
361a7202704SKiran Venkatappa 	},
362a7202704SKiran Venkatappa 
363a7202704SKiran Venkatappa 	/* CE12: CV Prefetch */
364a7202704SKiran Venkatappa 	{
365a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
366a7202704SKiran Venkatappa 		.src_nentries = 0,
367a7202704SKiran Venkatappa 		.src_sz_max = 0,
368a7202704SKiran Venkatappa 		.dest_nentries = 0,
369a7202704SKiran Venkatappa 	},
370a7202704SKiran Venkatappa 
371a7202704SKiran Venkatappa 	/* CE13: CV Prefetch */
372a7202704SKiran Venkatappa 	{
373a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
374a7202704SKiran Venkatappa 		.src_nentries = 0,
375a7202704SKiran Venkatappa 		.src_sz_max = 0,
376a7202704SKiran Venkatappa 		.dest_nentries = 0,
377a7202704SKiran Venkatappa 	},
378a7202704SKiran Venkatappa 
379a7202704SKiran Venkatappa 	/* CE14: target->host dbg log */
380a7202704SKiran Venkatappa 	{
381a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
382a7202704SKiran Venkatappa 		.src_nentries = 0,
383a7202704SKiran Venkatappa 		.src_sz_max = 2048,
384a7202704SKiran Venkatappa 		.dest_nentries = 512,
385a7202704SKiran Venkatappa 		.recv_cb = ath12k_htc_rx_completion_handler,
386a7202704SKiran Venkatappa 	},
387a7202704SKiran Venkatappa 
388a7202704SKiran Venkatappa 	/* CE15: reserved for future use */
389a7202704SKiran Venkatappa 	{
390a7202704SKiran Venkatappa 		.flags = (CE_ATTR_FLAGS | CE_ATTR_DIS_INTR),
391a7202704SKiran Venkatappa 		.src_nentries = 0,
392a7202704SKiran Venkatappa 		.src_sz_max = 0,
393a7202704SKiran Venkatappa 		.dest_nentries = 0,
394a7202704SKiran Venkatappa 	},
395a7202704SKiran Venkatappa };
396a7202704SKiran Venkatappa 
397a7202704SKiran Venkatappa /* Copy Engine (CE) configs for WCN7850 */
398a7202704SKiran Venkatappa /* Target firmware's Copy Engine configuration. */
399*bce3b73dSKiran Venkatappa const struct ce_pipe_config ath12k_wifi7_target_ce_config_wlan_wcn7850[] = {
400a7202704SKiran Venkatappa 	/* CE0: host->target HTC control and raw streams */
401a7202704SKiran Venkatappa 	{
402a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(0),
403a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_OUT),
404a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
405a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
406a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
407a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
408a7202704SKiran Venkatappa 	},
409a7202704SKiran Venkatappa 
410a7202704SKiran Venkatappa 	/* CE1: target->host HTT + HTC control */
411a7202704SKiran Venkatappa 	{
412a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(1),
413a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_IN),
414a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
415a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
416a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
417a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
418a7202704SKiran Venkatappa 	},
419a7202704SKiran Venkatappa 
420a7202704SKiran Venkatappa 	/* CE2: target->host WMI */
421a7202704SKiran Venkatappa 	{
422a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(2),
423a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_IN),
424a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
425a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
426a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
427a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
428a7202704SKiran Venkatappa 	},
429a7202704SKiran Venkatappa 
430a7202704SKiran Venkatappa 	/* CE3: host->target WMI */
431a7202704SKiran Venkatappa 	{
432a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(3),
433a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_OUT),
434a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
435a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
436a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
437a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
438a7202704SKiran Venkatappa 	},
439a7202704SKiran Venkatappa 
440a7202704SKiran Venkatappa 	/* CE4: host->target HTT */
441a7202704SKiran Venkatappa 	{
442a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(4),
443a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_OUT),
444a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(256),
445a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(256),
446a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS | CE_ATTR_DIS_INTR),
447a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
448a7202704SKiran Venkatappa 	},
449a7202704SKiran Venkatappa 
450a7202704SKiran Venkatappa 	/* CE5: target->host Pktlog */
451a7202704SKiran Venkatappa 	{
452a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(5),
453a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_IN),
454a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
455a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
456a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
457a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
458a7202704SKiran Venkatappa 	},
459a7202704SKiran Venkatappa 
460a7202704SKiran Venkatappa 	/* CE6: Reserved for target autonomous hif_memcpy */
461a7202704SKiran Venkatappa 	{
462a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(6),
463a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_INOUT),
464a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
465a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(16384),
466a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
467a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
468a7202704SKiran Venkatappa 	},
469a7202704SKiran Venkatappa 
470a7202704SKiran Venkatappa 	/* CE7 used only by Host */
471a7202704SKiran Venkatappa 	{
472a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(7),
473a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_INOUT_H2H),
474a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(0),
475a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(0),
476a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS | CE_ATTR_DIS_INTR),
477a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
478a7202704SKiran Venkatappa 	},
479a7202704SKiran Venkatappa 
480a7202704SKiran Venkatappa 	/* CE8 target->host used only by IPA */
481a7202704SKiran Venkatappa 	{
482a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(8),
483a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_INOUT),
484a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
485a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(16384),
486a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
487a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
488a7202704SKiran Venkatappa 	},
489a7202704SKiran Venkatappa 	/* CE 9, 10, 11 are used by MHI driver */
490a7202704SKiran Venkatappa };
491a7202704SKiran Venkatappa 
492*bce3b73dSKiran Venkatappa const struct service_to_pipe
493*bce3b73dSKiran Venkatappa ath12k_wifi7_target_service_to_ce_map_wlan_wcn7850[] = {
494a7202704SKiran Venkatappa 	{
495a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VO),
496a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
497a7202704SKiran Venkatappa 		__cpu_to_le32(3),
498a7202704SKiran Venkatappa 	},
499a7202704SKiran Venkatappa 	{
500a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VO),
501a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
502a7202704SKiran Venkatappa 		__cpu_to_le32(2),
503a7202704SKiran Venkatappa 	},
504a7202704SKiran Venkatappa 	{
505a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BK),
506a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
507a7202704SKiran Venkatappa 		__cpu_to_le32(3),
508a7202704SKiran Venkatappa 	},
509a7202704SKiran Venkatappa 	{
510a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BK),
511a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
512a7202704SKiran Venkatappa 		__cpu_to_le32(2),
513a7202704SKiran Venkatappa 	},
514a7202704SKiran Venkatappa 	{
515a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BE),
516a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
517a7202704SKiran Venkatappa 		__cpu_to_le32(3),
518a7202704SKiran Venkatappa 	},
519a7202704SKiran Venkatappa 	{
520a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BE),
521a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
522a7202704SKiran Venkatappa 		__cpu_to_le32(2),
523a7202704SKiran Venkatappa 	},
524a7202704SKiran Venkatappa 	{
525a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VI),
526a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
527a7202704SKiran Venkatappa 		__cpu_to_le32(3),
528a7202704SKiran Venkatappa 	},
529a7202704SKiran Venkatappa 	{
530a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VI),
531a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
532a7202704SKiran Venkatappa 		__cpu_to_le32(2),
533a7202704SKiran Venkatappa 	},
534a7202704SKiran Venkatappa 	{
535a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL),
536a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
537a7202704SKiran Venkatappa 		__cpu_to_le32(3),
538a7202704SKiran Venkatappa 	},
539a7202704SKiran Venkatappa 	{
540a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL),
541a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
542a7202704SKiran Venkatappa 		__cpu_to_le32(2),
543a7202704SKiran Venkatappa 	},
544a7202704SKiran Venkatappa 	{
545a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_RSVD_CTRL),
546a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
547a7202704SKiran Venkatappa 		__cpu_to_le32(0),
548a7202704SKiran Venkatappa 	},
549a7202704SKiran Venkatappa 	{
550a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_RSVD_CTRL),
551a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
552a7202704SKiran Venkatappa 		__cpu_to_le32(2),
553a7202704SKiran Venkatappa 	},
554a7202704SKiran Venkatappa 	{
555a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_HTT_DATA_MSG),
556a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
557a7202704SKiran Venkatappa 		__cpu_to_le32(4),
558a7202704SKiran Venkatappa 	},
559a7202704SKiran Venkatappa 	{
560a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_HTT_DATA_MSG),
561a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
562a7202704SKiran Venkatappa 		__cpu_to_le32(1),
563a7202704SKiran Venkatappa 	},
564a7202704SKiran Venkatappa 
565a7202704SKiran Venkatappa 	/* (Additions here) */
566a7202704SKiran Venkatappa 
567a7202704SKiran Venkatappa 	{ /* must be last */
568a7202704SKiran Venkatappa 		__cpu_to_le32(0),
569a7202704SKiran Venkatappa 		__cpu_to_le32(0),
570a7202704SKiran Venkatappa 		__cpu_to_le32(0),
571a7202704SKiran Venkatappa 	},
572a7202704SKiran Venkatappa };
573a7202704SKiran Venkatappa 
574*bce3b73dSKiran Venkatappa const struct ce_attr ath12k_wifi7_host_ce_config_wcn7850[] = {
575a7202704SKiran Venkatappa 	/* CE0: host->target HTC control and raw streams */
576a7202704SKiran Venkatappa 	{
577a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
578a7202704SKiran Venkatappa 		.src_nentries = 16,
579a7202704SKiran Venkatappa 		.src_sz_max = 2048,
580a7202704SKiran Venkatappa 		.dest_nentries = 0,
581a7202704SKiran Venkatappa 	},
582a7202704SKiran Venkatappa 
583a7202704SKiran Venkatappa 	/* CE1: target->host HTT + HTC control */
584a7202704SKiran Venkatappa 	{
585a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
586a7202704SKiran Venkatappa 		.src_nentries = 0,
587a7202704SKiran Venkatappa 		.src_sz_max = 2048,
588a7202704SKiran Venkatappa 		.dest_nentries = 512,
589a7202704SKiran Venkatappa 		.recv_cb = ath12k_htc_rx_completion_handler,
590a7202704SKiran Venkatappa 	},
591a7202704SKiran Venkatappa 
592a7202704SKiran Venkatappa 	/* CE2: target->host WMI */
593a7202704SKiran Venkatappa 	{
594a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
595a7202704SKiran Venkatappa 		.src_nentries = 0,
596a7202704SKiran Venkatappa 		.src_sz_max = 2048,
597a7202704SKiran Venkatappa 		.dest_nentries = 64,
598a7202704SKiran Venkatappa 		.recv_cb = ath12k_htc_rx_completion_handler,
599a7202704SKiran Venkatappa 	},
600a7202704SKiran Venkatappa 
601a7202704SKiran Venkatappa 	/* CE3: host->target WMI (mac0) */
602a7202704SKiran Venkatappa 	{
603a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
604a7202704SKiran Venkatappa 		.src_nentries = 32,
605a7202704SKiran Venkatappa 		.src_sz_max = 2048,
606a7202704SKiran Venkatappa 		.dest_nentries = 0,
607a7202704SKiran Venkatappa 	},
608a7202704SKiran Venkatappa 
609a7202704SKiran Venkatappa 	/* CE4: host->target HTT */
610a7202704SKiran Venkatappa 	{
611a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
612a7202704SKiran Venkatappa 		.src_nentries = 2048,
613a7202704SKiran Venkatappa 		.src_sz_max = 256,
614a7202704SKiran Venkatappa 		.dest_nentries = 0,
615a7202704SKiran Venkatappa 	},
616a7202704SKiran Venkatappa 
617a7202704SKiran Venkatappa 	/* CE5: target->host pktlog */
618a7202704SKiran Venkatappa 	{
619a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
620a7202704SKiran Venkatappa 		.src_nentries = 0,
621a7202704SKiran Venkatappa 		.src_sz_max = 0,
622a7202704SKiran Venkatappa 		.dest_nentries = 0,
623a7202704SKiran Venkatappa 	},
624a7202704SKiran Venkatappa 
625a7202704SKiran Venkatappa 	/* CE6: target autonomous hif_memcpy */
626a7202704SKiran Venkatappa 	{
627a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
628a7202704SKiran Venkatappa 		.src_nentries = 0,
629a7202704SKiran Venkatappa 		.src_sz_max = 0,
630a7202704SKiran Venkatappa 		.dest_nentries = 0,
631a7202704SKiran Venkatappa 	},
632a7202704SKiran Venkatappa 
633a7202704SKiran Venkatappa 	/* CE7: host->target WMI (mac1) */
634a7202704SKiran Venkatappa 	{
635a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
636a7202704SKiran Venkatappa 		.src_nentries = 0,
637a7202704SKiran Venkatappa 		.src_sz_max = 2048,
638a7202704SKiran Venkatappa 		.dest_nentries = 0,
639a7202704SKiran Venkatappa 	},
640a7202704SKiran Venkatappa 
641a7202704SKiran Venkatappa 	/* CE8: target autonomous hif_memcpy */
642a7202704SKiran Venkatappa 	{
643a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
644a7202704SKiran Venkatappa 		.src_nentries = 0,
645a7202704SKiran Venkatappa 		.src_sz_max = 0,
646a7202704SKiran Venkatappa 		.dest_nentries = 0,
647a7202704SKiran Venkatappa 	},
648a7202704SKiran Venkatappa };
649a7202704SKiran Venkatappa 
650a7202704SKiran Venkatappa /* Copy Engine (CE) configs for IPQ5332 */
651a7202704SKiran Venkatappa /* Target firmware's Copy Engine configuration. */
652*bce3b73dSKiran Venkatappa const struct ce_pipe_config ath12k_wifi7_target_ce_config_wlan_ipq5332[] = {
653a7202704SKiran Venkatappa 	/* CE0: host->target HTC control and raw streams */
654a7202704SKiran Venkatappa 	{
655a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(0),
656a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_OUT),
657a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
658a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
659a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
660a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
661a7202704SKiran Venkatappa 	},
662a7202704SKiran Venkatappa 
663a7202704SKiran Venkatappa 	/* CE1: target->host HTT */
664a7202704SKiran Venkatappa 	{
665a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(1),
666a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_IN),
667a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
668a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
669a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
670a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
671a7202704SKiran Venkatappa 	},
672a7202704SKiran Venkatappa 
673a7202704SKiran Venkatappa 	/* CE2: target->host WMI  + HTC control */
674a7202704SKiran Venkatappa 	{
675a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(2),
676a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_IN),
677a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
678a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
679a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
680a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
681a7202704SKiran Venkatappa 	},
682a7202704SKiran Venkatappa 
683a7202704SKiran Venkatappa 	/* CE3: host->target WMI */
684a7202704SKiran Venkatappa 	{
685a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(3),
686a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_OUT),
687a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
688a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
689a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
690a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
691a7202704SKiran Venkatappa 	},
692a7202704SKiran Venkatappa 
693a7202704SKiran Venkatappa 	/* CE4: host->target HTT */
694a7202704SKiran Venkatappa 	{
695a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(4),
696a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_OUT),
697a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(256),
698a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(256),
699a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS | CE_ATTR_DIS_INTR),
700a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
701a7202704SKiran Venkatappa 	},
702a7202704SKiran Venkatappa 
703a7202704SKiran Venkatappa 	/* CE5: Target -> host PKTLOG */
704a7202704SKiran Venkatappa 	{
705a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(5),
706a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_IN),
707a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
708a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
709a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
710a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
711a7202704SKiran Venkatappa 	},
712a7202704SKiran Venkatappa 
713a7202704SKiran Venkatappa 	/* CE6: Reserved for target autonomous HIF_memcpy */
714a7202704SKiran Venkatappa 	{
715a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(6),
716a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_INOUT),
717a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
718a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(16384),
719a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
720a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
721a7202704SKiran Venkatappa 	},
722a7202704SKiran Venkatappa 
723a7202704SKiran Venkatappa 	/* CE7: Reserved for CV Prefetch */
724a7202704SKiran Venkatappa 	{
725a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(7),
726a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_OUT),
727a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
728a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
729a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
730a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
731a7202704SKiran Venkatappa 	},
732a7202704SKiran Venkatappa 
733a7202704SKiran Venkatappa 	/* CE8: Reserved for target generic HIF memcpy */
734a7202704SKiran Venkatappa 	{
735a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(8),
736a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_INOUT),
737a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
738a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(16384),
739a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
740a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
741a7202704SKiran Venkatappa 	},
742a7202704SKiran Venkatappa 
743a7202704SKiran Venkatappa 	/* CE9: WMI logging/CFR/Spectral/Radar/ */
744a7202704SKiran Venkatappa 	{
745a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(9),
746a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_IN),
747a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(32),
748a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(2048),
749a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(CE_ATTR_FLAGS),
750a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
751a7202704SKiran Venkatappa 	},
752a7202704SKiran Venkatappa 
753a7202704SKiran Venkatappa 	/* CE10: Unused TBD */
754a7202704SKiran Venkatappa 	{
755a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(10),
756a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_NONE),
757a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(0),
758a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(0),
759a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(0),
760a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
761a7202704SKiran Venkatappa 	},
762a7202704SKiran Venkatappa 	/* CE11: Unused TBD */
763a7202704SKiran Venkatappa 	{
764a7202704SKiran Venkatappa 		.pipenum = __cpu_to_le32(11),
765a7202704SKiran Venkatappa 		.pipedir = __cpu_to_le32(PIPEDIR_NONE),
766a7202704SKiran Venkatappa 		.nentries = __cpu_to_le32(0),
767a7202704SKiran Venkatappa 		.nbytes_max = __cpu_to_le32(0),
768a7202704SKiran Venkatappa 		.flags = __cpu_to_le32(0),
769a7202704SKiran Venkatappa 		.reserved = __cpu_to_le32(0),
770a7202704SKiran Venkatappa 	},
771a7202704SKiran Venkatappa };
772a7202704SKiran Venkatappa 
773*bce3b73dSKiran Venkatappa const struct service_to_pipe
774*bce3b73dSKiran Venkatappa ath12k_wifi7_target_service_to_ce_map_wlan_ipq5332[] = {
775a7202704SKiran Venkatappa 	{
776a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VO),
777a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
778a7202704SKiran Venkatappa 		__cpu_to_le32(3),
779a7202704SKiran Venkatappa 	},
780a7202704SKiran Venkatappa 	{
781a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VO),
782a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
783a7202704SKiran Venkatappa 		__cpu_to_le32(2),
784a7202704SKiran Venkatappa 	},
785a7202704SKiran Venkatappa 	{
786a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BK),
787a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
788a7202704SKiran Venkatappa 		__cpu_to_le32(3),
789a7202704SKiran Venkatappa 	},
790a7202704SKiran Venkatappa 	{
791a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BK),
792a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
793a7202704SKiran Venkatappa 		__cpu_to_le32(2),
794a7202704SKiran Venkatappa 	},
795a7202704SKiran Venkatappa 	{
796a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BE),
797a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
798a7202704SKiran Venkatappa 		__cpu_to_le32(3),
799a7202704SKiran Venkatappa 	},
800a7202704SKiran Venkatappa 	{
801a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BE),
802a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
803a7202704SKiran Venkatappa 		__cpu_to_le32(2),
804a7202704SKiran Venkatappa 	},
805a7202704SKiran Venkatappa 	{
806a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VI),
807a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
808a7202704SKiran Venkatappa 		__cpu_to_le32(3),
809a7202704SKiran Venkatappa 	},
810a7202704SKiran Venkatappa 	{
811a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VI),
812a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
813a7202704SKiran Venkatappa 		__cpu_to_le32(2),
814a7202704SKiran Venkatappa 	},
815a7202704SKiran Venkatappa 	{
816a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL),
817a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
818a7202704SKiran Venkatappa 		__cpu_to_le32(3),
819a7202704SKiran Venkatappa 	},
820a7202704SKiran Venkatappa 	{
821a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL),
822a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
823a7202704SKiran Venkatappa 		__cpu_to_le32(2),
824a7202704SKiran Venkatappa 	},
825a7202704SKiran Venkatappa 	{
826a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_RSVD_CTRL),
827a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
828a7202704SKiran Venkatappa 		__cpu_to_le32(0),
829a7202704SKiran Venkatappa 	},
830a7202704SKiran Venkatappa 	{
831a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_RSVD_CTRL),
832a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
833a7202704SKiran Venkatappa 		__cpu_to_le32(1),
834a7202704SKiran Venkatappa 	},
835a7202704SKiran Venkatappa 	{
836a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_TEST_RAW_STREAMS),
837a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
838a7202704SKiran Venkatappa 		__cpu_to_le32(0),
839a7202704SKiran Venkatappa 	},
840a7202704SKiran Venkatappa 	{
841a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_TEST_RAW_STREAMS),
842a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
843a7202704SKiran Venkatappa 		__cpu_to_le32(1),
844a7202704SKiran Venkatappa 	},
845a7202704SKiran Venkatappa 	{
846a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_HTT_DATA_MSG),
847a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_OUT),
848a7202704SKiran Venkatappa 		__cpu_to_le32(4),
849a7202704SKiran Venkatappa 	},
850a7202704SKiran Venkatappa 	{
851a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_HTT_DATA_MSG),
852a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
853a7202704SKiran Venkatappa 		__cpu_to_le32(1),
854a7202704SKiran Venkatappa 	},
855a7202704SKiran Venkatappa 	{
856a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_PKT_LOG),
857a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
858a7202704SKiran Venkatappa 		__cpu_to_le32(5),
859a7202704SKiran Venkatappa 	},
860a7202704SKiran Venkatappa 	{
861a7202704SKiran Venkatappa 		__cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL_DIAG),
862a7202704SKiran Venkatappa 		__cpu_to_le32(PIPEDIR_IN),
863a7202704SKiran Venkatappa 		__cpu_to_le32(9),
864a7202704SKiran Venkatappa 	},
865a7202704SKiran Venkatappa 	/* (Additions here) */
866a7202704SKiran Venkatappa 
867a7202704SKiran Venkatappa 	{ /* must be last */
868a7202704SKiran Venkatappa 		__cpu_to_le32(0),
869a7202704SKiran Venkatappa 		__cpu_to_le32(0),
870a7202704SKiran Venkatappa 		__cpu_to_le32(0),
871a7202704SKiran Venkatappa 	},
872a7202704SKiran Venkatappa };
873a7202704SKiran Venkatappa 
874*bce3b73dSKiran Venkatappa const struct ce_attr ath12k_wifi7_host_ce_config_ipq5332[] = {
875a7202704SKiran Venkatappa 	/* CE0: host->target HTC control and raw streams */
876a7202704SKiran Venkatappa 	{
877a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
878a7202704SKiran Venkatappa 		.src_nentries = 16,
879a7202704SKiran Venkatappa 		.src_sz_max = 2048,
880a7202704SKiran Venkatappa 		.dest_nentries = 0,
881a7202704SKiran Venkatappa 	},
882a7202704SKiran Venkatappa 
883a7202704SKiran Venkatappa 	/* CE1: target->host HTT + HTC control */
884a7202704SKiran Venkatappa 	{
885a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
886a7202704SKiran Venkatappa 		.src_nentries = 0,
887a7202704SKiran Venkatappa 		.src_sz_max = 2048,
888a7202704SKiran Venkatappa 		.dest_nentries = 512,
889a7202704SKiran Venkatappa 		.recv_cb = ath12k_htc_rx_completion_handler,
890a7202704SKiran Venkatappa 	},
891a7202704SKiran Venkatappa 
892a7202704SKiran Venkatappa 	/* CE2: target->host WMI */
893a7202704SKiran Venkatappa 	{
894a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
895a7202704SKiran Venkatappa 		.src_nentries = 0,
896a7202704SKiran Venkatappa 		.src_sz_max = 2048,
897a7202704SKiran Venkatappa 		.dest_nentries = 128,
898a7202704SKiran Venkatappa 		.recv_cb = ath12k_htc_rx_completion_handler,
899a7202704SKiran Venkatappa 	},
900a7202704SKiran Venkatappa 
901a7202704SKiran Venkatappa 	/* CE3: host->target WMI */
902a7202704SKiran Venkatappa 	{
903a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
904a7202704SKiran Venkatappa 		.src_nentries = 32,
905a7202704SKiran Venkatappa 		.src_sz_max = 2048,
906a7202704SKiran Venkatappa 		.dest_nentries = 0,
907a7202704SKiran Venkatappa 	},
908a7202704SKiran Venkatappa 
909a7202704SKiran Venkatappa 	/* CE4: host->target HTT */
910a7202704SKiran Venkatappa 	{
911a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
912a7202704SKiran Venkatappa 		.src_nentries = 2048,
913a7202704SKiran Venkatappa 		.src_sz_max = 256,
914a7202704SKiran Venkatappa 		.dest_nentries = 0,
915a7202704SKiran Venkatappa 	},
916a7202704SKiran Venkatappa 
917a7202704SKiran Venkatappa 	/* CE5: target -> host PKTLOG */
918a7202704SKiran Venkatappa 	{
919a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
920a7202704SKiran Venkatappa 		.src_nentries = 0,
921a7202704SKiran Venkatappa 		.src_sz_max = 2048,
922a7202704SKiran Venkatappa 		.dest_nentries = 512,
923a7202704SKiran Venkatappa 		.recv_cb = ath12k_dp_htt_htc_t2h_msg_handler,
924a7202704SKiran Venkatappa 	},
925a7202704SKiran Venkatappa 
926a7202704SKiran Venkatappa 	/* CE6: Target autonomous HIF_memcpy */
927a7202704SKiran Venkatappa 	{
928a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
929a7202704SKiran Venkatappa 		.src_nentries = 0,
930a7202704SKiran Venkatappa 		.src_sz_max = 0,
931a7202704SKiran Venkatappa 		.dest_nentries = 0,
932a7202704SKiran Venkatappa 	},
933a7202704SKiran Venkatappa 
934a7202704SKiran Venkatappa 	/* CE7: CV Prefetch */
935a7202704SKiran Venkatappa 	{
936a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
937a7202704SKiran Venkatappa 		.src_nentries = 0,
938a7202704SKiran Venkatappa 		.src_sz_max = 0,
939a7202704SKiran Venkatappa 		.dest_nentries = 0,
940a7202704SKiran Venkatappa 	},
941a7202704SKiran Venkatappa 
942a7202704SKiran Venkatappa 	/* CE8: Target HIF memcpy (Generic HIF memcypy) */
943a7202704SKiran Venkatappa 	{
944a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
945a7202704SKiran Venkatappa 		.src_nentries = 0,
946a7202704SKiran Venkatappa 		.src_sz_max = 0,
947a7202704SKiran Venkatappa 		.dest_nentries = 0,
948a7202704SKiran Venkatappa 	},
949a7202704SKiran Venkatappa 
950a7202704SKiran Venkatappa 	/* CE9: WMI logging/CFR/Spectral/Radar */
951a7202704SKiran Venkatappa 	{
952a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS,
953a7202704SKiran Venkatappa 		.src_nentries = 0,
954a7202704SKiran Venkatappa 		.src_sz_max = 2048,
955a7202704SKiran Venkatappa 		.dest_nentries = 128,
956a7202704SKiran Venkatappa 	},
957a7202704SKiran Venkatappa 
958a7202704SKiran Venkatappa 	/* CE10: Unused */
959a7202704SKiran Venkatappa 	{
960a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
961a7202704SKiran Venkatappa 		.src_nentries = 0,
962a7202704SKiran Venkatappa 		.src_sz_max = 0,
963a7202704SKiran Venkatappa 		.dest_nentries = 0,
964a7202704SKiran Venkatappa 	},
965a7202704SKiran Venkatappa 
966a7202704SKiran Venkatappa 	/* CE11: Unused */
967a7202704SKiran Venkatappa 	{
968a7202704SKiran Venkatappa 		.flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR,
969a7202704SKiran Venkatappa 		.src_nentries = 0,
970a7202704SKiran Venkatappa 		.src_sz_max = 0,
971a7202704SKiran Venkatappa 		.dest_nentries = 0,
972a7202704SKiran Venkatappa 	},
973a7202704SKiran Venkatappa };
974