On Mon, Nov 09, 2020 at 12:47:19PM -0800, Bhaumik Bhatt wrote: > Bug fixes and improvements for MHI powerup and shutdown handling. > Firmware load function names are updated to accurately reflect their purpose. > Closed certain design gaps where the host (MHI bus) would allow clients to > operate after a power down or error detection. > Move to an error state sooner based on different scenarios. > > These patches were tested on arm64 and X86_64 architectures. > > v4: > -Fixed up bus: mhi: core: Move to SYS_ERROR regardless of RDDM capability patch > by removing check for EE as well since a previous guard to check if MHI pm_state > allows event ring access is already present. Event ring access should not be > allowed at the time and hence the check is safe to remove. > > v3: > -Fixed bus: mhi: core: Remove MHI event ring IRQ handlers when powering down > -Mistakenly placed the free_irq() calls in mhi_pm_sys_error_transition() > -Moved it to mhi_pm_disable_transition() > > v2: > -Addressed patches based on review comments and made improvements > -Added bus: mhi: core: Check for IRQ availability during registration > -Dropped bus: mhi: core: Use the IRQF_ONESHOT flag for the BHI interrupt line > -Split bus: mhi: core: Move to an error state on any firmware load failure > -Modified the following patches: > -bus: mhi: core: Disable IRQs when powering down > -bus: mhi: core: Improve shutdown handling after link down detection > -bus: mhi: core: Mark device inactive soon after host issues a shutdown > -bus: mhi: core: Move to SYS_ERROR regardless of RDDM capability > -Addressed the above as follow-up patches with improvements: > -bus: mhi: core: Prevent sending multiple RDDM entry callbacks > -bus: mhi: core: Separate system error and power down handling > -bus: mhi: core: Remove MHI event ring IRQ handlers when powering down > > Bhaumik Bhatt (12): > bus: mhi: core: Use appropriate names for firmware load functions > bus: mhi: core: Move to using high priority workqueue > bus: mhi: core: Skip device wake in error or shutdown states > bus: mhi: core: Move to SYS_ERROR regardless of RDDM capability > bus: mhi: core: Prevent sending multiple RDDM entry callbacks > bus: mhi: core: Move to an error state on any firmware load failure > bus: mhi: core: Use appropriate label in firmware load handler API > bus: mhi: core: Move to an error state on mission mode failure > bus: mhi: core: Check for IRQ availability during registration > bus: mhi: core: Separate system error and power down handling > bus: mhi: core: Mark and maintain device states early on after power > down > bus: mhi: core: Remove MHI event ring IRQ handlers when powering down Series applied to mhi-next! Thanks, Mani > > drivers/bus/mhi/core/boot.c | 60 ++++++----- > drivers/bus/mhi/core/init.c | 11 ++- > drivers/bus/mhi/core/main.c | 9 +- > drivers/bus/mhi/core/pm.c | 236 ++++++++++++++++++++++++++++++++------------ > include/linux/mhi.h | 2 + > 5 files changed, 222 insertions(+), 96 deletions(-) > > -- > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, > a Linux Foundation Collaborative Project >