162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef __QCOM_PDR_HELPER_INTERNAL__
362306a36Sopenharmony_ci#define __QCOM_PDR_HELPER_INTERNAL__
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#include <linux/soc/qcom/pdr.h>
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#define SERVREG_LOCATOR_SERVICE				0x40
862306a36Sopenharmony_ci#define SERVREG_NOTIFIER_SERVICE			0x42
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#define SERVREG_REGISTER_LISTENER_REQ			0x20
1162306a36Sopenharmony_ci#define SERVREG_GET_DOMAIN_LIST_REQ			0x21
1262306a36Sopenharmony_ci#define SERVREG_STATE_UPDATED_IND_ID			0x22
1362306a36Sopenharmony_ci#define SERVREG_SET_ACK_REQ				0x23
1462306a36Sopenharmony_ci#define SERVREG_RESTART_PD_REQ				0x24
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#define SERVREG_DOMAIN_LIST_LENGTH			32
1762306a36Sopenharmony_ci#define SERVREG_RESTART_PD_REQ_MAX_LEN			67
1862306a36Sopenharmony_ci#define SERVREG_REGISTER_LISTENER_REQ_LEN		71
1962306a36Sopenharmony_ci#define SERVREG_SET_ACK_REQ_LEN				72
2062306a36Sopenharmony_ci#define SERVREG_GET_DOMAIN_LIST_REQ_MAX_LEN		74
2162306a36Sopenharmony_ci#define SERVREG_STATE_UPDATED_IND_MAX_LEN		79
2262306a36Sopenharmony_ci#define SERVREG_GET_DOMAIN_LIST_RESP_MAX_LEN		2389
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_cistruct servreg_location_entry {
2562306a36Sopenharmony_ci	char name[SERVREG_NAME_LENGTH + 1];
2662306a36Sopenharmony_ci	u8 service_data_valid;
2762306a36Sopenharmony_ci	u32 service_data;
2862306a36Sopenharmony_ci	u32 instance;
2962306a36Sopenharmony_ci};
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_cistatic const struct qmi_elem_info servreg_location_entry_ei[] = {
3262306a36Sopenharmony_ci	{
3362306a36Sopenharmony_ci		.data_type      = QMI_STRING,
3462306a36Sopenharmony_ci		.elem_len       = SERVREG_NAME_LENGTH + 1,
3562306a36Sopenharmony_ci		.elem_size      = sizeof(char),
3662306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
3762306a36Sopenharmony_ci		.tlv_type       = 0,
3862306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_location_entry,
3962306a36Sopenharmony_ci					   name),
4062306a36Sopenharmony_ci	},
4162306a36Sopenharmony_ci	{
4262306a36Sopenharmony_ci		.data_type      = QMI_UNSIGNED_4_BYTE,
4362306a36Sopenharmony_ci		.elem_len       = 1,
4462306a36Sopenharmony_ci		.elem_size      = sizeof(u32),
4562306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
4662306a36Sopenharmony_ci		.tlv_type       = 0,
4762306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_location_entry,
4862306a36Sopenharmony_ci					   instance),
4962306a36Sopenharmony_ci	},
5062306a36Sopenharmony_ci	{
5162306a36Sopenharmony_ci		.data_type      = QMI_UNSIGNED_1_BYTE,
5262306a36Sopenharmony_ci		.elem_len       = 1,
5362306a36Sopenharmony_ci		.elem_size      = sizeof(u8),
5462306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
5562306a36Sopenharmony_ci		.tlv_type       = 0,
5662306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_location_entry,
5762306a36Sopenharmony_ci					   service_data_valid),
5862306a36Sopenharmony_ci	},
5962306a36Sopenharmony_ci	{
6062306a36Sopenharmony_ci		.data_type      = QMI_UNSIGNED_4_BYTE,
6162306a36Sopenharmony_ci		.elem_len       = 1,
6262306a36Sopenharmony_ci		.elem_size      = sizeof(u32),
6362306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
6462306a36Sopenharmony_ci		.tlv_type       = 0,
6562306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_location_entry,
6662306a36Sopenharmony_ci					   service_data),
6762306a36Sopenharmony_ci	},
6862306a36Sopenharmony_ci	{}
6962306a36Sopenharmony_ci};
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_cistruct servreg_get_domain_list_req {
7262306a36Sopenharmony_ci	char service_name[SERVREG_NAME_LENGTH + 1];
7362306a36Sopenharmony_ci	u8 domain_offset_valid;
7462306a36Sopenharmony_ci	u32 domain_offset;
7562306a36Sopenharmony_ci};
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_cistatic const struct qmi_elem_info servreg_get_domain_list_req_ei[] = {
7862306a36Sopenharmony_ci	{
7962306a36Sopenharmony_ci		.data_type      = QMI_STRING,
8062306a36Sopenharmony_ci		.elem_len       = SERVREG_NAME_LENGTH + 1,
8162306a36Sopenharmony_ci		.elem_size      = sizeof(char),
8262306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
8362306a36Sopenharmony_ci		.tlv_type       = 0x01,
8462306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_get_domain_list_req,
8562306a36Sopenharmony_ci					   service_name),
8662306a36Sopenharmony_ci	},
8762306a36Sopenharmony_ci	{
8862306a36Sopenharmony_ci		.data_type      = QMI_OPT_FLAG,
8962306a36Sopenharmony_ci		.elem_len       = 1,
9062306a36Sopenharmony_ci		.elem_size      = sizeof(u8),
9162306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
9262306a36Sopenharmony_ci		.tlv_type       = 0x10,
9362306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_get_domain_list_req,
9462306a36Sopenharmony_ci					   domain_offset_valid),
9562306a36Sopenharmony_ci	},
9662306a36Sopenharmony_ci	{
9762306a36Sopenharmony_ci		.data_type      = QMI_UNSIGNED_4_BYTE,
9862306a36Sopenharmony_ci		.elem_len       = 1,
9962306a36Sopenharmony_ci		.elem_size      = sizeof(u32),
10062306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
10162306a36Sopenharmony_ci		.tlv_type       = 0x10,
10262306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_get_domain_list_req,
10362306a36Sopenharmony_ci					   domain_offset),
10462306a36Sopenharmony_ci	},
10562306a36Sopenharmony_ci	{}
10662306a36Sopenharmony_ci};
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_cistruct servreg_get_domain_list_resp {
10962306a36Sopenharmony_ci	struct qmi_response_type_v01 resp;
11062306a36Sopenharmony_ci	u8 total_domains_valid;
11162306a36Sopenharmony_ci	u16 total_domains;
11262306a36Sopenharmony_ci	u8 db_rev_count_valid;
11362306a36Sopenharmony_ci	u16 db_rev_count;
11462306a36Sopenharmony_ci	u8 domain_list_valid;
11562306a36Sopenharmony_ci	u32 domain_list_len;
11662306a36Sopenharmony_ci	struct servreg_location_entry domain_list[SERVREG_DOMAIN_LIST_LENGTH];
11762306a36Sopenharmony_ci};
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_cistatic const struct qmi_elem_info servreg_get_domain_list_resp_ei[] = {
12062306a36Sopenharmony_ci	{
12162306a36Sopenharmony_ci		.data_type      = QMI_STRUCT,
12262306a36Sopenharmony_ci		.elem_len       = 1,
12362306a36Sopenharmony_ci		.elem_size      = sizeof(struct qmi_response_type_v01),
12462306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
12562306a36Sopenharmony_ci		.tlv_type       = 0x02,
12662306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_get_domain_list_resp,
12762306a36Sopenharmony_ci					   resp),
12862306a36Sopenharmony_ci		.ei_array      = qmi_response_type_v01_ei,
12962306a36Sopenharmony_ci	},
13062306a36Sopenharmony_ci	{
13162306a36Sopenharmony_ci		.data_type      = QMI_OPT_FLAG,
13262306a36Sopenharmony_ci		.elem_len       = 1,
13362306a36Sopenharmony_ci		.elem_size      = sizeof(u8),
13462306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
13562306a36Sopenharmony_ci		.tlv_type       = 0x10,
13662306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_get_domain_list_resp,
13762306a36Sopenharmony_ci					   total_domains_valid),
13862306a36Sopenharmony_ci	},
13962306a36Sopenharmony_ci	{
14062306a36Sopenharmony_ci		.data_type      = QMI_UNSIGNED_2_BYTE,
14162306a36Sopenharmony_ci		.elem_len       = 1,
14262306a36Sopenharmony_ci		.elem_size      = sizeof(u16),
14362306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
14462306a36Sopenharmony_ci		.tlv_type       = 0x10,
14562306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_get_domain_list_resp,
14662306a36Sopenharmony_ci					   total_domains),
14762306a36Sopenharmony_ci	},
14862306a36Sopenharmony_ci	{
14962306a36Sopenharmony_ci		.data_type      = QMI_OPT_FLAG,
15062306a36Sopenharmony_ci		.elem_len       = 1,
15162306a36Sopenharmony_ci		.elem_size      = sizeof(u8),
15262306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
15362306a36Sopenharmony_ci		.tlv_type       = 0x11,
15462306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_get_domain_list_resp,
15562306a36Sopenharmony_ci					   db_rev_count_valid),
15662306a36Sopenharmony_ci	},
15762306a36Sopenharmony_ci	{
15862306a36Sopenharmony_ci		.data_type      = QMI_UNSIGNED_2_BYTE,
15962306a36Sopenharmony_ci		.elem_len       = 1,
16062306a36Sopenharmony_ci		.elem_size      = sizeof(u16),
16162306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
16262306a36Sopenharmony_ci		.tlv_type       = 0x11,
16362306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_get_domain_list_resp,
16462306a36Sopenharmony_ci					   db_rev_count),
16562306a36Sopenharmony_ci	},
16662306a36Sopenharmony_ci	{
16762306a36Sopenharmony_ci		.data_type      = QMI_OPT_FLAG,
16862306a36Sopenharmony_ci		.elem_len       = 1,
16962306a36Sopenharmony_ci		.elem_size      = sizeof(u8),
17062306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
17162306a36Sopenharmony_ci		.tlv_type       = 0x12,
17262306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_get_domain_list_resp,
17362306a36Sopenharmony_ci					   domain_list_valid),
17462306a36Sopenharmony_ci	},
17562306a36Sopenharmony_ci	{
17662306a36Sopenharmony_ci		.data_type      = QMI_DATA_LEN,
17762306a36Sopenharmony_ci		.elem_len       = 1,
17862306a36Sopenharmony_ci		.elem_size      = sizeof(u8),
17962306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
18062306a36Sopenharmony_ci		.tlv_type       = 0x12,
18162306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_get_domain_list_resp,
18262306a36Sopenharmony_ci					   domain_list_len),
18362306a36Sopenharmony_ci	},
18462306a36Sopenharmony_ci	{
18562306a36Sopenharmony_ci		.data_type      = QMI_STRUCT,
18662306a36Sopenharmony_ci		.elem_len       = SERVREG_DOMAIN_LIST_LENGTH,
18762306a36Sopenharmony_ci		.elem_size      = sizeof(struct servreg_location_entry),
18862306a36Sopenharmony_ci		.array_type	= VAR_LEN_ARRAY,
18962306a36Sopenharmony_ci		.tlv_type       = 0x12,
19062306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_get_domain_list_resp,
19162306a36Sopenharmony_ci					   domain_list),
19262306a36Sopenharmony_ci		.ei_array      = servreg_location_entry_ei,
19362306a36Sopenharmony_ci	},
19462306a36Sopenharmony_ci	{}
19562306a36Sopenharmony_ci};
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_cistruct servreg_register_listener_req {
19862306a36Sopenharmony_ci	u8 enable;
19962306a36Sopenharmony_ci	char service_path[SERVREG_NAME_LENGTH + 1];
20062306a36Sopenharmony_ci};
20162306a36Sopenharmony_ci
20262306a36Sopenharmony_cistatic const struct qmi_elem_info servreg_register_listener_req_ei[] = {
20362306a36Sopenharmony_ci	{
20462306a36Sopenharmony_ci		.data_type      = QMI_UNSIGNED_1_BYTE,
20562306a36Sopenharmony_ci		.elem_len       = 1,
20662306a36Sopenharmony_ci		.elem_size      = sizeof(u8),
20762306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
20862306a36Sopenharmony_ci		.tlv_type       = 0x01,
20962306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_register_listener_req,
21062306a36Sopenharmony_ci					   enable),
21162306a36Sopenharmony_ci	},
21262306a36Sopenharmony_ci	{
21362306a36Sopenharmony_ci		.data_type      = QMI_STRING,
21462306a36Sopenharmony_ci		.elem_len       = SERVREG_NAME_LENGTH + 1,
21562306a36Sopenharmony_ci		.elem_size      = sizeof(char),
21662306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
21762306a36Sopenharmony_ci		.tlv_type       = 0x02,
21862306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_register_listener_req,
21962306a36Sopenharmony_ci					   service_path),
22062306a36Sopenharmony_ci	},
22162306a36Sopenharmony_ci	{}
22262306a36Sopenharmony_ci};
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_cistruct servreg_register_listener_resp {
22562306a36Sopenharmony_ci	struct qmi_response_type_v01 resp;
22662306a36Sopenharmony_ci	u8 curr_state_valid;
22762306a36Sopenharmony_ci	enum servreg_service_state curr_state;
22862306a36Sopenharmony_ci};
22962306a36Sopenharmony_ci
23062306a36Sopenharmony_cistatic const struct qmi_elem_info servreg_register_listener_resp_ei[] = {
23162306a36Sopenharmony_ci	{
23262306a36Sopenharmony_ci		.data_type      = QMI_STRUCT,
23362306a36Sopenharmony_ci		.elem_len       = 1,
23462306a36Sopenharmony_ci		.elem_size      = sizeof(struct qmi_response_type_v01),
23562306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
23662306a36Sopenharmony_ci		.tlv_type       = 0x02,
23762306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_register_listener_resp,
23862306a36Sopenharmony_ci					   resp),
23962306a36Sopenharmony_ci		.ei_array      = qmi_response_type_v01_ei,
24062306a36Sopenharmony_ci	},
24162306a36Sopenharmony_ci	{
24262306a36Sopenharmony_ci		.data_type      = QMI_OPT_FLAG,
24362306a36Sopenharmony_ci		.elem_len       = 1,
24462306a36Sopenharmony_ci		.elem_size      = sizeof(u8),
24562306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
24662306a36Sopenharmony_ci		.tlv_type       = 0x10,
24762306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_register_listener_resp,
24862306a36Sopenharmony_ci					   curr_state_valid),
24962306a36Sopenharmony_ci	},
25062306a36Sopenharmony_ci	{
25162306a36Sopenharmony_ci		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
25262306a36Sopenharmony_ci		.elem_len       = 1,
25362306a36Sopenharmony_ci		.elem_size      = sizeof(enum servreg_service_state),
25462306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
25562306a36Sopenharmony_ci		.tlv_type       = 0x10,
25662306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_register_listener_resp,
25762306a36Sopenharmony_ci					   curr_state),
25862306a36Sopenharmony_ci	},
25962306a36Sopenharmony_ci	{}
26062306a36Sopenharmony_ci};
26162306a36Sopenharmony_ci
26262306a36Sopenharmony_cistruct servreg_restart_pd_req {
26362306a36Sopenharmony_ci	char service_path[SERVREG_NAME_LENGTH + 1];
26462306a36Sopenharmony_ci};
26562306a36Sopenharmony_ci
26662306a36Sopenharmony_cistatic const struct qmi_elem_info servreg_restart_pd_req_ei[] = {
26762306a36Sopenharmony_ci	{
26862306a36Sopenharmony_ci		.data_type      = QMI_STRING,
26962306a36Sopenharmony_ci		.elem_len       = SERVREG_NAME_LENGTH + 1,
27062306a36Sopenharmony_ci		.elem_size      = sizeof(char),
27162306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
27262306a36Sopenharmony_ci		.tlv_type       = 0x01,
27362306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_restart_pd_req,
27462306a36Sopenharmony_ci					   service_path),
27562306a36Sopenharmony_ci	},
27662306a36Sopenharmony_ci	{}
27762306a36Sopenharmony_ci};
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_cistruct servreg_restart_pd_resp {
28062306a36Sopenharmony_ci	struct qmi_response_type_v01 resp;
28162306a36Sopenharmony_ci};
28262306a36Sopenharmony_ci
28362306a36Sopenharmony_cistatic const struct qmi_elem_info servreg_restart_pd_resp_ei[] = {
28462306a36Sopenharmony_ci	{
28562306a36Sopenharmony_ci		.data_type      = QMI_STRUCT,
28662306a36Sopenharmony_ci		.elem_len       = 1,
28762306a36Sopenharmony_ci		.elem_size      = sizeof(struct qmi_response_type_v01),
28862306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
28962306a36Sopenharmony_ci		.tlv_type       = 0x02,
29062306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_restart_pd_resp,
29162306a36Sopenharmony_ci					   resp),
29262306a36Sopenharmony_ci		.ei_array      = qmi_response_type_v01_ei,
29362306a36Sopenharmony_ci	},
29462306a36Sopenharmony_ci	{}
29562306a36Sopenharmony_ci};
29662306a36Sopenharmony_ci
29762306a36Sopenharmony_cistruct servreg_state_updated_ind {
29862306a36Sopenharmony_ci	enum servreg_service_state curr_state;
29962306a36Sopenharmony_ci	char service_path[SERVREG_NAME_LENGTH + 1];
30062306a36Sopenharmony_ci	u16 transaction_id;
30162306a36Sopenharmony_ci};
30262306a36Sopenharmony_ci
30362306a36Sopenharmony_cistatic const struct qmi_elem_info servreg_state_updated_ind_ei[] = {
30462306a36Sopenharmony_ci	{
30562306a36Sopenharmony_ci		.data_type      = QMI_SIGNED_4_BYTE_ENUM,
30662306a36Sopenharmony_ci		.elem_len       = 1,
30762306a36Sopenharmony_ci		.elem_size      = sizeof(u32),
30862306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
30962306a36Sopenharmony_ci		.tlv_type       = 0x01,
31062306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_state_updated_ind,
31162306a36Sopenharmony_ci					   curr_state),
31262306a36Sopenharmony_ci	},
31362306a36Sopenharmony_ci	{
31462306a36Sopenharmony_ci		.data_type      = QMI_STRING,
31562306a36Sopenharmony_ci		.elem_len       = SERVREG_NAME_LENGTH + 1,
31662306a36Sopenharmony_ci		.elem_size      = sizeof(char),
31762306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
31862306a36Sopenharmony_ci		.tlv_type       = 0x02,
31962306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_state_updated_ind,
32062306a36Sopenharmony_ci					   service_path),
32162306a36Sopenharmony_ci	},
32262306a36Sopenharmony_ci	{
32362306a36Sopenharmony_ci		.data_type      = QMI_UNSIGNED_2_BYTE,
32462306a36Sopenharmony_ci		.elem_len       = 1,
32562306a36Sopenharmony_ci		.elem_size      = sizeof(u16),
32662306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
32762306a36Sopenharmony_ci		.tlv_type       = 0x03,
32862306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_state_updated_ind,
32962306a36Sopenharmony_ci					   transaction_id),
33062306a36Sopenharmony_ci	},
33162306a36Sopenharmony_ci	{}
33262306a36Sopenharmony_ci};
33362306a36Sopenharmony_ci
33462306a36Sopenharmony_cistruct servreg_set_ack_req {
33562306a36Sopenharmony_ci	char service_path[SERVREG_NAME_LENGTH + 1];
33662306a36Sopenharmony_ci	u16 transaction_id;
33762306a36Sopenharmony_ci};
33862306a36Sopenharmony_ci
33962306a36Sopenharmony_cistatic const struct qmi_elem_info servreg_set_ack_req_ei[] = {
34062306a36Sopenharmony_ci	{
34162306a36Sopenharmony_ci		.data_type      = QMI_STRING,
34262306a36Sopenharmony_ci		.elem_len       = SERVREG_NAME_LENGTH + 1,
34362306a36Sopenharmony_ci		.elem_size      = sizeof(char),
34462306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
34562306a36Sopenharmony_ci		.tlv_type       = 0x01,
34662306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_set_ack_req,
34762306a36Sopenharmony_ci					   service_path),
34862306a36Sopenharmony_ci	},
34962306a36Sopenharmony_ci	{
35062306a36Sopenharmony_ci		.data_type      = QMI_UNSIGNED_2_BYTE,
35162306a36Sopenharmony_ci		.elem_len       = 1,
35262306a36Sopenharmony_ci		.elem_size      = sizeof(u16),
35362306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
35462306a36Sopenharmony_ci		.tlv_type       = 0x02,
35562306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_set_ack_req,
35662306a36Sopenharmony_ci					   transaction_id),
35762306a36Sopenharmony_ci	},
35862306a36Sopenharmony_ci	{}
35962306a36Sopenharmony_ci};
36062306a36Sopenharmony_ci
36162306a36Sopenharmony_cistruct servreg_set_ack_resp {
36262306a36Sopenharmony_ci	struct qmi_response_type_v01 resp;
36362306a36Sopenharmony_ci};
36462306a36Sopenharmony_ci
36562306a36Sopenharmony_cistatic const struct qmi_elem_info servreg_set_ack_resp_ei[] = {
36662306a36Sopenharmony_ci	{
36762306a36Sopenharmony_ci		.data_type      = QMI_STRUCT,
36862306a36Sopenharmony_ci		.elem_len       = 1,
36962306a36Sopenharmony_ci		.elem_size      = sizeof(struct qmi_response_type_v01),
37062306a36Sopenharmony_ci		.array_type	= NO_ARRAY,
37162306a36Sopenharmony_ci		.tlv_type       = 0x02,
37262306a36Sopenharmony_ci		.offset         = offsetof(struct servreg_set_ack_resp,
37362306a36Sopenharmony_ci					   resp),
37462306a36Sopenharmony_ci		.ei_array       = qmi_response_type_v01_ei,
37562306a36Sopenharmony_ci	},
37662306a36Sopenharmony_ci	{}
37762306a36Sopenharmony_ci};
37862306a36Sopenharmony_ci
37962306a36Sopenharmony_ci#endif
380