Re: [PATCH v2 3/3] bus: mhi: core: Process execution environment changes serially

From: Hemant Kumar
Date: Fri Jan 15 2021 - 14:03:42 EST




On 1/14/21 11:16 AM, Bhaumik Bhatt wrote:
In current design, whenever the BHI interrupt is fired, the execution
environment is updated. This can cause race conditions and impede any
ongoing power up/down processing. For example, if a power down is in
progress and the host has updated the execution environment to a
local "disabled" state, any BHI interrupt firing later could replace
it with the value from the BHI EE register.
Can we add what is the real issue observed when mhi_cntrl->ee changed in above scenario?
Another example would be
that the device can enter mission mode while device creation for SBL
is still going on, leading to multiple attempts at opening the same
channel.
Even for this scenario, can we add the real issue that was observed e.g. same device was attempting to get created twice and caused xyz issue?

Ensure that EE changes are handled only from appropriate places and
occur one after another and handle only PBL or RDDM EE changes as
critical events directly from the interrupt handler. This also makes
sure that we use the correct execution environment to notify the
controller driver when the device resets to one of the PBL execution
environments.

[..]

Thanks,
Hemant
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project