OSDN Git Service

usb: class: cdc-wdm: WWAN framework integration
authorLoic Poulain <loic.poulain@linaro.org>
Tue, 11 May 2021 14:42:23 +0000 (16:42 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 11 May 2021 23:17:56 +0000 (16:17 -0700)
commitcac6fb015f719104e60b1c68c15ca5b734f57b9c
tree709c6c0ad58dbed0141b5f4b83e481bc313af505
parentbf30396cdf8132a199af5f8f0e60367876f455df
usb: class: cdc-wdm: WWAN framework integration

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: Loic Poulain <loic.poulain@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/cdc_mbim.c
drivers/net/usb/huawei_cdc_ncm.c
drivers/net/usb/qmi_wwan.c
drivers/usb/class/cdc-wdm.c
include/linux/usb/cdc-wdm.h