#include "em28xx.h"
#include <linux/module.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/usb.h>
#include <linux/usb/input.h>
#include <linux/slab.h>
#include <linux/bitrev.h>
#define EM28XX_SNAPSHOT_KEY …
#define EM28XX_BUTTONS_DEBOUNCED_QUERY_INTERVAL …
#define EM28XX_BUTTONS_VOLATILE_QUERY_INTERVAL …
static unsigned int ir_debug;
module_param(ir_debug, int, 0644);
MODULE_PARM_DESC(…) …;
#define MODULE_NAME …
#define dprintk(fmt, arg...) …
struct em28xx_ir_poll_result { … };
struct em28xx_IR { … };
static int em28xx_get_key_terratec(struct i2c_client *i2c_dev,
enum rc_proto *protocol, u32 *scancode)
{ … }
static int em28xx_get_key_em_haup(struct i2c_client *i2c_dev,
enum rc_proto *protocol, u32 *scancode)
{ … }
static int em28xx_get_key_pinnacle_usb_grey(struct i2c_client *i2c_dev,
enum rc_proto *protocol,
u32 *scancode)
{ … }
static int em28xx_get_key_winfast_usbii_deluxe(struct i2c_client *i2c_dev,
enum rc_proto *protocol,
u32 *scancode)
{ … }
static int default_polling_getkey(struct em28xx_IR *ir,
struct em28xx_ir_poll_result *poll_result)
{ … }
static int em2874_polling_getkey(struct em28xx_IR *ir,
struct em28xx_ir_poll_result *poll_result)
{ … }
static int em28xx_i2c_ir_handle_key(struct em28xx_IR *ir)
{ … }
static void em28xx_ir_handle_key(struct em28xx_IR *ir)
{ … }
static void em28xx_ir_work(struct work_struct *work)
{ … }
static int em28xx_ir_start(struct rc_dev *rc)
{ … }
static void em28xx_ir_stop(struct rc_dev *rc)
{ … }
static int em2860_ir_change_protocol(struct rc_dev *rc_dev, u64 *rc_proto)
{ … }
static int em2874_ir_change_protocol(struct rc_dev *rc_dev, u64 *rc_proto)
{ … }
static int em28xx_ir_change_protocol(struct rc_dev *rc_dev, u64 *rc_proto)
{ … }
static int em28xx_probe_i2c_ir(struct em28xx *dev)
{ … }
static void em28xx_query_buttons(struct work_struct *work)
{ … }
static int em28xx_register_snapshot_button(struct em28xx *dev)
{ … }
static void em28xx_init_buttons(struct em28xx *dev)
{ … }
static void em28xx_shutdown_buttons(struct em28xx *dev)
{ … }
static int em28xx_ir_init(struct em28xx *dev)
{ … }
static int em28xx_ir_fini(struct em28xx *dev)
{ … }
static int em28xx_ir_suspend(struct em28xx *dev)
{ … }
static int em28xx_ir_resume(struct em28xx *dev)
{ … }
static struct em28xx_ops rc_ops = …;
static int __init em28xx_rc_register(void)
{ … }
static void __exit em28xx_rc_unregister(void)
{ … }
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_VERSION(…);
module_init(…) …;
module_exit(em28xx_rc_unregister);