Re: [PATCH v3 0/7] Add support for MHI Endpoint function driver

From: Manivannan Sadhasivam
Date: Mon May 15 2023 - 03:01:15 EST


On Tue, Mar 14, 2023 at 10:16:16AM +0530, Manivannan Sadhasivam wrote:
> Hello,
>
> This series adds support for Modem Host Interface (MHI) Endpoint function
> driver and few updates to the PCI endpoint core.
>
> MHI
> ===
>
> MHI is the communication protocol used by the host machines to control and
> communicate with the Qualcomm modems/WLAN devices over any high speed physical
> bus like PCIe. In Linux kernel, MHI is modeled as a bus driver [1] and there
> are two instances of MHI used in a typical setup.
>
> 1. MHI host - MHI implementation for the host machines like x86/ARM64.
> 2. MHI Endpoint - MHI implementation for the endpoint devices like modems.
>
> MHI EPF
> =======
>
> The MHI Endpoint function driver (MHI EPF) is used on the MHI endpoint devices
> like modems. The MHI EPF driver sits in between the PCIe EP and MHI EP bus and
> carries out all of the PCIe related activities like BAR config, PCIe Event
> handling, MMIO read/write etc,... for the MHI EP bus.
>
> Below is the simple representation of the setup:
>
>
> +----------------------------------------------------+
> | Endpoint CPU |
> | |
> +------------+ | +------------+ +-----------+ +-----------+ |
> | | | | | | | | | |
> | | | | MHI EP | | | | | | PCIe Bus
> | Modem DSP +---+---+ Bus +---+ MHI EPF +---+ PCIe EP +---+---------
> | | | | | | | | | |
> | | | | | | | | | |
> +------------+ | +------------+ +-----------+ +-----------+ |
> | |
> | |
> +----------------------------------------------------+
>
> The data packets will be read from the Modem DSP by the MHI stack and will be
> transmitted to the host machine over PCIe bus with the help of MHI EPF driver.
>
> Test setup
> ==========
>
> This series has been tested on Snapdragon X55 modem a.k.a SDX55 connected to
> the ARM64 host machine.
>

Lorenzo, gentle ping on this series.

- Mani

> Thanks,
> Mani
>
> [1] https://www.kernel.org/doc/html/latest/mhi/mhi.html
>
> Changes in v3:
>
> * Fixed the probe function of EPF_VNTB driver
>
> Changes in v2:
>
> * Rebased on top of v6.3-rc1
> * Switched to the new callback interface for passing events from EPC to EPF
> * Dropped one patch related to notifier
>
> Manivannan Sadhasivam (7):
> PCI: endpoint: Pass EPF device ID to the probe function
> PCI: endpoint: Warn and return if EPC is started/stopped multiple
> times
> PCI: endpoint: Add linkdown notifier support
> PCI: endpoint: Add BME notifier support
> PCI: qcom-ep: Add support for Link down notification
> PCI: qcom-ep: Add support for BME notification
> PCI: endpoint: Add PCI Endpoint function driver for MHI bus
>
> drivers/pci/controller/dwc/pcie-qcom-ep.c | 2 +
> drivers/pci/endpoint/functions/Kconfig | 10 +
> drivers/pci/endpoint/functions/Makefile | 1 +
> drivers/pci/endpoint/functions/pci-epf-mhi.c | 454 ++++++++++++++++++
> drivers/pci/endpoint/functions/pci-epf-ntb.c | 3 +-
> drivers/pci/endpoint/functions/pci-epf-test.c | 2 +-
> drivers/pci/endpoint/functions/pci-epf-vntb.c | 2 +-
> drivers/pci/endpoint/pci-ep-cfs.c | 3 +
> drivers/pci/endpoint/pci-epc-core.c | 52 ++
> drivers/pci/endpoint/pci-epf-core.c | 8 +-
> include/linux/pci-epc.h | 2 +
> include/linux/pci-epf.h | 8 +-
> 12 files changed, 540 insertions(+), 7 deletions(-)
> create mode 100644 drivers/pci/endpoint/functions/pci-epf-mhi.c
>
> --
> 2.25.1
>

--
மணிவண்ணன் சதாசிவம்