1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __QCOM_PDR_HELPER_INTERNAL__ 3 #define __QCOM_PDR_HELPER_INTERNAL__ 4 5 #include <linux/soc/qcom/pdr.h> 6 7 #define SERVREG_REGISTER_LISTENER_REQ 0x20 8 #define SERVREG_GET_DOMAIN_LIST_REQ 0x21 9 #define SERVREG_STATE_UPDATED_IND_ID 0x22 10 #define SERVREG_SET_ACK_REQ 0x23 11 #define SERVREG_RESTART_PD_REQ 0x24 12 13 #define SERVREG_LOC_PFR_REQ 0x24 14 15 #define SERVREG_DOMAIN_LIST_LENGTH 32 16 #define SERVREG_RESTART_PD_REQ_MAX_LEN 67 17 #define SERVREG_REGISTER_LISTENER_REQ_LEN 71 18 #define SERVREG_SET_ACK_REQ_LEN 72 19 #define SERVREG_GET_DOMAIN_LIST_REQ_MAX_LEN 74 20 #define SERVREG_STATE_UPDATED_IND_MAX_LEN 79 21 #define SERVREG_GET_DOMAIN_LIST_RESP_MAX_LEN 2389 22 #define SERVREG_LOC_PFR_RESP_MAX_LEN 10 23 24 struct servreg_location_entry { 25 char name[SERVREG_NAME_LENGTH + 1]; 26 u8 service_data_valid; 27 u32 service_data; 28 u32 instance; 29 }; 30 31 struct servreg_get_domain_list_req { 32 char service_name[SERVREG_NAME_LENGTH + 1]; 33 u8 domain_offset_valid; 34 u32 domain_offset; 35 }; 36 37 struct servreg_get_domain_list_resp { 38 struct qmi_response_type_v01 resp; 39 u8 total_domains_valid; 40 u16 total_domains; 41 u8 db_rev_count_valid; 42 u16 db_rev_count; 43 u8 domain_list_valid; 44 u32 domain_list_len; 45 struct servreg_location_entry domain_list[SERVREG_DOMAIN_LIST_LENGTH]; 46 }; 47 48 struct servreg_register_listener_req { 49 u8 enable; 50 char service_path[SERVREG_NAME_LENGTH + 1]; 51 }; 52 53 struct servreg_register_listener_resp { 54 struct qmi_response_type_v01 resp; 55 u8 curr_state_valid; 56 enum servreg_service_state curr_state; 57 }; 58 59 struct servreg_restart_pd_req { 60 char service_path[SERVREG_NAME_LENGTH + 1]; 61 }; 62 63 struct servreg_restart_pd_resp { 64 struct qmi_response_type_v01 resp; 65 }; 66 67 struct servreg_state_updated_ind { 68 enum servreg_service_state curr_state; 69 char service_path[SERVREG_NAME_LENGTH + 1]; 70 u16 transaction_id; 71 }; 72 73 struct servreg_set_ack_req { 74 char service_path[SERVREG_NAME_LENGTH + 1]; 75 u16 transaction_id; 76 }; 77 78 struct servreg_set_ack_resp { 79 struct qmi_response_type_v01 resp; 80 }; 81 82 struct servreg_loc_pfr_req { 83 char service[SERVREG_NAME_LENGTH + 1]; 84 char reason[SERVREG_PFR_LENGTH + 1]; 85 }; 86 87 struct servreg_loc_pfr_resp { 88 struct qmi_response_type_v01 rsp; 89 }; 90 91 extern const struct qmi_elem_info servreg_get_domain_list_req_ei[]; 92 extern const struct qmi_elem_info servreg_get_domain_list_resp_ei[]; 93 extern const struct qmi_elem_info servreg_register_listener_req_ei[]; 94 extern const struct qmi_elem_info servreg_register_listener_resp_ei[]; 95 extern const struct qmi_elem_info servreg_restart_pd_req_ei[]; 96 extern const struct qmi_elem_info servreg_restart_pd_resp_ei[]; 97 extern const struct qmi_elem_info servreg_state_updated_ind_ei[]; 98 extern const struct qmi_elem_info servreg_set_ack_req_ei[]; 99 extern const struct qmi_elem_info servreg_set_ack_resp_ei[]; 100 extern const struct qmi_elem_info servreg_loc_pfr_req_ei[]; 101 extern const struct qmi_elem_info servreg_loc_pfr_resp_ei[]; 102 103 #endif 104