diff --git a/drivers/soc/qcom/msm_subsystem_restart.c b/drivers/soc/qcom/msm_subsystem_restart.c index d18d6186dc71..4fd4e09a4aa1 100644 --- a/drivers/soc/qcom/msm_subsystem_restart.c +++ b/drivers/soc/qcom/msm_subsystem_restart.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2011-2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2021, The Linux Foundation. All rights reserved. */ #define pr_fmt(fmt) "subsys-restart: %s(): " fmt, __func__ @@ -260,6 +260,7 @@ static ssize_t restart_level_store(struct device *dev, for (i = 0; i < ARRAY_SIZE(restart_levels); i++) if (!strncasecmp(buf, restart_levels[i], count)) { subsys->restart_level = i; + trace_pil_restart_level(i, subsys->desc->fw_name); return orig_count; } return -EPERM; diff --git a/include/trace/events/trace_msm_ssr_event.h b/include/trace/events/trace_msm_ssr_event.h index b1c1f978d9fb..0a981b7b6385 100644 --- a/include/trace/events/trace_msm_ssr_event.h +++ b/include/trace/events/trace_msm_ssr_event.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2019, The Linux Foundation. All rights reserved. + * Copyright (c) 2019,2021, The Linux Foundation. All rights reserved. */ #undef TRACE_SYSTEM @@ -37,6 +37,27 @@ TRACE_EVENT(pil_notif, __get_str(fw_name)) ); +TRACE_EVENT(pil_restart_level, + + TP_PROTO(int restart_level, const char *fw_name), + + TP_ARGS(restart_level, fw_name), + + TP_STRUCT__entry( + __field(int, restart_level) + __string(fw_name, fw_name) + ), + + TP_fast_assign( + __entry->restart_level = restart_level; + __assign_str(fw_name, fw_name); + ), + + TP_printk("restart_level=%d fw=%s", + __entry->restart_level, + __get_str(fw_name)) +); + #endif #define TRACE_INCLUDE_FILE trace_msm_ssr_event #include