MHI changes for v5.13
From: Manivannan Sadhasivam
Date: Sun Apr 11 2021 - 02:04:04 EST
Hi Greg,
Here is the MHI Pull request for the v5.13 cycle. I stayed with the PR as the
number patches got increased.
Details are in the signed tag, please consider merging!
Thanks,
Mani
---
The following changes since commit a38fd8748464831584a19438cbb3082b5a2dab15:
Linux 5.12-rc2 (2021-03-05 17:33:41 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/mani/mhi.git tags/mhi-for-v5.13
for you to fetch changes up to a503d1628c9c341dc5e1a26272e38182dca3e823:
bus: mhi: fix typo in comments for struct mhi_channel_config (2021-04-09 18:48:22 +0530)
----------------------------------------------------------------
MHI changes for v5.13
core:
- Added support for Flash Programmer execution environment which allows the
host machine (like x86) to flash the modem firmware to NAND or eMMC in the
modem. The MHI bus will expose EDL channels (34, 35) and then the opensource
QDL tool [1] can be used to flash the firmware from the host.
- Added an internal helper for polling the MHI registers with a retry interval.
This helper is used now to poll for the MHI ready state in MHI STATUS
register.
- Various fixes for issues found during the bringup of SDX24/SDX55 based Quectel
and Telit modems.
- Updates to the Execution environment handling for proper downloading of the
AMSS image from SBL (Secondary Bootloader) mode.
- Added support for sending STOP channel command to the MHI device and also made
changes to the MHI core for proper handling of stop and restart.
- Fixed the runtime_pm handling in the core by forcing the device to be in wake
mode until TX completion and allowing it to suspend for RX.
- Added sanity checks for values read from the device to avoid crash if those
are corrupted somehow.
- Fixed warnings generated by sparse (W=2)
- Couple of kernel doc cleanups in mhi.h
pci_generic:
- Added support for runtime PM and generic PM
- Added Firehose channels for flashing the firmware
- Added support for modems such as Quectel EM1XXGR-L, SDX24, SDX65, Foxconn
T99W175 exposing relevant channels.
[1] https://git.linaro.org/landing-teams/working/qualcomm/qdl.git
----------------------------------------------------------------
Bhaumik Bhatt (25):
bus: mhi: core: Add missing checks for MMIO register entries
bus: mhi: core: Destroy SBL devices when moving to mission mode
bus: mhi: core: Download AMSS image from appropriate function
bus: mhi: core: Process execution environment changes serially
bus: mhi: core: Update debug prints to include local device state
bus: mhi: Make firmware image optional for controller
bus: mhi: core: Rely on accurate method to determine EDL mode
bus: mhi: core: Wait for ready after an EDL firmware download
bus: mhi: core: Handle EDL mode entry appropriately
bus: mhi: core: Identify Flash Programmer as a mission mode use case
bus: mhi: core: Wait for MHI READY state in most scenarios
bus: mhi: core: Improve state strings for debug messages
bus: mhi: core: Introduce internal register poll helper function
bus: mhi: core: Move to polling method to wait for MHI ready
bus: mhi: core: Remove pre_init flag used for power purposes
bus: mhi: pci_generic: Add SDX65 based modem support
bus: mhi: core: Allow sending the STOP channel command
bus: mhi: core: Clear context for stopped channels from remove()
bus: mhi: core: Improvements to the channel handling state machine
bus: mhi: core: Update debug messages to use client device
bus: mhi: core: Hold device wake for channel update commands
bus: mhi: core: Clear configuration from channel context during reset
bus: mhi: core: Check channel execution environment before issuing reset
bus: mhi: core: Remove __ prefix for MHI channel unprepare function
bus: mhi: Improve documentation on channel transfer setup APIs
Carl Yin (1):
bus: mhi: core: Add support for Flash Programmer execution environment
Colin Ian King (1):
bus: mhi: core: remove redundant initialization of variables state and ee
Fan Wu (1):
bus: mhi: core: Return EAGAIN if MHI ring is full
Jarvis Jiang (2):
bus: mhi: pci_generic: Introduce Foxconn T99W175 support
bus: mhi: fix typo in comments for struct mhi_channel_config
Jeffrey Hugo (3):
bus: mhi: core: Fix check for syserr at power_up
bus: mhi: core: Check state before processing power_down
bus: mhi: core: Sanity check values from remote device before use
Loic Poulain (14):
bus: mhi: pci_generic: Parametrable element count for events
bus: mhi: pci_generic: Introduce quectel EM1XXGR-L support
bus: mhi: pci_generic: Add SDX24 based modem support
bus: mhi: pci_generic: No-Op for device_wake operations
bus: mhi: pci_generic: Use generic PCI power management
bus: mhi: pci_generic: Add support for runtime PM
bus: mhi: pci_generic: Remove WQ_MEM_RECLAIM flag from state workqueue
bus: mhi: core: Fix invalid error returning in mhi_queue
bus: mhi: core: Rename debugfs directory name
bus: mhi: Early MHI resume failure in non M3 state
bus: mhi: core: Fix MHI runtime_pm behavior
bus: mhi: pm: reduce PM state change verbosity
bus: mhi: pci_generic: Implement PCI shutdown callback
bus: mhi: pci_generic: Add FIREHOSE channels
Manivannan Sadhasivam (2):
bus: mhi: pci_generic: Constify mhi_controller_config struct definitions
bus: mhi: core: Fix shadow declarations
drivers/bus/mhi/core/boot.c | 64 ++++++------
drivers/bus/mhi/core/debugfs.c | 2 +-
drivers/bus/mhi/core/init.c | 72 +++++++------
drivers/bus/mhi/core/internal.h | 20 +++-
drivers/bus/mhi/core/main.c | 416 +++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
drivers/bus/mhi/core/pm.c | 119 ++++++++++++---------
drivers/bus/mhi/pci_generic.c | 330 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
include/linux/mhi.h | 28 +++--
8 files changed, 775 insertions(+), 276 deletions(-)