linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
To: gregkh@linuxfoundation.org
Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
	jhugo@codeaurora.org, bbhatt@codeaurora.org,
	loic.poulain@linaro.org, netdev@vger.kernel.org,
	hemantk@codeaurora.org
Subject: Re: [RESEND PATCH v18 0/3] userspace MHI client interface driver
Date: Tue, 19 Jan 2021 15:12:50 +0530	[thread overview]
Message-ID: <20210119094250.GA20682@thinkpad> (raw)
In-Reply-To: <20210113152625.GB30246@work>

Hi Greg,

On Wed, Jan 13, 2021 at 08:56:25PM +0530, Manivannan Sadhasivam wrote:
> Hi Greg,
> 
> On Wed, Jan 06, 2021 at 10:44:13AM -0800, Hemant Kumar 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.
> > 
> 
> This series looks good to me and I'd like to merge it into mhi-next. You
> shared your reviews on the previous revisions, so I'd like to get your
> opinion first.
> 

Ping!

Thanks,
Mani

> Thanks,
> Mani
> 
> > V18:
> > - Updated commit text for UCI to clarify why this driver is required for QMI
> >   over MHI. Also updated cover letter with same information.
> > 
> > v17:
> > - Updated commit text for UCI driver by mentioning about libqmi open-source
> >   userspace program that will be talking to this UCI kernel driver.
> > - UCI driver depends upon patch "bus: mhi: core: Add helper API to return number
> >   of free TREs".
> > 
> > v16:
> > - Removed reference of WLAN as an external MHI device in documentation and
> >   cover letter.
> > 
> > v15:
> > - Updated documentation related to poll and release operations.
> > 
> > V14:
> > - Fixed device file node format to /dev/<mhi_dev_name> instead of
> >   /dev/mhi_<mhi_dev_name> because "mhi" is already part of mhi device name.
> >   For example old format: /dev/mhi_mhi0_QMI new format: /dev/mhi0_QMI.
> > - Updated MHI documentation to reflect index mhi controller name in
> >   QMI usage example.
> > 
> > V13:
> > - Removed LOOPBACK channel from mhi_device_id table from this patch series.
> >   Pushing a new patch series to add support for LOOPBACK channel and the user
> >   space test application. Also removed the description from kernel documentation.
> > - Added QMI channel to mhi_device_id table. QMI channel has existing libqmi
> >   support from user space.
> > - Updated kernel Documentation for QMI channel and provided external reference
> >   for libqmi.
> > - Updated device file node name by appending mhi device name only, which already
> >   includes mhi controller device name.
> > 
> > V12:
> > - Added loopback test driver under selftest/drivers/mhi. Updated kernel
> >   documentation for the usage of the loopback test application.
> > - Addressed review comments for renaming variable names, updated inline
> >   comments and removed two redundant dev_dbg.
> > 
> > V11:
> > - Fixed review comments for UCI documentation by expanding TLAs and rewording
> >   some sentences.
> > 
> > V10:
> > - Replaced mutex_lock with mutex_lock_interruptible in read() and write() file
> >   ops call back.
> > 
> > V9:
> > - Renamed dl_lock to dl_pending _lock and pending list to dl_pending for
> >   clarity.
> > - Used read lock to protect cur_buf.
> > - Change transfer status check logic and only consider 0 and -EOVERFLOW as
> >   only success.
> > - Added __int to module init function.
> > - Print channel name instead of minor number upon successful probe.
> > 
> > V8:
> > - Fixed kernel test robot compilation error by changing %lu to %zu for
> >   size_t.
> > - Replaced uci with UCI in Kconfig, commit text, and comments in driver
> >   code.
> > - Fixed minor style related comments.
> > 
> > V7:
> > - Decoupled uci device and uci channel objects. uci device is
> >   associated with device file node. uci channel is associated
> >   with MHI channels. uci device refers to uci channel to perform
> >   MHI channel operations for device file operations like read()
> >   and write(). uci device increments its reference count for
> >   every open(). uci device calls mhi_uci_dev_start_chan() to start
> >   the MHI channel. uci channel object is tracking number of times
> >   MHI channel is referred. This allows to keep the MHI channel in
> >   start state until last release() is called. After that uci channel
> >   reference count goes to 0 and uci channel clean up is performed
> >   which stops the MHI channel. After the last call to release() if
> >   driver is removed uci reference count becomes 0 and uci object is
> >   cleaned up.
> > - Use separate uci channel read and write lock to fine grain locking
> >   between reader and writer.
> > - Use uci device lock to synchronize open, release and driver remove.
> > - Optimize for downlink only or uplink only UCI device.
> > 
> > V6:
> > - Moved uci.c to mhi directory.
> > - Updated Kconfig to add module information.
> > - Updated Makefile to rename uci object file name as mhi_uci
> > - Removed kref for open count
> > 
> > V5:
> > - Removed mhi_uci_drv structure.
> > - Used idr instead of creating global list of uci devices.
> > - Used kref instead of local ref counting for uci device and
> >   open count.
> > - Removed unlikely macro.
> > 
> > V4:
> > - Fix locking to protect proper struct members.
> > - Updated documentation describing uci client driver use cases.
> > - Fixed uci ref counting in mhi_uci_open for error case.
> > - Addressed style related review comments.
> > 
> > V3: Added documentation for MHI UCI driver.
> > 
> > V2:
> > - Added mutex lock to prevent multiple readers to access same
> > - mhi buffer which can result into use after free.
> > 
> > Hemant Kumar (3):
> >   bus: mhi: core: Move MHI_MAX_MTU to external header file
> >   docs: Add documentation for userspace client interface
> >   bus: mhi: Add userspace client interface driver
> > 
> >  Documentation/mhi/index.rst     |   1 +
> >  Documentation/mhi/uci.rst       |  95 ++++++
> >  drivers/bus/mhi/Kconfig         |  13 +
> >  drivers/bus/mhi/Makefile        |   3 +
> >  drivers/bus/mhi/core/internal.h |   1 -
> >  drivers/bus/mhi/uci.c           | 664 ++++++++++++++++++++++++++++++++++++++++
> >  include/linux/mhi.h             |   3 +
> >  7 files changed, 779 insertions(+), 1 deletion(-)
> >  create mode 100644 Documentation/mhi/uci.rst
> >  create mode 100644 drivers/bus/mhi/uci.c
> > 
> > -- 
> > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> > a Linux Foundation Collaborative Project
> > 

  reply	other threads:[~2021-01-19 10:13 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-06 18:44 [RESEND PATCH v18 0/3] userspace MHI client interface driver Hemant Kumar
2021-01-06 18:44 ` [RESEND PATCH v18 1/3] bus: mhi: core: Move MHI_MAX_MTU to external header file Hemant Kumar
2021-01-06 18:44 ` [RESEND PATCH v18 2/3] docs: Add documentation for userspace client interface Hemant Kumar
2021-01-06 18:44 ` [RESEND PATCH v18 3/3] bus: mhi: Add userspace client interface driver Hemant Kumar
2021-01-13 15:26 ` [RESEND PATCH v18 0/3] userspace MHI " Manivannan Sadhasivam
2021-01-19  9:42   ` Manivannan Sadhasivam [this message]
2021-01-19 10:28     ` Greg KH
2021-01-27 15:15   ` Greg KH
2021-01-27 16:24     ` Bjorn Andersson
2021-02-01 10:55     ` Manivannan Sadhasivam
2021-02-01 11:15       ` Greg KH
2021-02-01 12:13         ` Manivannan Sadhasivam
2021-02-02  4:22           ` Manivannan Sadhasivam
2021-02-03  4:10             ` Jakub Kicinski
2021-02-03  4:15               ` Manivannan Sadhasivam
2021-02-03 18:05                 ` Jakub Kicinski
2021-02-03 18:28                   ` Loic Poulain
2021-02-03 18:40                     ` Jakub Kicinski
2021-02-04  4:07                       ` Manivannan Sadhasivam
2021-02-04  5:53                       ` Bjorn Andersson
2021-02-09  9:20                       ` Aleksander Morgado
2021-02-09 16:17                         ` Jakub Kicinski
2021-02-09 16:49                           ` Aleksander Morgado
2021-02-10  6:25                           ` Manivannan Sadhasivam
2021-02-10 18:41                             ` Jakub Kicinski
2021-02-10 19:18                               ` Jeffrey Hugo
2021-02-10 22:08                               ` Bjorn Andersson
2021-02-11  9:26                               ` Aleksander Morgado
2021-02-28 14:12                             ` Aleksander Morgado
2021-02-28 15:52                               ` Manivannan Sadhasivam
2021-02-03 18:34                   ` Bjorn Andersson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210119094250.GA20682@thinkpad \
    --to=manivannan.sadhasivam@linaro.org \
    --cc=bbhatt@codeaurora.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hemantk@codeaurora.org \
    --cc=jhugo@codeaurora.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=loic.poulain@linaro.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).