From 6a3050d838273760ed2c8bef06ac1d15f1f41a3e Mon Sep 17 00:00:00 2001 From: Ramprasad Katkam Date: Wed, 10 Oct 2018 02:08:00 +0530 Subject: [PATCH] soc: swr-mstr: Register for wakeup irq after disabling clk During clock stop, Register for lpass wakeup only after disabling the clock to avoid flooding of interrupts when master is turned on for pending slave irq. Change-Id: Ifbf604048d4972beb22b6286930193b83a2249e8 Signed-off-by: Ramprasad Katkam --- soc/swr-mstr-ctrl.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/soc/swr-mstr-ctrl.c b/soc/swr-mstr-ctrl.c index 0cda6e8c8dc1..c7fe7d25861b 100644 --- a/soc/swr-mstr-ctrl.c +++ b/soc/swr-mstr-ctrl.c @@ -1976,13 +1976,15 @@ static int swrm_runtime_suspend(struct device *dev) swrm_cmd_fifo_wr_cmd(swrm, 0x2, 0xF, 0xF, SWRS_SCP_CONTROL); usleep_range(100, 105); - if (swrm->wakeup_req) { - msm_aud_evt_blocking_notifier_call_chain( - SWR_WAKE_IRQ_REGISTER, (void *)swrm); - swrm->wakeup_triggered = false; - } } swrm_clk_request(swrm, false); + + if (swrm->clk_stop_mode0_supp && swrm->wakeup_req) { + msm_aud_evt_blocking_notifier_call_chain( + SWR_WAKE_IRQ_REGISTER, (void *)swrm); + swrm->wakeup_triggered = false; + } + } /* Retain SSR state until resume */ if (current_state != SWR_MSTR_SSR)