#include <linux/tty.h>
#include <linux/tty_flip.h>
#include <linux/module.h>
#include <linux/usb.h>
#include <linux/usb/serial.h>
#include <linux/slab.h>
#include "usb-wwan.h"
#define DRIVER_AUTHOR …
#define DRIVER_DESC …
#define QUECTEL_EC20_PID …
enum qcserial_layouts { … };
#define DEVICE_G1K(v, p) …
#define DEVICE_SWI(v, p) …
#define DEVICE_HWI(v, p) …
static const struct usb_device_id id_table[] = …;
MODULE_DEVICE_TABLE(usb, id_table);
static int handle_quectel_ec20(struct device *dev, int ifnum)
{ … }
static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
{ … }
static int qc_attach(struct usb_serial *serial)
{ … }
static void qc_release(struct usb_serial *serial)
{ … }
static struct usb_serial_driver qcdevice = …;
static struct usb_serial_driver * const serial_drivers[] = …;
module_usb_serial_driver(…);
MODULE_AUTHOR(…);
MODULE_DESCRIPTION(…);
MODULE_LICENSE(…) …;