#include <linux/device.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/usb.h>
#include <linux/usb/input.h>
#include <media/rc-core.h>
#define DRIVER_NAME …
#define DRIVER_DESC …
#define USB_STREAMZAP_VENDOR_ID …
#define USB_STREAMZAP_PRODUCT_ID …
static const struct usb_device_id streamzap_table[] = …;
MODULE_DEVICE_TABLE(usb, streamzap_table);
#define SZ_PULSE_MASK …
#define SZ_SPACE_MASK …
#define SZ_TIMEOUT …
#define SZ_RESOLUTION …
#define SZ_BUF_LEN …
enum StreamzapDecoderState { … };
struct streamzap_ir { … };
static int streamzap_probe(struct usb_interface *interface,
const struct usb_device_id *id);
static void streamzap_disconnect(struct usb_interface *interface);
static void streamzap_callback(struct urb *urb);
static int streamzap_suspend(struct usb_interface *intf, pm_message_t message);
static int streamzap_resume(struct usb_interface *intf);
static struct usb_driver streamzap_driver = …;
static void sz_push(struct streamzap_ir *sz, struct ir_raw_event rawir)
{ … }
static void sz_push_full_pulse(struct streamzap_ir *sz,
unsigned char value)
{ … }
static void sz_push_half_pulse(struct streamzap_ir *sz,
unsigned char value)
{ … }
static void sz_push_full_space(struct streamzap_ir *sz,
unsigned char value)
{ … }
static void sz_push_half_space(struct streamzap_ir *sz,
unsigned long value)
{ … }
static void streamzap_callback(struct urb *urb)
{ … }
static struct rc_dev *streamzap_init_rc_dev(struct streamzap_ir *sz,
struct usb_device *usbdev)
{ … }
static int streamzap_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{ … }
static void streamzap_disconnect(struct usb_interface *interface)
{ … }
static int streamzap_suspend(struct usb_interface *intf, pm_message_t message)
{ … }
static int streamzap_resume(struct usb_interface *intf)
{ … }
module_usb_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…);
MODULE_LICENSE(…) …;