hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/include/linux/remoteproc/qcom_rproc.h
....@@ -5,17 +5,43 @@
55
66 #if IS_ENABLED(CONFIG_QCOM_RPROC_COMMON)
77
8
-int qcom_register_ssr_notifier(struct notifier_block *nb);
9
-void qcom_unregister_ssr_notifier(struct notifier_block *nb);
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);
1031
1132 #else
1233
13
-static inline int qcom_register_ssr_notifier(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
+
40
+static inline int qcom_unregister_ssr_notifier(void *notify,
41
+ struct notifier_block *nb)
1442 {
1543 return 0;
1644 }
17
-
18
-static inline void qcom_unregister_ssr_notifier(struct notifier_block *nb) {}
1945
2046 #endif
2147