Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b3e7aed2 authored by Subramanian Ananthanarayanan's avatar Subramanian Ananthanarayanan Committed by Gauri Joshi
Browse files

msm: mhi_dev: Avoid MSI trigger during device cold boot scenario



In hibernate scenario, due to recent changes on host side the
BHI register value is updated before M0 is issued. This causes a
mismatch with the reset value 0xfffffff expectations. As a result
device ends up sending an MSI to indicate ready status.

This is not expected from host side, and causes race conditions
where it leads the host to process MHI initialization and MHI reset
concurrently in two thread contexts. This manifest into two different
signatures primarily:
a) M0 is acknowledged in Thread 1 context, host keep waiting for device to
Acknowledged M0 sent as part of Thread 2. Device ignores the 2nd request
as its already in M0.
b) MMIO event ring is initialized with a primary value x, because of
Thread 2 doing a re-installation the event ring base is updated by the
host to another value y. The device which is only aware of the primary
value send completion event with RP value corresponding to x. This is
treated as a junk RP and ends up resulting in a host crash with
BSOD 0xdeaddead.

Change-Id: Iae0ee996ad086ff5e6430c198f29e56d994c1ef7
Signed-off-by: default avatarSubramanian Ananthanarayanan <skananth@codeaurora.org>
Signed-off-by: default avatarGauri Joshi <gaurjosh@codeaurora.org>
parent 36455696
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment