mbox series

[v4,00/12] Bug fixes and improvements for MHI power operations

Message ID 1604954851-23396-1-git-send-email-bbhatt@codeaurora.org (mailing list archive)
Headers show
Series Bug fixes and improvements for MHI power operations | expand

Message

Bhaumik Bhatt Nov. 9, 2020, 8:47 p.m. UTC
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

 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(-)

Comments

Manivannan Sadhasivam Nov. 16, 2020, 6:37 a.m. UTC | #1
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
>
patchwork-bot+linux-arm-msm@kernel.org Dec. 29, 2020, 8:15 p.m. UTC | #2
Hello:

This series was applied to qcom/linux.git (refs/heads/for-next):

On Mon,  9 Nov 2020 12:47:19 -0800 you 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.
> 
> [...]

Here is the summary with links:
  - [v4,01/12] bus: mhi: core: Use appropriate names for firmware load functions
    https://git.kernel.org/qcom/c/1b55c16a5e47
  - [v4,02/12] bus: mhi: core: Move to using high priority workqueue
    https://git.kernel.org/qcom/c/8f7039787687
  - [v4,03/12] bus: mhi: core: Skip device wake in error or shutdown states
    https://git.kernel.org/qcom/c/8e0559921f9a
  - [v4,04/12] bus: mhi: core: Move to SYS_ERROR regardless of RDDM capability
    https://git.kernel.org/qcom/c/3fb81a4d5f2f
  - [v4,05/12] bus: mhi: core: Prevent sending multiple RDDM entry callbacks
    https://git.kernel.org/qcom/c/0c76b3fa580d
  - [v4,06/12] bus: mhi: core: Move to an error state on any firmware load failure
    https://git.kernel.org/qcom/c/12e050c77be0
  - [v4,07/12] bus: mhi: core: Use appropriate label in firmware load handler API
    https://git.kernel.org/qcom/c/faa257075bcc
  - [v4,08/12] bus: mhi: core: Move to an error state on mission mode failure
    https://git.kernel.org/qcom/c/dc53d862eab8
  - [v4,09/12] bus: mhi: core: Check for IRQ availability during registration
    https://git.kernel.org/qcom/c/40c3127187cb
  - [v4,10/12] bus: mhi: core: Separate system error and power down handling
    https://git.kernel.org/qcom/c/556bbb442bbb
  - [v4,11/12] bus: mhi: core: Mark and maintain device states early on after power down
    https://git.kernel.org/qcom/c/a03c7a86e127
  - [v4,12/12] bus: mhi: core: Remove MHI event ring IRQ handlers when powering down
    https://git.kernel.org/qcom/c/6cc1716102b5

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html