#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/tty.h>
#include <linux/tty_driver.h>
#include <linux/tty_flip.h>
#include <linux/module.h>
#include <linux/serial.h>
#include <linux/usb.h>
#include <linux/usb/serial.h>
#include <linux/serial_reg.h>
#include <linux/uaccess.h>
#define QT_OPEN_CLOSE_CHANNEL …
#define QT_SET_GET_DEVICE …
#define QT_SET_GET_REGISTER …
#define QT_GET_SET_PREBUF_TRIG_LVL …
#define QT_SET_ATF …
#define QT_GET_SET_UART …
#define QT_TRANSFER_IN …
#define QT_HW_FLOW_CONTROL_MASK …
#define QT_SW_FLOW_CONTROL_MASK …
#define SERIAL_MSR_MASK …
#define SERIAL_CRTSCTS …
#define SERIAL_EVEN_PARITY …
#define MAX_BAUD_RATE …
#define ATC_DISABLED …
#define DUPMODE_BITS …
#define RR_BITS …
#define LOOPMODE_BITS …
#define RS232_MODE …
#define RTSCTS_TO_CONNECTOR …
#define CLKS_X4 …
#define FULLPWRBIT …
#define NEXT_BOARD_POWER_BIT …
#define DRIVER_DESC …
#define USB_VENDOR_ID_QUATECH …
#define QUATECH_SSU100 …
static const struct usb_device_id id_table[] = …;
MODULE_DEVICE_TABLE(usb, id_table);
struct ssu100_port_private { … };
static inline int ssu100_control_msg(struct usb_device *dev,
u8 request, u16 data, u16 index)
{ … }
static inline int ssu100_setdevice(struct usb_device *dev, u8 *data)
{ … }
static inline int ssu100_getdevice(struct usb_device *dev, u8 *data)
{ … }
static inline int ssu100_getregister(struct usb_device *dev,
unsigned short uart,
unsigned short reg,
u8 *data)
{ … }
static inline int ssu100_setregister(struct usb_device *dev,
unsigned short uart,
unsigned short reg,
u16 data)
{ … }
#define set_mctrl(dev, set) …
#define clear_mctrl(dev, clear) …
static inline int update_mctrl(struct usb_device *dev, unsigned int set,
unsigned int clear)
{ … }
static int ssu100_initdevice(struct usb_device *dev)
{ … }
static void ssu100_set_termios(struct tty_struct *tty,
struct usb_serial_port *port,
const struct ktermios *old_termios)
{ … }
static int ssu100_open(struct tty_struct *tty, struct usb_serial_port *port)
{ … }
static int ssu100_attach(struct usb_serial *serial)
{ … }
static int ssu100_port_probe(struct usb_serial_port *port)
{ … }
static void ssu100_port_remove(struct usb_serial_port *port)
{ … }
static int ssu100_tiocmget(struct tty_struct *tty)
{ … }
static int ssu100_tiocmset(struct tty_struct *tty,
unsigned int set, unsigned int clear)
{ … }
static void ssu100_dtr_rts(struct usb_serial_port *port, int on)
{ … }
static void ssu100_update_msr(struct usb_serial_port *port, u8 msr)
{ … }
static void ssu100_update_lsr(struct usb_serial_port *port, u8 lsr,
char *tty_flag)
{ … }
static void ssu100_process_read_urb(struct urb *urb)
{ … }
static struct usb_serial_driver ssu100_device = …;
static struct usb_serial_driver * const serial_drivers[] = …;
module_usb_serial_driver(…);
MODULE_DESCRIPTION(…);
MODULE_LICENSE(…) …;