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