Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2020 The Linux Foundation. All rights reserved.
4 */
5
6#include <linux/module.h>
7#include <linux/soc/qcom/qmi.h>
8
9#include "pdr_internal.h"
10
11const struct qmi_elem_info servreg_location_entry_ei[] = {
12 {
13 .data_type = QMI_STRING,
14 .elem_len = SERVREG_NAME_LENGTH + 1,
15 .elem_size = sizeof(char),
16 .array_type = NO_ARRAY,
17 .tlv_type = 0,
18 .offset = offsetof(struct servreg_location_entry,
19 name),
20 },
21 {
22 .data_type = QMI_UNSIGNED_4_BYTE,
23 .elem_len = 1,
24 .elem_size = sizeof(u32),
25 .array_type = NO_ARRAY,
26 .tlv_type = 0,
27 .offset = offsetof(struct servreg_location_entry,
28 instance),
29 },
30 {
31 .data_type = QMI_UNSIGNED_1_BYTE,
32 .elem_len = 1,
33 .elem_size = sizeof(u8),
34 .array_type = NO_ARRAY,
35 .tlv_type = 0,
36 .offset = offsetof(struct servreg_location_entry,
37 service_data_valid),
38 },
39 {
40 .data_type = QMI_UNSIGNED_4_BYTE,
41 .elem_len = 1,
42 .elem_size = sizeof(u32),
43 .array_type = NO_ARRAY,
44 .tlv_type = 0,
45 .offset = offsetof(struct servreg_location_entry,
46 service_data),
47 },
48 {}
49};
50EXPORT_SYMBOL_GPL(servreg_location_entry_ei);
51
52const struct qmi_elem_info servreg_get_domain_list_req_ei[] = {
53 {
54 .data_type = QMI_STRING,
55 .elem_len = SERVREG_NAME_LENGTH + 1,
56 .elem_size = sizeof(char),
57 .array_type = NO_ARRAY,
58 .tlv_type = 0x01,
59 .offset = offsetof(struct servreg_get_domain_list_req,
60 service_name),
61 },
62 {
63 .data_type = QMI_OPT_FLAG,
64 .elem_len = 1,
65 .elem_size = sizeof(u8),
66 .array_type = NO_ARRAY,
67 .tlv_type = 0x10,
68 .offset = offsetof(struct servreg_get_domain_list_req,
69 domain_offset_valid),
70 },
71 {
72 .data_type = QMI_UNSIGNED_4_BYTE,
73 .elem_len = 1,
74 .elem_size = sizeof(u32),
75 .array_type = NO_ARRAY,
76 .tlv_type = 0x10,
77 .offset = offsetof(struct servreg_get_domain_list_req,
78 domain_offset),
79 },
80 {}
81};
82EXPORT_SYMBOL_GPL(servreg_get_domain_list_req_ei);
83
84const struct qmi_elem_info servreg_get_domain_list_resp_ei[] = {
85 {
86 .data_type = QMI_STRUCT,
87 .elem_len = 1,
88 .elem_size = sizeof(struct qmi_response_type_v01),
89 .array_type = NO_ARRAY,
90 .tlv_type = 0x02,
91 .offset = offsetof(struct servreg_get_domain_list_resp,
92 resp),
93 .ei_array = qmi_response_type_v01_ei,
94 },
95 {
96 .data_type = QMI_OPT_FLAG,
97 .elem_len = 1,
98 .elem_size = sizeof(u8),
99 .array_type = NO_ARRAY,
100 .tlv_type = 0x10,
101 .offset = offsetof(struct servreg_get_domain_list_resp,
102 total_domains_valid),
103 },
104 {
105 .data_type = QMI_UNSIGNED_2_BYTE,
106 .elem_len = 1,
107 .elem_size = sizeof(u16),
108 .array_type = NO_ARRAY,
109 .tlv_type = 0x10,
110 .offset = offsetof(struct servreg_get_domain_list_resp,
111 total_domains),
112 },
113 {
114 .data_type = QMI_OPT_FLAG,
115 .elem_len = 1,
116 .elem_size = sizeof(u8),
117 .array_type = NO_ARRAY,
118 .tlv_type = 0x11,
119 .offset = offsetof(struct servreg_get_domain_list_resp,
120 db_rev_count_valid),
121 },
122 {
123 .data_type = QMI_UNSIGNED_2_BYTE,
124 .elem_len = 1,
125 .elem_size = sizeof(u16),
126 .array_type = NO_ARRAY,
127 .tlv_type = 0x11,
128 .offset = offsetof(struct servreg_get_domain_list_resp,
129 db_rev_count),
130 },
131 {
132 .data_type = QMI_OPT_FLAG,
133 .elem_len = 1,
134 .elem_size = sizeof(u8),
135 .array_type = NO_ARRAY,
136 .tlv_type = 0x12,
137 .offset = offsetof(struct servreg_get_domain_list_resp,
138 domain_list_valid),
139 },
140 {
141 .data_type = QMI_DATA_LEN,
142 .elem_len = 1,
143 .elem_size = sizeof(u8),
144 .array_type = NO_ARRAY,
145 .tlv_type = 0x12,
146 .offset = offsetof(struct servreg_get_domain_list_resp,
147 domain_list_len),
148 },
149 {
150 .data_type = QMI_STRUCT,
151 .elem_len = SERVREG_DOMAIN_LIST_LENGTH,
152 .elem_size = sizeof(struct servreg_location_entry),
153 .array_type = VAR_LEN_ARRAY,
154 .tlv_type = 0x12,
155 .offset = offsetof(struct servreg_get_domain_list_resp,
156 domain_list),
157 .ei_array = servreg_location_entry_ei,
158 },
159 {}
160};
161EXPORT_SYMBOL_GPL(servreg_get_domain_list_resp_ei);
162
163const struct qmi_elem_info servreg_register_listener_req_ei[] = {
164 {
165 .data_type = QMI_UNSIGNED_1_BYTE,
166 .elem_len = 1,
167 .elem_size = sizeof(u8),
168 .array_type = NO_ARRAY,
169 .tlv_type = 0x01,
170 .offset = offsetof(struct servreg_register_listener_req,
171 enable),
172 },
173 {
174 .data_type = QMI_STRING,
175 .elem_len = SERVREG_NAME_LENGTH + 1,
176 .elem_size = sizeof(char),
177 .array_type = NO_ARRAY,
178 .tlv_type = 0x02,
179 .offset = offsetof(struct servreg_register_listener_req,
180 service_path),
181 },
182 {}
183};
184EXPORT_SYMBOL_GPL(servreg_register_listener_req_ei);
185
186const struct qmi_elem_info servreg_register_listener_resp_ei[] = {
187 {
188 .data_type = QMI_STRUCT,
189 .elem_len = 1,
190 .elem_size = sizeof(struct qmi_response_type_v01),
191 .array_type = NO_ARRAY,
192 .tlv_type = 0x02,
193 .offset = offsetof(struct servreg_register_listener_resp,
194 resp),
195 .ei_array = qmi_response_type_v01_ei,
196 },
197 {
198 .data_type = QMI_OPT_FLAG,
199 .elem_len = 1,
200 .elem_size = sizeof(u8),
201 .array_type = NO_ARRAY,
202 .tlv_type = 0x10,
203 .offset = offsetof(struct servreg_register_listener_resp,
204 curr_state_valid),
205 },
206 {
207 .data_type = QMI_SIGNED_4_BYTE_ENUM,
208 .elem_len = 1,
209 .elem_size = sizeof(enum servreg_service_state),
210 .array_type = NO_ARRAY,
211 .tlv_type = 0x10,
212 .offset = offsetof(struct servreg_register_listener_resp,
213 curr_state),
214 },
215 {}
216};
217EXPORT_SYMBOL_GPL(servreg_register_listener_resp_ei);
218
219const struct qmi_elem_info servreg_restart_pd_req_ei[] = {
220 {
221 .data_type = QMI_STRING,
222 .elem_len = SERVREG_NAME_LENGTH + 1,
223 .elem_size = sizeof(char),
224 .array_type = NO_ARRAY,
225 .tlv_type = 0x01,
226 .offset = offsetof(struct servreg_restart_pd_req,
227 service_path),
228 },
229 {}
230};
231EXPORT_SYMBOL_GPL(servreg_restart_pd_req_ei);
232
233const struct qmi_elem_info servreg_restart_pd_resp_ei[] = {
234 {
235 .data_type = QMI_STRUCT,
236 .elem_len = 1,
237 .elem_size = sizeof(struct qmi_response_type_v01),
238 .array_type = NO_ARRAY,
239 .tlv_type = 0x02,
240 .offset = offsetof(struct servreg_restart_pd_resp,
241 resp),
242 .ei_array = qmi_response_type_v01_ei,
243 },
244 {}
245};
246EXPORT_SYMBOL_GPL(servreg_restart_pd_resp_ei);
247
248const struct qmi_elem_info servreg_state_updated_ind_ei[] = {
249 {
250 .data_type = QMI_SIGNED_4_BYTE_ENUM,
251 .elem_len = 1,
252 .elem_size = sizeof(u32),
253 .array_type = NO_ARRAY,
254 .tlv_type = 0x01,
255 .offset = offsetof(struct servreg_state_updated_ind,
256 curr_state),
257 },
258 {
259 .data_type = QMI_STRING,
260 .elem_len = SERVREG_NAME_LENGTH + 1,
261 .elem_size = sizeof(char),
262 .array_type = NO_ARRAY,
263 .tlv_type = 0x02,
264 .offset = offsetof(struct servreg_state_updated_ind,
265 service_path),
266 },
267 {
268 .data_type = QMI_UNSIGNED_2_BYTE,
269 .elem_len = 1,
270 .elem_size = sizeof(u16),
271 .array_type = NO_ARRAY,
272 .tlv_type = 0x03,
273 .offset = offsetof(struct servreg_state_updated_ind,
274 transaction_id),
275 },
276 {}
277};
278EXPORT_SYMBOL_GPL(servreg_state_updated_ind_ei);
279
280const struct qmi_elem_info servreg_set_ack_req_ei[] = {
281 {
282 .data_type = QMI_STRING,
283 .elem_len = SERVREG_NAME_LENGTH + 1,
284 .elem_size = sizeof(char),
285 .array_type = NO_ARRAY,
286 .tlv_type = 0x01,
287 .offset = offsetof(struct servreg_set_ack_req,
288 service_path),
289 },
290 {
291 .data_type = QMI_UNSIGNED_2_BYTE,
292 .elem_len = 1,
293 .elem_size = sizeof(u16),
294 .array_type = NO_ARRAY,
295 .tlv_type = 0x02,
296 .offset = offsetof(struct servreg_set_ack_req,
297 transaction_id),
298 },
299 {}
300};
301EXPORT_SYMBOL_GPL(servreg_set_ack_req_ei);
302
303const struct qmi_elem_info servreg_set_ack_resp_ei[] = {
304 {
305 .data_type = QMI_STRUCT,
306 .elem_len = 1,
307 .elem_size = sizeof(struct qmi_response_type_v01),
308 .array_type = NO_ARRAY,
309 .tlv_type = 0x02,
310 .offset = offsetof(struct servreg_set_ack_resp,
311 resp),
312 .ei_array = qmi_response_type_v01_ei,
313 },
314 {}
315};
316EXPORT_SYMBOL_GPL(servreg_set_ack_resp_ei);
317
318const struct qmi_elem_info servreg_loc_pfr_req_ei[] = {
319 {
320 .data_type = QMI_STRING,
321 .elem_len = SERVREG_NAME_LENGTH + 1,
322 .elem_size = sizeof(char),
323 .array_type = VAR_LEN_ARRAY,
324 .tlv_type = 0x01,
325 .offset = offsetof(struct servreg_loc_pfr_req, service)
326 },
327 {
328 .data_type = QMI_STRING,
329 .elem_len = SERVREG_NAME_LENGTH + 1,
330 .elem_size = sizeof(char),
331 .array_type = VAR_LEN_ARRAY,
332 .tlv_type = 0x02,
333 .offset = offsetof(struct servreg_loc_pfr_req, reason)
334 },
335 {}
336};
337EXPORT_SYMBOL_GPL(servreg_loc_pfr_req_ei);
338
339const struct qmi_elem_info servreg_loc_pfr_resp_ei[] = {
340 {
341 .data_type = QMI_STRUCT,
342 .elem_len = 1,
343 .elem_size = sizeof_field(struct servreg_loc_pfr_resp, rsp),
344 .tlv_type = 0x02,
345 .offset = offsetof(struct servreg_loc_pfr_resp, rsp),
346 .ei_array = qmi_response_type_v01_ei,
347 },
348 {}
349};
350EXPORT_SYMBOL_GPL(servreg_loc_pfr_resp_ei);
351
352MODULE_LICENSE("GPL");
353MODULE_DESCRIPTION("Qualcomm Protection Domain messages data");