linux/drivers/media/usb/em28xx/em28xx-input.c

// SPDX-License-Identifier: GPL-2.0+
//
// handle em28xx IR remotes via linux kernel input layer.
//
// Copyright (C) 2005 Ludovico Cavedon <[email protected]>
//		      Markus Rechberger <[email protected]>
//		      Mauro Carvalho Chehab <[email protected]>
//		      Sascha Sommer <[email protected]>

#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...)

/*
 * Polling structure used by em28xx IR's
 */

struct em28xx_ir_poll_result {};

struct em28xx_IR {};

/*
 * I2C IR based get keycodes - should be used with ir-kbd-i2c
 */

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)
{}

/*
 * Poll based get keycode functions
 */

/* This is for the em2860/em2880 */
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)
{}

/*
 * Polling code for em28xx
 */

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)
{}

/*
 * Handle buttons
 */

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);