#include <linux/cleanup.h>
#include <linux/errno.h>
#include <linux/input.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <linux/usb.h>
#include <linux/usb/input.h>
#define PXRC_VENDOR_ID …
#define PXRC_PRODUCT_ID …
struct pxrc { … };
static void pxrc_usb_irq(struct urb *urb)
{ … }
static int pxrc_open(struct input_dev *input)
{ … }
static void pxrc_close(struct input_dev *input)
{ … }
static void pxrc_free_urb(void *_pxrc)
{ … }
static int pxrc_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{ … }
static void pxrc_disconnect(struct usb_interface *intf)
{ … }
static int pxrc_suspend(struct usb_interface *intf, pm_message_t message)
{ … }
static int pxrc_resume(struct usb_interface *intf)
{ … }
static int pxrc_pre_reset(struct usb_interface *intf)
{ … }
static int pxrc_post_reset(struct usb_interface *intf)
{ … }
static int pxrc_reset_resume(struct usb_interface *intf)
{ … }
static const struct usb_device_id pxrc_table[] = …;
MODULE_DEVICE_TABLE(usb, pxrc_table);
static struct usb_driver pxrc_driver = …;
module_usb_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;