#include <linux/device.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/workqueue.h>
#include <linux/usb.h>
#include <linux/usb/input.h>
#include <linux/pm_wakeup.h>
#include <media/rc-core.h>
#define DRIVER_VERSION …
#define DRIVER_AUTHOR …
#define DRIVER_DESC …
#define DRIVER_NAME …
#define USB_TX_TIMEOUT …
#define USB_CTRL_MSG_SZ …
#define MCE_G1_INIT_MSGS …
#define MCE_IRBUF_SIZE …
#define MCE_TIME_UNIT …
#define MCE_PACKET_SIZE …
#define MCE_IRDATA_HEADER …
#define MCE_IRDATA_TRAILER …
#define MCE_MAX_CHANNELS …
#define MCE_DEFAULT_TX_MASK …
#define MCE_PULSE_BIT …
#define MCE_PULSE_MASK …
#define MCE_MAX_PULSE_LENGTH …
#define MCE_CMD …
#define MCE_PORT_IR …
#define MCE_PORT_SYS …
#define MCE_PORT_SER …
#define MCE_PORT_MASK …
#define MCE_CMD_PORT_IR …
#define MCE_CMD_PORT_SYS …
#define MCE_CMD_RESET …
#define MCE_CMD_RESUME …
#define MCE_CMD_SETIRCFS …
#define MCE_CMD_SETIRTIMEOUT …
#define MCE_CMD_SETIRTXPORTS …
#define MCE_CMD_SETIRRXPORTEN …
#define MCE_CMD_FLASHLED …
#define MCE_CMD_GETIRCFS …
#define MCE_CMD_GETIRTIMEOUT …
#define MCE_CMD_GETIRTXPORTS …
#define MCE_CMD_GETIRRXPORTEN …
#define MCE_CMD_GETPORTSTATUS …
#define MCE_CMD_GETIRNUMPORTS …
#define MCE_CMD_GETWAKESOURCE …
#define MCE_CMD_GETEMVER …
#define MCE_CMD_GETDEVDETAILS …
#define MCE_CMD_GETWAKESUPPORT …
#define MCE_CMD_GETWAKEVERSION …
#define MCE_CMD_NOP …
#define MCE_RSP_EQIRCFS …
#define MCE_RSP_EQIRTIMEOUT …
#define MCE_RSP_GETWAKESOURCE …
#define MCE_RSP_EQIRTXPORTS …
#define MCE_RSP_EQIRRXPORTEN …
#define MCE_RSP_GETPORTSTATUS …
#define MCE_RSP_EQIRRXCFCNT …
#define MCE_RSP_EQIRNUMPORTS …
#define MCE_RSP_EQWAKESUPPORT …
#define MCE_RSP_EQWAKEVERSION …
#define MCE_RSP_EQDEVDETAILS …
#define MCE_RSP_EQEMVER …
#define MCE_RSP_FLASHLED …
#define MCE_RSP_CMD_ILLEGAL …
#define MCE_RSP_TX_TIMEOUT …
#define MCE_CMD_SIG_END …
#define MCE_CMD_PING …
#define MCE_CMD_UNKNOWN …
#define MCE_CMD_UNKNOWN2 …
#define MCE_CMD_UNKNOWN3 …
#define MCE_CMD_UNKNOWN4 …
#define MCE_CMD_G_REVISION …
#define MCE_CMD_UNKNOWN5 …
#define MCE_CMD_UNKNOWN6 …
#define MCE_CMD_UNKNOWN8 …
#define MCE_CMD_UNKNOWN9 …
#define MCE_CMD_NULL …
#define MCE_COMMAND_IRDATA …
#define MCE_PACKET_LENGTH_MASK …
#define VENDOR_PHILIPS …
#define VENDOR_SMK …
#define VENDOR_TATUNG …
#define VENDOR_GATEWAY …
#define VENDOR_SHUTTLE …
#define VENDOR_SHUTTLE2 …
#define VENDOR_MITSUMI …
#define VENDOR_TOPSEED …
#define VENDOR_RICAVISION …
#define VENDOR_ITRON …
#define VENDOR_FIC …
#define VENDOR_LG …
#define VENDOR_MICROSOFT …
#define VENDOR_FORMOSA …
#define VENDOR_FINTEK …
#define VENDOR_PINNACLE …
#define VENDOR_ECS …
#define VENDOR_WISTRON …
#define VENDOR_COMPRO …
#define VENDOR_NORTHSTAR …
#define VENDOR_REALTEK …
#define VENDOR_TIVO …
#define VENDOR_CONEXANT …
#define VENDOR_TWISTEDMELON …
#define VENDOR_HAUPPAUGE …
#define VENDOR_PCTV …
#define VENDOR_ADAPTEC …
enum mceusb_model_type { … };
struct mceusb_model { … };
static const struct mceusb_model mceusb_model[] = …;
static const struct usb_device_id mceusb_dev_table[] = …;
struct mceusb_dev { … };
static char DEVICE_RESUME[] = …;
static char GET_REVISION[] = …;
static char GET_EMVER[] = …;
static char GET_WAKEVERSION[] = …;
static char FLASH_LED[] = …;
static char GET_UNKNOWN2[] = …;
static char GET_CARRIER_FREQ[] = …;
static char GET_RX_TIMEOUT[] = …;
static char GET_NUM_PORTS[] = …;
static char GET_TX_BITMASK[] = …;
static char GET_RX_SENSOR[] = …;
static int mceusb_cmd_datasize(u8 cmd, u8 subcmd)
{ … }
static void mceusb_dev_printdata(struct mceusb_dev *ir, u8 *buf, int buf_len,
int offset, int len, bool out)
{ … }
static void mceusb_defer_kevent(struct mceusb_dev *ir, int kevent)
{ … }
static void mce_write_callback(struct urb *urb)
{ … }
static int mce_write(struct mceusb_dev *ir, u8 *data, int size)
{ … }
static void mce_command_out(struct mceusb_dev *ir, u8 *data, int size)
{ … }
static int mceusb_tx_ir(struct rc_dev *dev, unsigned *txbuf, unsigned count)
{ … }
static int mceusb_set_tx_mask(struct rc_dev *dev, u32 mask)
{ … }
static int mceusb_set_tx_carrier(struct rc_dev *dev, u32 carrier)
{ … }
static int mceusb_set_timeout(struct rc_dev *dev, unsigned int timeout)
{ … }
static int mceusb_set_rx_wideband(struct rc_dev *dev, int enable)
{ … }
static int mceusb_set_rx_carrier_report(struct rc_dev *dev, int enable)
{ … }
static void mceusb_handle_command(struct mceusb_dev *ir, u8 *buf_in)
{ … }
static void mceusb_process_ir_data(struct mceusb_dev *ir, int buf_len)
{ … }
static void mceusb_dev_recv(struct urb *urb)
{ … }
static void mceusb_get_emulator_version(struct mceusb_dev *ir)
{ … }
static void mceusb_gen1_init(struct mceusb_dev *ir)
{ … }
static void mceusb_gen2_init(struct mceusb_dev *ir)
{ … }
static void mceusb_get_parameters(struct mceusb_dev *ir)
{ … }
static void mceusb_flash_led(struct mceusb_dev *ir)
{ … }
static void mceusb_deferred_kevent(struct work_struct *work)
{ … }
static struct rc_dev *mceusb_init_rc_dev(struct mceusb_dev *ir)
{ … }
static int mceusb_dev_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{ … }
static void mceusb_dev_disconnect(struct usb_interface *intf)
{ … }
static int mceusb_dev_suspend(struct usb_interface *intf, pm_message_t message)
{ … }
static int mceusb_dev_resume(struct usb_interface *intf)
{ … }
static struct usb_driver mceusb_dev_driver = …;
module_usb_driver(…) …;
MODULE_DESCRIPTION(…);
MODULE_AUTHOR(…);
MODULE_LICENSE(…) …;
MODULE_DEVICE_TABLE(usb, mceusb_dev_table);