Hi Folks, On Fri, 11 Dec 2020 at 20:45, Hemant Kumar <hemantk@xxxxxxxxxxxxxx> wrote: > > This patch series adds support for UCI driver. UCI driver enables userspace > clients to communicate to external MHI devices like modem. UCI driver probe > creates standard character device file nodes for userspace clients to > perform open, read, write, poll and release file operations. These file > operations call MHI core layer APIs to perform data transfer using MHI bus > to communicate with MHI device. > > This interface allows exposing modem control channel(s) such as QMI, MBIM, > or AT commands to userspace which can be used to configure the modem using > tools such as libqmi, ModemManager, minicom (for AT), etc over MHI. This is > required as there are no kernel APIs to access modem control path for device > configuration. Data path transporting the network payload (IP), however, is > routed to the Linux network via the mhi-net driver. Currently driver supports > QMI channel. libqmi is userspace MHI client which communicates to a QMI > service using QMI channel. Please refer to > https://www.freedesktop.org/wiki/Software/libqmi/ for additional information > on libqmi. > > Patch is tested using arm64 and x86 based platform. Are there any blockers or unadressed comments remaining on this series? As far as I understand, the original blocker was the net/WiFi mention in the commit message, that caused a legitimate concern from network maintainer. It has been clarified now that this driver is not for exposing any channel that could be otherwise handled properly by an existing Linux subsystem/interface. It will be especially used as a pipe for modem QMI channel (or AT commands) in the same way as the USB CDC-WDM driver is doing (keeping userspace compatibility). Other MHI channels, such as network data, QRTR, etc are not exposed and correctly bound to the corresponding Linux subsystems. The correlated worry was that it could be a userspace channel facility for 'everything qualcomm', but we could say the same for other existing busses with userspace shunt (/dev/bus/usb, /dev/i2c, /dev/spidev, PCI UIO, UART...). Moreover, it is mitigated by the fact that not all MHI channels are exposed by default, but only the allowed ones (QMI in the initial version). For sure, special care must be given to any further channel addition. Regards, Loic