diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2010-02-03 00:08:26 -0500 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2010-02-04 03:25:19 -0500 |
commit | 0b7024ac4df5821347141c18e680b7166bc1cb20 (patch) | |
tree | 7a61e55e66bdd39351b3ec39ecef367588b47170 /include/linux/input.h | |
parent | 1e87a43080a259a0e9739377708ece163b08de8d (diff) |
Input: add match() method to input hanlders
Get rid of blacklist in input handler structure and instead allow
handlers to define their own match() method to perform fine-grained
filtering of supported devices.
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'include/linux/input.h')
-rw-r--r-- | include/linux/input.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/input.h b/include/linux/input.h index 6c9d3d49fa91..8dc5d724c703 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
@@ -1200,6 +1200,8 @@ struct input_handle; | |||
1200 | * it may not sleep | 1200 | * it may not sleep |
1201 | * @filter: similar to @event; separates normal event handlers from | 1201 | * @filter: similar to @event; separates normal event handlers from |
1202 | * "filters". | 1202 | * "filters". |
1203 | * @match: called after comparing device's id with handler's id_table | ||
1204 | * to perform fine-grained matching between device and handler | ||
1203 | * @connect: called when attaching a handler to an input device | 1205 | * @connect: called when attaching a handler to an input device |
1204 | * @disconnect: disconnects a handler from input device | 1206 | * @disconnect: disconnects a handler from input device |
1205 | * @start: starts handler for given handle. This function is called by | 1207 | * @start: starts handler for given handle. This function is called by |
@@ -1211,8 +1213,6 @@ struct input_handle; | |||
1211 | * @name: name of the handler, to be shown in /proc/bus/input/handlers | 1213 | * @name: name of the handler, to be shown in /proc/bus/input/handlers |
1212 | * @id_table: pointer to a table of input_device_ids this driver can | 1214 | * @id_table: pointer to a table of input_device_ids this driver can |
1213 | * handle | 1215 | * handle |
1214 | * @blacklist: pointer to a table of input_device_ids this driver should | ||
1215 | * ignore even if they match @id_table | ||
1216 | * @h_list: list of input handles associated with the handler | 1216 | * @h_list: list of input handles associated with the handler |
1217 | * @node: for placing the driver onto input_handler_list | 1217 | * @node: for placing the driver onto input_handler_list |
1218 | * | 1218 | * |
@@ -1235,6 +1235,7 @@ struct input_handler { | |||
1235 | 1235 | ||
1236 | void (*event)(struct input_handle *handle, unsigned int type, unsigned int code, int value); | 1236 | void (*event)(struct input_handle *handle, unsigned int type, unsigned int code, int value); |
1237 | bool (*filter)(struct input_handle *handle, unsigned int type, unsigned int code, int value); | 1237 | bool (*filter)(struct input_handle *handle, unsigned int type, unsigned int code, int value); |
1238 | bool (*match)(struct input_handler *handler, struct input_dev *dev); | ||
1238 | int (*connect)(struct input_handler *handler, struct input_dev *dev, const struct input_device_id *id); | 1239 | int (*connect)(struct input_handler *handler, struct input_dev *dev, const struct input_device_id *id); |
1239 | void (*disconnect)(struct input_handle *handle); | 1240 | void (*disconnect)(struct input_handle *handle); |
1240 | void (*start)(struct input_handle *handle); | 1241 | void (*start)(struct input_handle *handle); |
@@ -1244,7 +1245,6 @@ struct input_handler { | |||
1244 | const char *name; | 1245 | const char *name; |
1245 | 1246 | ||
1246 | const struct input_device_id *id_table; | 1247 | const struct input_device_id *id_table; |
1247 | const struct input_device_id *blacklist; | ||
1248 | 1248 | ||
1249 | struct list_head h_list; | 1249 | struct list_head h_list; |
1250 | struct list_head node; | 1250 | struct list_head node; |