Re: [PATCH v4 00/12] Bug fixes and improvements for MHI power operations

From: Manivannan Sadhasivam
Date: Mon Nov 16 2020 - 01:37:19 EST


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
>