• Loic Poulain's avatar
    net: Add a WWAN subsystem · 9a44c1cc
    Loic Poulain authored
    This change introduces initial support for a WWAN framework. Given the
    complexity and heterogeneity of existing WWAN hardwares and interfaces,
    there is no strict definition of what a WWAN device is and how it should
    be represented. It's often a collection of multiple devices that perform
    the global WWAN feature (netdev, tty, chardev, etc).
    
    One usual way to expose modem controls and configuration is via high
    level protocols such as the well known AT command protocol, MBIM or
    QMI. The USB modems started to expose them as character devices, and
    user daemons such as ModemManager learnt to use them.
    
    This initial version adds the concept of WWAN port, which is a logical
    pipe to a modem control protocol. The protocols are rawly exposed to
    user via character device, allowing straigthforward support in existing
    tools (ModemManager, ofono...). The WWAN core takes care of the generic
    part, including character device management, and relies on port driver
    operations to receive/submit protocol data.
    
    Since the different devices exposing protocols for a same WWAN hardware
    do not necessarily know about each others (e.g. two different USB
    interfaces, PCI/MHI channel devices...) and can be created/removed in
    different orders, the WWAN core ensures that all WAN ports contributing
    to the 'whole' WWAN feature are grouped under the same virtual WWAN
    device, relying on the provided parent device (e.g. mhi controller,
    USB device). It's a 'trick' I copied from Johannes's earlier WWAN
    subsystem proposal.
    
    This initial version is purposely minimalist, it's essentially moving
    the generic part of the previously proposed mhi_wwan_ctrl driver inside
    a common WWAN framework, but the implementation is open and flexible
    enough to allow extension for further drivers.
    Signed-off-by: default avatarLoic Poulain <loic.poulain@linaro.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9a44c1cc
Makefile 2.38 KB