[net-next v6 0/8] net: wwan: add NMEA port type support

Slark Xiao posted 8 patches 3 weeks, 3 days ago
There is a newer version of this series
drivers/net/wwan/Kconfig         |   1 +
drivers/net/wwan/mhi_wwan_ctrl.c |   1 +
drivers/net/wwan/wwan_core.c     | 277 +++++++++++++++++++++++++------
drivers/net/wwan/wwan_hwsim.c    | 201 ++++++++++++++++++----
include/linux/wwan.h             |   2 +
5 files changed, 394 insertions(+), 88 deletions(-)
[net-next v6 0/8] net: wwan: add NMEA port type support
Posted by Slark Xiao 3 weeks, 3 days ago
The series introduces a long discussed NMEA port type support for the
WWAN subsystem. There are two goals. From the WWAN driver perspective,
NMEA exported as any other port type (e.g. AT, MBIM, QMI, etc.). From
user space software perspective, the exported chardev belongs to the
GNSS class what makes it easy to distinguish desired port and the WWAN
device common to both NMEA and control (AT, MBIM, etc.) ports makes it
easy to locate a control port for the GNSS receiver activation.

Done by exporting the NMEA port via the GNSS subsystem with the WWAN
core acting as proxy between the WWAN modem driver and the GNSS
subsystem.

The series starts from a cleanup patch. Then three patches prepares the
WWAN core for the proxy style operation. Followed by a patch introding a
new WWNA port type, integration with the GNSS subsystem and demux. The
series ends with a couple of patches that introduce emulated EMEA port
to the WWAN HW simulator.

The series is the product of the discussion with Loic about the pros and
cons of possible models and implementation. Also Muhammad and Slark did
a great job defining the problem, sharing the code and pushing me to
finish the implementation. Daniele has caught an issue on driver
unloading and suggested an investigation direction. What was concluded
by Loic. Many thanks.

Changes RFCv1->RFCv2:
* Uniformly use put_device() to release port memory. This made code less
  weird and way more clear. Thank you, Loic, for noticing and the fix
  discussion!
Changes RFCv2->RFCv5:
* Fix premature WWAN device unregister; new patch 2/7, thus, all
  subsequent patches have been renumbered
* Minor adjustments here and there

Sergey Ryazanov (7):
  net: wwan: core: remove unused port_id field
  net: wwan: core: explicit WWAN device reference counting
  net: wwan: core: split port creation and registration
  net: wwan: core: split port unregister and stop
  net: wwan: add NMEA port support
  net: wwan: hwsim: refactor to support more port types
  net: wwan: hwsim: support NMEA port emulation

Slark Xiao (1):
  net: wwan: mhi_wwan_ctrl: Add NMEA channel support

 drivers/net/wwan/Kconfig         |   1 +
 drivers/net/wwan/mhi_wwan_ctrl.c |   1 +
 drivers/net/wwan/wwan_core.c     | 277 +++++++++++++++++++++++++------
 drivers/net/wwan/wwan_hwsim.c    | 201 ++++++++++++++++++----
 include/linux/wwan.h             |   2 +
 5 files changed, 394 insertions(+), 88 deletions(-)

-- 
2.25.1
Re:[net-next v6 0/8] net: wwan: add NMEA port type support
Posted by Slark Xiao 3 weeks, 3 days ago
At 2026-01-15 17:54:09, "Slark Xiao" <slark_xiao@163.com> wrote:
>The series introduces a long discussed NMEA port type support for the
>WWAN subsystem. There are two goals. From the WWAN driver perspective,
>NMEA exported as any other port type (e.g. AT, MBIM, QMI, etc.). From
>user space software perspective, the exported chardev belongs to the
>GNSS class what makes it easy to distinguish desired port and the WWAN
>device common to both NMEA and control (AT, MBIM, etc.) ports makes it
>easy to locate a control port for the GNSS receiver activation.
>
>Done by exporting the NMEA port via the GNSS subsystem with the WWAN
>core acting as proxy between the WWAN modem driver and the GNSS
>subsystem.
>
>The series starts from a cleanup patch. Then three patches prepares the
>WWAN core for the proxy style operation. Followed by a patch introding a
>new WWNA port type, integration with the GNSS subsystem and demux. The
>series ends with a couple of patches that introduce emulated EMEA port
>to the WWAN HW simulator.
>
>The series is the product of the discussion with Loic about the pros and
>cons of possible models and implementation. Also Muhammad and Slark did
>a great job defining the problem, sharing the code and pushing me to
>finish the implementation. Daniele has caught an issue on driver
>unloading and suggested an investigation direction. What was concluded
>by Loic. Many thanks.
>
>Changes RFCv1->RFCv2:
>* Uniformly use put_device() to release port memory. This made code less
>  weird and way more clear. Thank you, Loic, for noticing and the fix
>  discussion!
>Changes RFCv2->RFCv5:
>* Fix premature WWAN device unregister; new patch 2/7, thus, all
>  subsequent patches have been renumbered
>* Minor adjustments here and there
>
>Sergey Ryazanov (7):
>  net: wwan: core: remove unused port_id field
>  net: wwan: core: explicit WWAN device reference counting
Ignore this serial since a typo which lead to build error.
See next v8 version later.

>  net: wwan: core: split port creation and registration
>  net: wwan: core: split port unregister and stop
>  net: wwan: add NMEA port support
>  net: wwan: hwsim: refactor to support more port types
>  net: wwan: hwsim: support NMEA port emulation
>
>Slark Xiao (1):
>  net: wwan: mhi_wwan_ctrl: Add NMEA channel support
>
> drivers/net/wwan/Kconfig         |   1 +
> drivers/net/wwan/mhi_wwan_ctrl.c |   1 +
> drivers/net/wwan/wwan_core.c     | 277 +++++++++++++++++++++++++------
> drivers/net/wwan/wwan_hwsim.c    | 201 ++++++++++++++++++----
> include/linux/wwan.h             |   2 +
> 5 files changed, 394 insertions(+), 88 deletions(-)
>
>-- 
>2.25.1
Re: [net-next v6 0/8] net: wwan: add NMEA port type support
Posted by Jakub Kicinski 3 weeks, 2 days ago
On Thu, 15 Jan 2026 19:43:55 +0800 (CST) Slark Xiao wrote:
> >Sergey Ryazanov (7):
> >  net: wwan: core: remove unused port_id field
> >  net: wwan: core: explicit WWAN device reference counting  
> Ignore this serial since a typo which lead to build error.
> See next v8 version later.

Please read:
https://www.kernel.org/doc/html/next/process/maintainer-netdev.html
We request that you wait with reposts _especially_ when they are caused
by your own negligence.
-- 
pv-bot: 24h