1 #ifndef __QCOM_RPROC_H__
2 #define __QCOM_RPROC_H__
3
4 struct notifier_block;
5
6 /**
7 * enum qcom_ssr_notify_type - Startup/Shutdown events related to a remoteproc
8 * processor.
9 *
10 * @QCOM_SSR_BEFORE_POWERUP: Remoteproc about to start (prepare stage)
11 * @QCOM_SSR_AFTER_POWERUP: Remoteproc is running (start stage)
12 * @QCOM_SSR_BEFORE_SHUTDOWN: Remoteproc crashed or shutting down (stop stage)
13 * @QCOM_SSR_AFTER_SHUTDOWN: Remoteproc is down (unprepare stage)
14 */
15 enum qcom_ssr_notify_type {
16 QCOM_SSR_BEFORE_POWERUP,
17 QCOM_SSR_AFTER_POWERUP,
18 QCOM_SSR_BEFORE_SHUTDOWN,
19 QCOM_SSR_AFTER_SHUTDOWN,
20 };
21
22 struct qcom_ssr_notify_data {
23 const char *name;
24 bool crashed;
25 };
26
27 #if IS_ENABLED(CONFIG_QCOM_RPROC_COMMON)
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