Message ID | 20230314044623.10254-1-manivannan.sadhasivam@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | Add support for MHI Endpoint function driver | expand |
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 >