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 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) 42 { 43 return 0; 44 } 45 46 #endif 47 48 #endif 49