#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/usb.h>
#include <linux/input.h>
#include <linux/usb/input.h>
#define USB_VENDOR_ID_SYNAPTICS …
#define USB_DEVICE_ID_SYNAPTICS_TP …
#define USB_DEVICE_ID_SYNAPTICS_INT_TP …
#define USB_DEVICE_ID_SYNAPTICS_CPAD …
#define USB_DEVICE_ID_SYNAPTICS_TS …
#define USB_DEVICE_ID_SYNAPTICS_STICK …
#define USB_DEVICE_ID_SYNAPTICS_WP …
#define USB_DEVICE_ID_SYNAPTICS_COMP_TP …
#define USB_DEVICE_ID_SYNAPTICS_WTP …
#define USB_DEVICE_ID_SYNAPTICS_DPAD …
#define SYNUSB_TOUCHPAD …
#define SYNUSB_STICK …
#define SYNUSB_TOUCHSCREEN …
#define SYNUSB_AUXDISPLAY …
#define SYNUSB_COMBO …
#define SYNUSB_IO_ALWAYS …
#define USB_DEVICE_SYNAPTICS(prod, kind) …
#define SYNUSB_RECV_SIZE …
#define XMIN_NOMINAL …
#define XMAX_NOMINAL …
#define YMIN_NOMINAL …
#define YMAX_NOMINAL …
struct synusb { … };
static void synusb_report_buttons(struct synusb *synusb)
{ … }
static void synusb_report_stick(struct synusb *synusb)
{ … }
static void synusb_report_touchpad(struct synusb *synusb)
{ … }
static void synusb_irq(struct urb *urb)
{ … }
static struct usb_endpoint_descriptor *
synusb_get_in_endpoint(struct usb_host_interface *iface)
{ … }
static int synusb_open(struct input_dev *dev)
{ … }
static void synusb_close(struct input_dev *dev)
{ … }
static int synusb_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{ … }
static void synusb_disconnect(struct usb_interface *intf)
{ … }
static int synusb_suspend(struct usb_interface *intf, pm_message_t message)
{ … }
static int synusb_resume(struct usb_interface *intf)
{ … }
static int synusb_pre_reset(struct usb_interface *intf)
{ … }
static int synusb_post_reset(struct usb_interface *intf)
{ … }
static int synusb_reset_resume(struct usb_interface *intf)
{ … }
static const struct usb_device_id synusb_idtable[] = …;
MODULE_DEVICE_TABLE(usb, synusb_idtable);
static struct usb_driver synusb_driver = …;
module_usb_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;