From 5a14f85c0fa1f8ccf0a814a2a8f7ce5f70096aa4 Mon Sep 17 00:00:00 2001 From: Ashok Vuyyuru Date: Thu, 6 May 2021 18:22:58 +0530 Subject: [PATCH] msm: ipa3: Changes to keep IPA clock voted in panic notifier Adding changes to avoid unclocked access in panic notifier. Increasing the IPA clock vote before saving the IPA registers. Change-Id: Ie055ffa844df45b8a65603190495bc2d1cc3f84a Signed-off-by: Ashok Vuyyuru --- drivers/platform/msm/ipa/ipa_v3/ipa.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa.c b/drivers/platform/msm/ipa/ipa_v3/ipa.c index 93d2c9d75940..eee1a7ecaaa2 100644 --- a/drivers/platform/msm/ipa/ipa_v3/ipa.c +++ b/drivers/platform/msm/ipa/ipa_v3/ipa.c @@ -6023,6 +6023,7 @@ static int ipa3_panic_notifier(struct notifier_block *this, unsigned long event, void *ptr) { int res; + struct ipa_active_client_logging_info log_info; ipa3_freeze_clock_vote_and_notify_modem(); @@ -6031,7 +6032,12 @@ static int ipa3_panic_notifier(struct notifier_block *this, if (res) IPAERR("uC panic handler failed %d\n", res); - if (atomic_read(&ipa3_ctx->ipa_clk_vote)) { + /* Make sure IPA clock voted when collecting the reg dump */ + IPA_ACTIVE_CLIENTS_PREP_SPECIAL(log_info, "PANIC_VOTE"); + res = ipa3_inc_client_enable_clks_no_block(&log_info); + if (res) { + IPAERR("IPA clk off not saving the IPA registers\n"); + } else { ipahal_print_all_regs(false); ipa_save_registers(); ipa_wigig_save_regs();