• Loic Poulain's avatar
    usb: class: cdc-wdm: WWAN framework integration · cac6fb01
    Loic Poulain authored
    The WWAN framework provides a unified way to handle WWAN/modems and its
    control port(s). It has initially been introduced to support MHI/PCI
    modems, offering the same control protocols as the USB variants such as
    MBIM, QMI, AT... The WWAN framework exposes these control protocols as
    character devices, similarly to cdc-wdm, but in a bus agnostic fashion.
    
    This change adds registration of the USB modem cdc-wdm control endpoints
    to the WWAN framework as standard control ports (wwanXpY...).
    
    Exposing cdc-wdm through WWAN framework normally maintains backward
    compatibility, e.g:
        $ qmicli --device-open-qmi -d /dev/wwan0p1QMI --dms-get-ids
    instead of
        $ qmicli --device-open-qmi -d /dev/cdc-wdm0 --dms-get-ids
    
    However, some tools may rely on cdc-wdm driver/device name for device
    detection. It is then safer to keep the 'legacy' cdc-wdm character
    device to prevent any breakage. This is handled in this change by
    API mutual exclusion, only one access method can be used at a time,
    either cdc-wdm chardev or WWAN API.
    
    Note that unknown channel types (other than MBIM, AT or MBIM) are not
    registered to the WWAN framework.
    Signed-off-by: default avatarLoic Poulain <loic.poulain@linaro.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    cac6fb01
cdc-wdm.c 32.4 KB