#include <linux/hid.h>
#include <linux/input/mt.h>
#include <linux/leds.h>
#include <linux/module.h>
#include <linux/usb.h>
#include "hid-ids.h"
#define ELAN_MT_I2C …
#define ELAN_SINGLE_FINGER …
#define ELAN_MT_FIRST_FINGER …
#define ELAN_MT_SECOND_FINGER …
#define ELAN_INPUT_REPORT_SIZE …
#define ELAN_I2C_REPORT_SIZE …
#define ELAN_FINGER_DATA_LEN …
#define ELAN_MAX_FINGERS …
#define ELAN_MAX_PRESSURE …
#define ELAN_TP_USB_INTF …
#define ELAN_FEATURE_REPORT …
#define ELAN_FEATURE_SIZE …
#define ELAN_PARAM_MAX_X …
#define ELAN_PARAM_MAX_Y …
#define ELAN_PARAM_RES …
#define ELAN_MUTE_LED_REPORT …
#define ELAN_LED_REPORT_SIZE …
#define ELAN_HAS_LED …
struct elan_drvdata { … };
static int is_not_elan_touchpad(struct hid_device *hdev)
{ … }
static int elan_input_mapping(struct hid_device *hdev, struct hid_input *hi,
struct hid_field *field, struct hid_usage *usage,
unsigned long **bit, int *max)
{ … }
static int elan_get_device_param(struct hid_device *hdev,
unsigned char *dmabuf, unsigned char param)
{ … }
static unsigned int elan_convert_res(char val)
{ … }
static int elan_get_device_params(struct hid_device *hdev)
{ … }
static int elan_input_configured(struct hid_device *hdev, struct hid_input *hi)
{ … }
static void elan_report_mt_slot(struct elan_drvdata *drvdata, u8 *data,
unsigned int slot_num)
{ … }
static void elan_usb_report_input(struct elan_drvdata *drvdata, u8 *data)
{ … }
static void elan_i2c_report_input(struct elan_drvdata *drvdata, u8 *data)
{ … }
static int elan_raw_event(struct hid_device *hdev,
struct hid_report *report, u8 *data, int size)
{ … }
static int elan_start_multitouch(struct hid_device *hdev)
{ … }
static int elan_mute_led_set_brigtness(struct led_classdev *led_cdev,
enum led_brightness value)
{ … }
static int elan_init_mute_led(struct hid_device *hdev)
{ … }
static int elan_probe(struct hid_device *hdev, const struct hid_device_id *id)
{ … }
static const struct hid_device_id elan_devices[] = …;
MODULE_DEVICE_TABLE(hid, elan_devices);
static struct hid_driver elan_driver = …;
module_hid_driver(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;