xref: /linux/include/linux/soc/qcom/pdr.h (revision bfe62a454542cfad3379f6ef5680b125f41e20f4)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __QCOM_PDR_HELPER__
3 #define __QCOM_PDR_HELPER__
4 
5 #include <linux/soc/qcom/qmi.h>
6 
7 #define SERVREG_NAME_LENGTH	64
8 #define SERVREG_PFR_LENGTH	256
9 
10 struct pdr_service;
11 struct pdr_handle;
12 
13 enum servreg_service_state {
14 	SERVREG_LOCATOR_ERR = 0x1,
15 	SERVREG_SERVICE_STATE_DOWN = 0x0FFFFFFF,
16 	SERVREG_SERVICE_STATE_UP = 0x1FFFFFFF,
17 	SERVREG_SERVICE_STATE_EARLY_DOWN = 0x2FFFFFFF,
18 	SERVREG_SERVICE_STATE_UNINIT = 0x7FFFFFFF,
19 };
20 
21 struct pdr_handle *pdr_handle_alloc(void (*status)(int state,
22 						   char *service_path,
23 						   void *priv), void *priv);
24 struct pdr_service *pdr_add_lookup(struct pdr_handle *pdr,
25 				   const char *service_name,
26 				   const char *service_path);
27 int pdr_restart_pd(struct pdr_handle *pdr, struct pdr_service *pds);
28 void pdr_handle_release(struct pdr_handle *pdr);
29 
30 #endif
31