diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 87252d6e7f3b..32bbfadae1a7 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -154,3 +154,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_uclamp_eff_get); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_util_est_update); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_setscheduler_uclamp); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rproc_recovery); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rproc_recovery_set); diff --git a/drivers/remoteproc/remoteproc_sysfs.c b/drivers/remoteproc/remoteproc_sysfs.c index 8c7ea8922638..22c316d52a36 100644 --- a/drivers/remoteproc/remoteproc_sysfs.c +++ b/drivers/remoteproc/remoteproc_sysfs.c @@ -5,6 +5,7 @@ #include #include +#include #include "remoteproc_internal.h" @@ -51,9 +52,11 @@ static ssize_t recovery_store(struct device *dev, if (sysfs_streq(buf, "enabled")) { /* change the flag and begin the recovery process if needed */ rproc->recovery_disabled = false; + trace_android_vh_rproc_recovery_set(rproc); rproc_trigger_recovery(rproc); } else if (sysfs_streq(buf, "disabled")) { rproc->recovery_disabled = true; + trace_android_vh_rproc_recovery_set(rproc); } else if (sysfs_streq(buf, "recover")) { /* begin the recovery process without changing the flag */ rproc_trigger_recovery(rproc); diff --git a/include/trace/hooks/remoteproc.h b/include/trace/hooks/remoteproc.h index ad8764cefaef..18c0f64451db 100644 --- a/include/trace/hooks/remoteproc.h +++ b/include/trace/hooks/remoteproc.h @@ -10,10 +10,16 @@ #include #include +/* When recovery succeeds */ DECLARE_HOOK(android_vh_rproc_recovery, TP_PROTO(struct rproc *rproc), TP_ARGS(rproc)); +/* When recovery mode is enabled or disabled by sysfs */ +DECLARE_HOOK(android_vh_rproc_recovery_set, + TP_PROTO(struct rproc *rproc), + TP_ARGS(rproc)); + #endif /* _TRACE_HOOK_RPROC_H */ /* This part must be outside protection */ #include