Re: [PATCH 00/20] Add initial support for MHI endpoint stack

From: Alex Elder
Date: Wed Jan 05 2022 - 19:20:50 EST


On 12/2/21 5:35 AM, Manivannan Sadhasivam wrote:
Hello,

This series adds initial support for the Qualcomm specific Modem Host Interface
(MHI) bus in endpoint devices like SDX55 modems. The MHI bus in endpoint devices
communicates with the MHI bus in host machines like x86 over any physical bus
like PCIe for data connectivity. The MHI host support is already in mainline [1]
and been used by PCIe based modems and WLAN devices running vendor code
(downstream).

Today I'm offering some initial review comments on this series.

I told you offline I had quite a few comments. When I looked at the
code a week or two ago I looked at the end result... So my notes
didn't line up well with the way you built it up incrementally.
(Still, the way you did it is generally good for review.)

I got through patch 9 and kind of petered out. I can look at the
rest tomorrow and/or can give you a chance to update before I
review more. I'll let you decide...

-Alex

Overview
========

This series aims at adding the MHI support in the endpoint devices with the goal
of getting data connectivity using the mainline kernel running on the modems.
Modems here refer to the combination of an APPS processor (Cortex A grade) and
a baseband processor (DSP). The MHI bus is located in the APPS processor and it
transfers data packets from the baseband processor to the host machine.

The MHI Endpoint (MHI EP) stack proposed here is inspired by the downstream
code written by Qualcomm. But the complete stack is mostly re-written to adapt
to the "bus" framework and made it modular so that it can work with the upstream
subsystems like "PCI Endpoint". The code structure of the MHI endpoint stack
follows the MHI host stack to maintain uniformity.

With this initial MHI EP stack (along with few other drivers), we can establish
the network interface between host and endpoint over the MHI software channels
(IP_SW0) and can do things like IP forwarding, SSH, etc...

. . .