xref: /wlan-driver/platform/cnss_utils/cnss_plat_ipc_service_v01.c (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name // SPDX-License-Identifier: GPL-2.0-only
2*5113495bSYour Name /* Copyright (c) 2021, The Linux Foundation. All rights reserved. */
3*5113495bSYour Name 
4*5113495bSYour Name #include "cnss_plat_ipc_service_v01.h"
5*5113495bSYour Name #include <linux/module.h>
6*5113495bSYour Name 
7*5113495bSYour Name struct qmi_elem_info cnss_plat_ipc_qmi_init_setup_req_msg_v01_ei[] = {
8*5113495bSYour Name 	{
9*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_1_BYTE,
10*5113495bSYour Name 		.elem_len       = 1,
11*5113495bSYour Name 		.elem_size      = sizeof(u8),
12*5113495bSYour Name 		.array_type       = NO_ARRAY,
13*5113495bSYour Name 		.tlv_type       = 0x01,
14*5113495bSYour Name 		.offset         = offsetof(struct
15*5113495bSYour Name 					   cnss_plat_ipc_qmi_init_setup_req_msg_v01,
16*5113495bSYour Name 					   dms_mac_addr_supported),
17*5113495bSYour Name 	},
18*5113495bSYour Name 	{
19*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_1_BYTE,
20*5113495bSYour Name 		.elem_len       = 1,
21*5113495bSYour Name 		.elem_size      = sizeof(u8),
22*5113495bSYour Name 		.array_type       = NO_ARRAY,
23*5113495bSYour Name 		.tlv_type       = 0x02,
24*5113495bSYour Name 		.offset         = offsetof(struct
25*5113495bSYour Name 					   cnss_plat_ipc_qmi_init_setup_req_msg_v01,
26*5113495bSYour Name 					   qdss_hw_trace_override),
27*5113495bSYour Name 	},
28*5113495bSYour Name 	{
29*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_4_BYTE,
30*5113495bSYour Name 		.elem_len       = 1,
31*5113495bSYour Name 		.elem_size      = sizeof(u32),
32*5113495bSYour Name 		.array_type       = NO_ARRAY,
33*5113495bSYour Name 		.tlv_type       = 0x03,
34*5113495bSYour Name 		.offset         = offsetof(struct
35*5113495bSYour Name 					   cnss_plat_ipc_qmi_init_setup_req_msg_v01,
36*5113495bSYour Name 					   cal_file_available_bitmask),
37*5113495bSYour Name 	},
38*5113495bSYour Name 	{
39*5113495bSYour Name 		.data_type      = QMI_EOTI,
40*5113495bSYour Name 		.array_type       = NO_ARRAY,
41*5113495bSYour Name 		.tlv_type       = QMI_COMMON_TLV_TYPE,
42*5113495bSYour Name 	},
43*5113495bSYour Name };
44*5113495bSYour Name EXPORT_SYMBOL(cnss_plat_ipc_qmi_init_setup_req_msg_v01_ei);
45*5113495bSYour Name 
46*5113495bSYour Name struct qmi_elem_info cnss_plat_ipc_qmi_init_setup_resp_msg_v01_ei[] = {
47*5113495bSYour Name 	{
48*5113495bSYour Name 		.data_type      = QMI_STRUCT,
49*5113495bSYour Name 		.elem_len       = 1,
50*5113495bSYour Name 		.elem_size      = sizeof(struct qmi_response_type_v01),
51*5113495bSYour Name 		.array_type       = NO_ARRAY,
52*5113495bSYour Name 		.tlv_type       = 0x02,
53*5113495bSYour Name 		.offset         = offsetof(struct
54*5113495bSYour Name 					   cnss_plat_ipc_qmi_init_setup_resp_msg_v01,
55*5113495bSYour Name 					   resp),
56*5113495bSYour Name 		.ei_array      = qmi_response_type_v01_ei,
57*5113495bSYour Name 	},
58*5113495bSYour Name 	{
59*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_8_BYTE,
60*5113495bSYour Name 		.elem_len       = 1,
61*5113495bSYour Name 		.elem_size      = sizeof(u64),
62*5113495bSYour Name 		.array_type       = NO_ARRAY,
63*5113495bSYour Name 		.tlv_type       = 0x03,
64*5113495bSYour Name 		.offset         = offsetof(struct
65*5113495bSYour Name 					   cnss_plat_ipc_qmi_init_setup_resp_msg_v01,
66*5113495bSYour Name 					   drv_status),
67*5113495bSYour Name 	},
68*5113495bSYour Name 	{
69*5113495bSYour Name 		.data_type      = QMI_EOTI,
70*5113495bSYour Name 		.array_type       = NO_ARRAY,
71*5113495bSYour Name 		.tlv_type       = QMI_COMMON_TLV_TYPE,
72*5113495bSYour Name 	},
73*5113495bSYour Name };
74*5113495bSYour Name EXPORT_SYMBOL(cnss_plat_ipc_qmi_init_setup_resp_msg_v01_ei);
75*5113495bSYour Name 
76*5113495bSYour Name struct qmi_elem_info cnss_plat_ipc_qmi_file_download_ind_msg_v01_ei[] = {
77*5113495bSYour Name 	{
78*5113495bSYour Name 		.data_type      = QMI_STRING,
79*5113495bSYour Name 		.elem_len       = CNSS_PLAT_IPC_QMI_MAX_FILE_NAME_LEN_V01 + 1,
80*5113495bSYour Name 		.elem_size      = sizeof(char),
81*5113495bSYour Name 		.array_type       = NO_ARRAY,
82*5113495bSYour Name 		.tlv_type       = 0x01,
83*5113495bSYour Name 		.offset         = offsetof(struct
84*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_download_ind_msg_v01,
85*5113495bSYour Name 					   file_name),
86*5113495bSYour Name 	},
87*5113495bSYour Name 	{
88*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_4_BYTE,
89*5113495bSYour Name 		.elem_len       = 1,
90*5113495bSYour Name 		.elem_size      = sizeof(u32),
91*5113495bSYour Name 		.array_type       = NO_ARRAY,
92*5113495bSYour Name 		.tlv_type       = 0x02,
93*5113495bSYour Name 		.offset         = offsetof(struct
94*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_download_ind_msg_v01,
95*5113495bSYour Name 					   file_id),
96*5113495bSYour Name 	},
97*5113495bSYour Name 	{
98*5113495bSYour Name 		.data_type      = QMI_EOTI,
99*5113495bSYour Name 		.array_type       = NO_ARRAY,
100*5113495bSYour Name 		.tlv_type       = QMI_COMMON_TLV_TYPE,
101*5113495bSYour Name 	},
102*5113495bSYour Name };
103*5113495bSYour Name EXPORT_SYMBOL(cnss_plat_ipc_qmi_file_download_ind_msg_v01_ei);
104*5113495bSYour Name 
105*5113495bSYour Name struct qmi_elem_info cnss_plat_ipc_qmi_file_download_req_msg_v01_ei[] = {
106*5113495bSYour Name 	{
107*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_4_BYTE,
108*5113495bSYour Name 		.elem_len       = 1,
109*5113495bSYour Name 		.elem_size      = sizeof(u32),
110*5113495bSYour Name 		.array_type       = NO_ARRAY,
111*5113495bSYour Name 		.tlv_type       = 0x01,
112*5113495bSYour Name 		.offset         = offsetof(struct
113*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_download_req_msg_v01,
114*5113495bSYour Name 					   file_id),
115*5113495bSYour Name 	},
116*5113495bSYour Name 	{
117*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_4_BYTE,
118*5113495bSYour Name 		.elem_len       = 1,
119*5113495bSYour Name 		.elem_size      = sizeof(u32),
120*5113495bSYour Name 		.array_type       = NO_ARRAY,
121*5113495bSYour Name 		.tlv_type       = 0x02,
122*5113495bSYour Name 		.offset         = offsetof(struct
123*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_download_req_msg_v01,
124*5113495bSYour Name 					   file_size),
125*5113495bSYour Name 	},
126*5113495bSYour Name 	{
127*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_1_BYTE,
128*5113495bSYour Name 		.elem_len       = 1,
129*5113495bSYour Name 		.elem_size      = sizeof(u8),
130*5113495bSYour Name 		.array_type       = NO_ARRAY,
131*5113495bSYour Name 		.tlv_type       = 0x03,
132*5113495bSYour Name 		.offset         = offsetof(struct
133*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_download_req_msg_v01,
134*5113495bSYour Name 					   end),
135*5113495bSYour Name 	},
136*5113495bSYour Name 	{
137*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_4_BYTE,
138*5113495bSYour Name 		.elem_len       = 1,
139*5113495bSYour Name 		.elem_size      = sizeof(u32),
140*5113495bSYour Name 		.array_type       = NO_ARRAY,
141*5113495bSYour Name 		.tlv_type       = 0x04,
142*5113495bSYour Name 		.offset         = offsetof(struct
143*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_download_req_msg_v01,
144*5113495bSYour Name 					   seg_index),
145*5113495bSYour Name 	},
146*5113495bSYour Name 	{
147*5113495bSYour Name 		.data_type      = QMI_DATA_LEN,
148*5113495bSYour Name 		.elem_len       = 1,
149*5113495bSYour Name 		.elem_size      = sizeof(u16),
150*5113495bSYour Name 		.array_type       = NO_ARRAY,
151*5113495bSYour Name 		.tlv_type       = 0x05,
152*5113495bSYour Name 		.offset         = offsetof(struct
153*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_download_req_msg_v01,
154*5113495bSYour Name 					   seg_buf_len),
155*5113495bSYour Name 	},
156*5113495bSYour Name 	{
157*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_1_BYTE,
158*5113495bSYour Name 		.elem_len       = CNSS_PLAT_IPC_QMI_MAX_DATA_SIZE_V01,
159*5113495bSYour Name 		.elem_size      = sizeof(u8),
160*5113495bSYour Name 		.array_type       = VAR_LEN_ARRAY,
161*5113495bSYour Name 		.tlv_type       = 0x05,
162*5113495bSYour Name 		.offset         = offsetof(struct
163*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_download_req_msg_v01,
164*5113495bSYour Name 					   seg_buf),
165*5113495bSYour Name 	},
166*5113495bSYour Name 	{
167*5113495bSYour Name 		.data_type      = QMI_EOTI,
168*5113495bSYour Name 		.array_type       = NO_ARRAY,
169*5113495bSYour Name 		.tlv_type       = QMI_COMMON_TLV_TYPE,
170*5113495bSYour Name 	},
171*5113495bSYour Name };
172*5113495bSYour Name EXPORT_SYMBOL(cnss_plat_ipc_qmi_file_download_req_msg_v01_ei);
173*5113495bSYour Name 
174*5113495bSYour Name struct qmi_elem_info cnss_plat_ipc_qmi_file_download_resp_msg_v01_ei[] = {
175*5113495bSYour Name 	{
176*5113495bSYour Name 		.data_type      = QMI_STRUCT,
177*5113495bSYour Name 		.elem_len       = 1,
178*5113495bSYour Name 		.elem_size      = sizeof(struct qmi_response_type_v01),
179*5113495bSYour Name 		.array_type       = NO_ARRAY,
180*5113495bSYour Name 		.tlv_type       = 0x02,
181*5113495bSYour Name 		.offset         = offsetof(struct
182*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_download_resp_msg_v01,
183*5113495bSYour Name 					   resp),
184*5113495bSYour Name 		.ei_array      = qmi_response_type_v01_ei,
185*5113495bSYour Name 	},
186*5113495bSYour Name 	{
187*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_4_BYTE,
188*5113495bSYour Name 		.elem_len       = 1,
189*5113495bSYour Name 		.elem_size      = sizeof(u32),
190*5113495bSYour Name 		.array_type       = NO_ARRAY,
191*5113495bSYour Name 		.tlv_type       = 0x03,
192*5113495bSYour Name 		.offset         = offsetof(struct
193*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_download_resp_msg_v01,
194*5113495bSYour Name 					   file_id),
195*5113495bSYour Name 	},
196*5113495bSYour Name 	{
197*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_4_BYTE,
198*5113495bSYour Name 		.elem_len       = 1,
199*5113495bSYour Name 		.elem_size      = sizeof(u32),
200*5113495bSYour Name 		.array_type       = NO_ARRAY,
201*5113495bSYour Name 		.tlv_type       = 0x04,
202*5113495bSYour Name 		.offset         = offsetof(struct
203*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_download_resp_msg_v01,
204*5113495bSYour Name 					   seg_index),
205*5113495bSYour Name 	},
206*5113495bSYour Name 	{
207*5113495bSYour Name 		.data_type      = QMI_EOTI,
208*5113495bSYour Name 		.array_type       = NO_ARRAY,
209*5113495bSYour Name 		.tlv_type       = QMI_COMMON_TLV_TYPE,
210*5113495bSYour Name 	},
211*5113495bSYour Name };
212*5113495bSYour Name EXPORT_SYMBOL(cnss_plat_ipc_qmi_file_download_resp_msg_v01_ei);
213*5113495bSYour Name 
214*5113495bSYour Name struct qmi_elem_info cnss_plat_ipc_qmi_file_upload_ind_msg_v01_ei[] = {
215*5113495bSYour Name 	{
216*5113495bSYour Name 		.data_type      = QMI_STRING,
217*5113495bSYour Name 		.elem_len       = CNSS_PLAT_IPC_QMI_MAX_FILE_NAME_LEN_V01 + 1,
218*5113495bSYour Name 		.elem_size      = sizeof(char),
219*5113495bSYour Name 		.array_type       = NO_ARRAY,
220*5113495bSYour Name 		.tlv_type       = 0x01,
221*5113495bSYour Name 		.offset         = offsetof(struct
222*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_upload_ind_msg_v01,
223*5113495bSYour Name 					   file_name),
224*5113495bSYour Name 	},
225*5113495bSYour Name 	{
226*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_4_BYTE,
227*5113495bSYour Name 		.elem_len       = 1,
228*5113495bSYour Name 		.elem_size      = sizeof(u32),
229*5113495bSYour Name 		.array_type       = NO_ARRAY,
230*5113495bSYour Name 		.tlv_type       = 0x02,
231*5113495bSYour Name 		.offset         = offsetof(struct
232*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_upload_ind_msg_v01,
233*5113495bSYour Name 					   file_id),
234*5113495bSYour Name 	},
235*5113495bSYour Name 	{
236*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_4_BYTE,
237*5113495bSYour Name 		.elem_len       = 1,
238*5113495bSYour Name 		.elem_size      = sizeof(u32),
239*5113495bSYour Name 		.array_type       = NO_ARRAY,
240*5113495bSYour Name 		.tlv_type       = 0x03,
241*5113495bSYour Name 		.offset         = offsetof(struct
242*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_upload_ind_msg_v01,
243*5113495bSYour Name 					   file_size),
244*5113495bSYour Name 	},
245*5113495bSYour Name 	{
246*5113495bSYour Name 		.data_type      = QMI_EOTI,
247*5113495bSYour Name 		.array_type       = NO_ARRAY,
248*5113495bSYour Name 		.tlv_type       = QMI_COMMON_TLV_TYPE,
249*5113495bSYour Name 	},
250*5113495bSYour Name };
251*5113495bSYour Name EXPORT_SYMBOL(cnss_plat_ipc_qmi_file_upload_ind_msg_v01_ei);
252*5113495bSYour Name 
253*5113495bSYour Name struct qmi_elem_info cnss_plat_ipc_qmi_file_upload_req_msg_v01_ei[] = {
254*5113495bSYour Name 	{
255*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_4_BYTE,
256*5113495bSYour Name 		.elem_len       = 1,
257*5113495bSYour Name 		.elem_size      = sizeof(u32),
258*5113495bSYour Name 		.array_type       = NO_ARRAY,
259*5113495bSYour Name 		.tlv_type       = 0x01,
260*5113495bSYour Name 		.offset         = offsetof(struct
261*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_upload_req_msg_v01,
262*5113495bSYour Name 					   file_id),
263*5113495bSYour Name 	},
264*5113495bSYour Name 	{
265*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_4_BYTE,
266*5113495bSYour Name 		.elem_len       = 1,
267*5113495bSYour Name 		.elem_size      = sizeof(u32),
268*5113495bSYour Name 		.array_type       = NO_ARRAY,
269*5113495bSYour Name 		.tlv_type       = 0x02,
270*5113495bSYour Name 		.offset         = offsetof(struct
271*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_upload_req_msg_v01,
272*5113495bSYour Name 					   seg_index),
273*5113495bSYour Name 	},
274*5113495bSYour Name 	{
275*5113495bSYour Name 		.data_type      = QMI_EOTI,
276*5113495bSYour Name 		.array_type       = NO_ARRAY,
277*5113495bSYour Name 		.tlv_type       = QMI_COMMON_TLV_TYPE,
278*5113495bSYour Name 	},
279*5113495bSYour Name };
280*5113495bSYour Name EXPORT_SYMBOL(cnss_plat_ipc_qmi_file_upload_req_msg_v01_ei);
281*5113495bSYour Name 
282*5113495bSYour Name struct qmi_elem_info cnss_plat_ipc_qmi_file_upload_resp_msg_v01_ei[] = {
283*5113495bSYour Name 	{
284*5113495bSYour Name 		.data_type      = QMI_STRUCT,
285*5113495bSYour Name 		.elem_len       = 1,
286*5113495bSYour Name 		.elem_size      = sizeof(struct qmi_response_type_v01),
287*5113495bSYour Name 		.array_type       = NO_ARRAY,
288*5113495bSYour Name 		.tlv_type       = 0x02,
289*5113495bSYour Name 		.offset         = offsetof(struct
290*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_upload_resp_msg_v01,
291*5113495bSYour Name 					   resp),
292*5113495bSYour Name 		.ei_array      = qmi_response_type_v01_ei,
293*5113495bSYour Name 	},
294*5113495bSYour Name 	{
295*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_4_BYTE,
296*5113495bSYour Name 		.elem_len       = 1,
297*5113495bSYour Name 		.elem_size      = sizeof(u32),
298*5113495bSYour Name 		.array_type       = NO_ARRAY,
299*5113495bSYour Name 		.tlv_type       = 0x03,
300*5113495bSYour Name 		.offset         = offsetof(struct
301*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_upload_resp_msg_v01,
302*5113495bSYour Name 					   file_id),
303*5113495bSYour Name 	},
304*5113495bSYour Name 	{
305*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_1_BYTE,
306*5113495bSYour Name 		.elem_len       = 1,
307*5113495bSYour Name 		.elem_size      = sizeof(u8),
308*5113495bSYour Name 		.array_type       = NO_ARRAY,
309*5113495bSYour Name 		.tlv_type       = 0x04,
310*5113495bSYour Name 		.offset         = offsetof(struct
311*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_upload_resp_msg_v01,
312*5113495bSYour Name 					   end),
313*5113495bSYour Name 	},
314*5113495bSYour Name 	{
315*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_4_BYTE,
316*5113495bSYour Name 		.elem_len       = 1,
317*5113495bSYour Name 		.elem_size      = sizeof(u32),
318*5113495bSYour Name 		.array_type       = NO_ARRAY,
319*5113495bSYour Name 		.tlv_type       = 0x05,
320*5113495bSYour Name 		.offset         = offsetof(struct
321*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_upload_resp_msg_v01,
322*5113495bSYour Name 					   seg_index),
323*5113495bSYour Name 	},
324*5113495bSYour Name 	{
325*5113495bSYour Name 		.data_type      = QMI_DATA_LEN,
326*5113495bSYour Name 		.elem_len       = 1,
327*5113495bSYour Name 		.elem_size      = sizeof(u16),
328*5113495bSYour Name 		.array_type       = NO_ARRAY,
329*5113495bSYour Name 		.tlv_type       = 0x06,
330*5113495bSYour Name 		.offset         = offsetof(struct
331*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_upload_resp_msg_v01,
332*5113495bSYour Name 					   seg_buf_len),
333*5113495bSYour Name 	},
334*5113495bSYour Name 	{
335*5113495bSYour Name 		.data_type      = QMI_UNSIGNED_1_BYTE,
336*5113495bSYour Name 		.elem_len       = CNSS_PLAT_IPC_QMI_MAX_DATA_SIZE_V01,
337*5113495bSYour Name 		.elem_size      = sizeof(u8),
338*5113495bSYour Name 		.array_type       = VAR_LEN_ARRAY,
339*5113495bSYour Name 		.tlv_type       = 0x06,
340*5113495bSYour Name 		.offset         = offsetof(struct
341*5113495bSYour Name 					   cnss_plat_ipc_qmi_file_upload_resp_msg_v01,
342*5113495bSYour Name 					   seg_buf),
343*5113495bSYour Name 	},
344*5113495bSYour Name 	{
345*5113495bSYour Name 		.data_type      = QMI_EOTI,
346*5113495bSYour Name 		.array_type       = NO_ARRAY,
347*5113495bSYour Name 		.tlv_type       = QMI_COMMON_TLV_TYPE,
348*5113495bSYour Name 	},
349*5113495bSYour Name };
350*5113495bSYour Name EXPORT_SYMBOL(cnss_plat_ipc_qmi_file_upload_resp_msg_v01_ei);
351*5113495bSYour Name 
352*5113495bSYour Name struct qmi_elem_info cnss_plat_ipc_qmi_reg_client_req_msg_v01_ei[] = {
353*5113495bSYour Name 	{
354*5113495bSYour Name 		.data_type      = QMI_OPT_FLAG,
355*5113495bSYour Name 		.elem_len       = 1,
356*5113495bSYour Name 		.elem_size      = sizeof(u8),
357*5113495bSYour Name 		.array_type       = NO_ARRAY,
358*5113495bSYour Name 		.tlv_type       = 0x10,
359*5113495bSYour Name 		.offset         = offsetof(struct
360*5113495bSYour Name 					   cnss_plat_ipc_qmi_reg_client_req_msg_v01,
361*5113495bSYour Name 					   client_id_valid),
362*5113495bSYour Name 	},
363*5113495bSYour Name 	{
364*5113495bSYour Name 		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
365*5113495bSYour Name 		.elem_len       = 1,
366*5113495bSYour Name 		.elem_size      = sizeof(enum cnss_plat_ipc_qmi_client_id_v01),
367*5113495bSYour Name 		.array_type       = NO_ARRAY,
368*5113495bSYour Name 		.tlv_type       = 0x10,
369*5113495bSYour Name 		.offset         = offsetof(struct
370*5113495bSYour Name 					   cnss_plat_ipc_qmi_reg_client_req_msg_v01,
371*5113495bSYour Name 					   client_id),
372*5113495bSYour Name 	},
373*5113495bSYour Name 	{
374*5113495bSYour Name 		.data_type      = QMI_EOTI,
375*5113495bSYour Name 		.array_type       = NO_ARRAY,
376*5113495bSYour Name 		.tlv_type       = QMI_COMMON_TLV_TYPE,
377*5113495bSYour Name 	},
378*5113495bSYour Name };
379*5113495bSYour Name EXPORT_SYMBOL(cnss_plat_ipc_qmi_reg_client_req_msg_v01_ei);
380*5113495bSYour Name 
381*5113495bSYour Name struct qmi_elem_info cnss_plat_ipc_qmi_reg_client_resp_msg_v01_ei[] = {
382*5113495bSYour Name 	{
383*5113495bSYour Name 		.data_type      = QMI_STRUCT,
384*5113495bSYour Name 		.elem_len       = 1,
385*5113495bSYour Name 		.elem_size      = sizeof(struct qmi_response_type_v01),
386*5113495bSYour Name 		.array_type       = NO_ARRAY,
387*5113495bSYour Name 		.tlv_type       = 0x02,
388*5113495bSYour Name 		.offset         = offsetof(struct
389*5113495bSYour Name 					   cnss_plat_ipc_qmi_reg_client_resp_msg_v01,
390*5113495bSYour Name 					   resp),
391*5113495bSYour Name 		.ei_array      = qmi_response_type_v01_ei,
392*5113495bSYour Name 	},
393*5113495bSYour Name 	{
394*5113495bSYour Name 		.data_type      = QMI_EOTI,
395*5113495bSYour Name 		.array_type       = NO_ARRAY,
396*5113495bSYour Name 		.tlv_type       = QMI_COMMON_TLV_TYPE,
397*5113495bSYour Name 	},
398*5113495bSYour Name };
399*5113495bSYour Name EXPORT_SYMBOL(cnss_plat_ipc_qmi_reg_client_resp_msg_v01_ei);
400*5113495bSYour Name 
401*5113495bSYour Name MODULE_LICENSE("GPL v2");
402*5113495bSYour Name MODULE_DESCRIPTION("WLAN FW QMI service");
403