[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <6e79238c-2ceb-0ae7-2b37-7ffac777db60@linux.intel.com>
Date: Wed, 23 Feb 2022 12:14:58 -0600
From: Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>
To: Srinivas Kandagatla <srinivas.kandagatla@...aro.org>,
robh+dt@...nel.org, vkoul@...nel.org,
yung-chuan.liao@...ux.intel.com
Cc: devicetree@...r.kernel.org, alsa-devel@...a-project.org,
linux-kernel@...r.kernel.org, quic_srivasam@...cinc.com
Subject: Re: [PATCH 3/3] soundwire: qcom: add wake up interrupt support
>> Not following, sorry. if you use pm_runtime functions and it so happens
>> that the resume already started, then those routines would wait for the
>> resume to complete.
> yes that is true,
>
> TBH, I was trying to reproduce the issue since morning to collect some
> traces but no luck so far, I hit these issues pretty much rarely. Now
> code has changed since few months back am unable to reproduce this
> anymore. Or it might be just the state of code I had while writing this up.
>
> But when I hit the issue, this is how it looks like:
>
> 1. IRQ Wake interrupt resume parent.
>
> 2. parent is in middle of resuming
>
> 3. Slave Pend interrupt in controller fired up
>
> 4. because of (3) child resume is requested and then the parent resume
> blocked on (2) to finish.
>
> 5. from (2) we also trying to resume child.
>
> 6. (5) is blocked on (4) to finish which is blocked on (2) to finish
>
> we are dead locked. Only way for me to avoid dead lock was to wake the
> child up after IRQ wake interrupts.
Maybe a red-herring, but we're seen cases like this where we called
pm_runtime_get_sync() while resuming, that didn't go so well. I would
look into the use of _no_pm routines if you are already trying to resume.
Powered by blists - more mailing lists