Hello: This patch was applied to qcom/linux.git (refs/heads/for-next): On Mon, 24 May 2021 12:03:12 +0800 you wrote: > During system resume, MHI host triggers M3->M0 transition and then waits > for target device to enter M0 state. Once done, the device queues a state > change event into ctrl event ring and notifies MHI host by raising an > interrupt, where a tasklet is scheduled to process this event. In most cases, > the tasklet is served timely and wait operation succeeds. > > However, there are cases where CPU is busy and cannot serve this tasklet > for some time. Once delay goes long enough, the device moves itself to M1 > state and also interrupts MHI host after inserting a new state change > event to ctrl ring. Later CPU finally has time to process the ring, however > there are two events in it now: > 1. for M3->M0 event, which is processed first as queued first, > tasklet handler updates device state to M0 and wakes up the task, > i.e., the MHI host. > 2. for M0->M1 event, which is processed later, tasklet handler > triggers M1->M2 transition and updates device state to M2 directly, > then wakes up the MHI host(if still sleeping on this wait queue). > Note that although MHI host has been woken up while processing the first > event, it may still has no chance to run before the second event is processed. > In other words, MHI host has to keep waiting till timeout cause the M0 state > has been missed. > > [...] Here is the summary with links: - [v2] bus: mhi: Wait for M2 state during system resume https://git.kernel.org/qcom/c/02b49cd11745 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html