1#ifndef __QCOM_RPROC_H__
2#define __QCOM_RPROC_H__
3
4struct 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 */
15enum 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
22struct qcom_ssr_notify_data {
23 const char *name;
24 bool crashed;
25};
26
27#if IS_ENABLED(CONFIG_QCOM_RPROC_COMMON)
28
29void *qcom_register_ssr_notifier(const char *name, struct notifier_block *nb);
30int qcom_unregister_ssr_notifier(void *notify, struct notifier_block *nb);
31
32#else
33
34static inline void *qcom_register_ssr_notifier(const char *name,
35 struct notifier_block *nb)
36{
37 return NULL;
38}
39
40static 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

source code of linux/include/linux/remoteproc/qcom_rproc.h