#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/usb.h>
#include <linux/delay.h>
#include <linux/firmware.h>
#include <linux/ihex.h>
#define SPDIF …
#ifdef SPDIF
#define FIRMWARE_FW …
#else
#define FIRMWARE_FW …
#endif
#define EMI62_VENDOR_ID …
#define EMI62_PRODUCT_ID …
#define ANCHOR_LOAD_INTERNAL …
#define ANCHOR_LOAD_EXTERNAL …
#define ANCHOR_LOAD_FPGA …
#define MAX_INTERNAL_ADDRESS …
#define CPUCS_REG …
#define INTERNAL_RAM(address) …
static int emi62_writememory(struct usb_device *dev, int address,
const unsigned char *data, int length,
__u8 bRequest);
static int emi62_set_reset(struct usb_device *dev, unsigned char reset_bit);
static int emi62_load_firmware (struct usb_device *dev);
static int emi62_probe(struct usb_interface *intf, const struct usb_device_id *id);
static void emi62_disconnect(struct usb_interface *intf);
static int emi62_writememory(struct usb_device *dev, int address,
const unsigned char *data, int length,
__u8 request)
{ … }
static int emi62_set_reset (struct usb_device *dev, unsigned char reset_bit)
{ … }
#define FW_LOAD_SIZE …
static int emi62_load_firmware (struct usb_device *dev)
{ … }
static const struct usb_device_id id_table[] = …;
MODULE_DEVICE_TABLE (usb, id_table);
static int emi62_probe(struct usb_interface *intf, const struct usb_device_id *id)
{ … }
static void emi62_disconnect(struct usb_interface *intf)
{ … }
static struct usb_driver emi62_driver = …;
module_usb_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…) …;
MODULE_FIRMWARE(…);