• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef __QCOM_RPROC_H__
2 #define __QCOM_RPROC_H__
3 
4 struct notifier_block;
5 
6 #if IS_ENABLED(CONFIG_QCOM_RPROC_COMMON)
7 
8 /**
9  * enum qcom_ssr_notify_type - Startup/Shutdown events related to a remoteproc
10  * processor.
11  *
12  * @QCOM_SSR_BEFORE_POWERUP:	Remoteproc about to start (prepare stage)
13  * @QCOM_SSR_AFTER_POWERUP:	Remoteproc is running (start stage)
14  * @QCOM_SSR_BEFORE_SHUTDOWN:	Remoteproc crashed or shutting down (stop stage)
15  * @QCOM_SSR_AFTER_SHUTDOWN:	Remoteproc is down (unprepare stage)
16  */
17 enum qcom_ssr_notify_type {
18 	QCOM_SSR_BEFORE_POWERUP,
19 	QCOM_SSR_AFTER_POWERUP,
20 	QCOM_SSR_BEFORE_SHUTDOWN,
21 	QCOM_SSR_AFTER_SHUTDOWN,
22 };
23 
24 struct qcom_ssr_notify_data {
25 	const char *name;
26 	bool crashed;
27 };
28 
29 void *qcom_register_ssr_notifier(const char *name, struct notifier_block *nb);
30 int qcom_unregister_ssr_notifier(void *notify, struct notifier_block *nb);
31 
32 #else
33 
qcom_register_ssr_notifier(const char * name,struct notifier_block * nb)34 static inline void *qcom_register_ssr_notifier(const char *name,
35 					       struct notifier_block *nb)
36 {
37 	return NULL;
38 }
39 
qcom_unregister_ssr_notifier(void * notify,struct notifier_block * nb)40 static inline int qcom_unregister_ssr_notifier(void *notify,
41 					       struct notifier_block *nb)
42 {
43 	return 0;
44 }
45 
46 #endif
47 
48 #endif
49