#include <linux/device.h>
#include <linux/hid.h>
#include <linux/module.h>
#include <linux/timer.h>
#include "usbhid/usbhid.h"
#include "hid-uclogic-params.h"
#include "hid-ids.h"
static void uclogic_inrange_timeout(struct timer_list *t)
{ … }
static __u8 *uclogic_report_fixup(struct hid_device *hdev, __u8 *rdesc,
unsigned int *rsize)
{ … }
static int uclogic_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 uclogic_input_configured(struct hid_device *hdev,
struct hid_input *hi)
{ … }
static int uclogic_probe(struct hid_device *hdev,
const struct hid_device_id *id)
{ … }
#ifdef CONFIG_PM
static int uclogic_resume(struct hid_device *hdev)
{ … }
#endif
static bool uclogic_exec_event_hook(struct uclogic_params *p, u8 *event, int size)
{ … }
static int uclogic_raw_event_pen(struct uclogic_drvdata *drvdata,
u8 *data, int size)
{ … }
static int uclogic_raw_event_frame(
struct uclogic_drvdata *drvdata,
const struct uclogic_params_frame *frame,
u8 *data, int size)
{ … }
static int uclogic_raw_event(struct hid_device *hdev,
struct hid_report *report,
u8 *data, int size)
{ … }
static void uclogic_remove(struct hid_device *hdev)
{ … }
static const struct hid_device_id uclogic_devices[] = …;
MODULE_DEVICE_TABLE(hid, uclogic_devices);
static struct hid_driver uclogic_driver = …;
module_hid_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
#ifdef CONFIG_HID_KUNIT_TEST
#include "hid-uclogic-core-test.c"
#endif