29 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
31 #include <linux/slab.h>
32 #include <linux/module.h>
33 #include <linux/input.h>
35 #include <linux/device.h>
41 static void evbug_event(
struct input_handle *
handle,
unsigned int type,
unsigned int code,
int value)
44 dev_name(&handle->dev->dev), type, code, value);
47 static int evbug_connect(
struct input_handler *handler,
struct input_dev *
dev,
50 struct input_handle *
handle;
53 handle = kzalloc(
sizeof(
struct input_handle),
GFP_KERNEL);
58 handle->handler = handler;
59 handle->name =
"evbug";
61 error = input_register_handle(handle);
65 error = input_open_device(handle);
67 goto err_unregister_handle;
71 dev->name ?:
"unknown",
72 dev->phys ?:
"unknown");
76 err_unregister_handle:
77 input_unregister_handle(handle);
83 static void evbug_disconnect(
struct input_handle *handle)
86 dev_name(&handle->dev->dev));
88 input_close_device(handle);
89 input_unregister_handle(handle);
100 static struct input_handler evbug_handler = {
101 .event = evbug_event,
102 .connect = evbug_connect,
103 .disconnect = evbug_disconnect,
105 .id_table = evbug_ids,
108 static int __init evbug_init(
void)
110 return input_register_handler(&evbug_handler);
113 static void __exit evbug_exit(
void)
115 input_unregister_handler(&evbug_handler);