mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-05-12 18:23:45 +00:00
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>
23 lines
701 B
C
23 lines
701 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* USB CDC Device Management subdriver
|
|
*
|
|
* Copyright (c) 2012 Bjørn Mork <bjorn@mork.no>
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* version 2 as published by the Free Software Foundation.
|
|
*/
|
|
|
|
#ifndef __LINUX_USB_CDC_WDM_H
|
|
#define __LINUX_USB_CDC_WDM_H
|
|
|
|
#include <linux/wwan.h>
|
|
#include <uapi/linux/usb/cdc-wdm.h>
|
|
|
|
extern struct usb_driver *usb_cdc_wdm_register(struct usb_interface *intf,
|
|
struct usb_endpoint_descriptor *ep,
|
|
int bufsize, enum wwan_port_type type,
|
|
int (*manage_power)(struct usb_interface *, int));
|
|
|
|
#endif /* __LINUX_USB_CDC_WDM_H */
|