#include <linux/kernel.h>
#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/spinlock.h>
#include <linux/workqueue.h>
#include <linux/uaccess.h>
#include <linux/usb.h>
#include <linux/usb/serial.h>
#include <linux/usb/ezusb.h>
#define DRIVER_AUTHOR …
#define DRIVER_DESC …
#define KEYSPAN_TX_THRESHOLD …
struct keyspan_pda_private { … };
static int keyspan_pda_write_start(struct usb_serial_port *port);
#define KEYSPAN_VENDOR_ID …
#define KEYSPAN_PDA_FAKE_ID …
#define KEYSPAN_PDA_ID …
#define XIRCOM_VENDOR_ID …
#define XIRCOM_FAKE_ID …
#define XIRCOM_FAKE_ID_2 …
#define ENTREGA_VENDOR_ID …
#define ENTREGA_FAKE_ID …
static const struct usb_device_id id_table_combined[] = …;
MODULE_DEVICE_TABLE(usb, id_table_combined);
static const struct usb_device_id id_table_std[] = …;
static const struct usb_device_id id_table_fake[] = …;
static int keyspan_pda_get_write_room(struct keyspan_pda_private *priv)
{ … }
static void keyspan_pda_request_unthrottle(struct work_struct *work)
{ … }
static void keyspan_pda_rx_interrupt(struct urb *urb)
{ … }
static void keyspan_pda_rx_throttle(struct tty_struct *tty)
{ … }
static void keyspan_pda_rx_unthrottle(struct tty_struct *tty)
{ … }
static speed_t keyspan_pda_setbaud(struct usb_serial *serial, speed_t baud)
{ … }
static int keyspan_pda_break_ctl(struct tty_struct *tty, int break_state)
{ … }
static void keyspan_pda_set_termios(struct tty_struct *tty,
struct usb_serial_port *port,
const struct ktermios *old_termios)
{ … }
static int keyspan_pda_get_modem_info(struct usb_serial *serial,
unsigned char *value)
{ … }
static int keyspan_pda_set_modem_info(struct usb_serial *serial,
unsigned char value)
{ … }
static int keyspan_pda_tiocmget(struct tty_struct *tty)
{ … }
static int keyspan_pda_tiocmset(struct tty_struct *tty,
unsigned int set, unsigned int clear)
{ … }
static int keyspan_pda_write_start(struct usb_serial_port *port)
{ … }
static void keyspan_pda_write_bulk_callback(struct urb *urb)
{ … }
static int keyspan_pda_write(struct tty_struct *tty, struct usb_serial_port *port,
const unsigned char *buf, int count)
{ … }
static void keyspan_pda_dtr_rts(struct usb_serial_port *port, int on)
{ … }
static int keyspan_pda_open(struct tty_struct *tty,
struct usb_serial_port *port)
{ … }
static void keyspan_pda_close(struct usb_serial_port *port)
{ … }
static int keyspan_pda_fake_startup(struct usb_serial *serial)
{ … }
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
static int keyspan_pda_port_probe(struct usb_serial_port *port)
{ … }
static void keyspan_pda_port_remove(struct usb_serial_port *port)
{ … }
static struct usb_serial_driver keyspan_pda_fake_device = …;
static struct usb_serial_driver keyspan_pda_device = …;
static struct usb_serial_driver * const serial_drivers[] = …;
module_usb_serial_driver(…);
MODULE_AUTHOR(…);
MODULE_DESCRIPTION(…);
MODULE_LICENSE(…) …;