diff options
Diffstat (limited to 'include/linux/input.h')
| -rw-r--r-- | include/linux/input.h | 60 | 
1 files changed, 56 insertions, 4 deletions
diff --git a/include/linux/input.h b/include/linux/input.h index 735ceaf1bc2d..dc24effb6d0e 100644 --- a/include/linux/input.h +++ b/include/linux/input.h @@ -376,8 +376,9 @@ struct input_absinfo {  #define KEY_DISPLAY_OFF		245	/* display device to off state */  #define KEY_WIMAX		246 +#define KEY_RFKILL		247	/* Key that controls all radios */ -/* Range 248 - 255 is reserved for special needs of AT keyboard driver */ +/* Code 255 is reserved for special needs of AT keyboard driver */  #define BTN_MISC		0x100  #define BTN_0			0x100 @@ -596,6 +597,49 @@ struct input_absinfo {  #define KEY_NUMERIC_POUND	0x20b  #define KEY_CAMERA_FOCUS	0x210 +#define KEY_WPS_BUTTON		0x211	/* WiFi Protected Setup key */ + +#define BTN_TRIGGER_HAPPY		0x2c0 +#define BTN_TRIGGER_HAPPY1		0x2c0 +#define BTN_TRIGGER_HAPPY2		0x2c1 +#define BTN_TRIGGER_HAPPY3		0x2c2 +#define BTN_TRIGGER_HAPPY4		0x2c3 +#define BTN_TRIGGER_HAPPY5		0x2c4 +#define BTN_TRIGGER_HAPPY6		0x2c5 +#define BTN_TRIGGER_HAPPY7		0x2c6 +#define BTN_TRIGGER_HAPPY8		0x2c7 +#define BTN_TRIGGER_HAPPY9		0x2c8 +#define BTN_TRIGGER_HAPPY10		0x2c9 +#define BTN_TRIGGER_HAPPY11		0x2ca +#define BTN_TRIGGER_HAPPY12		0x2cb +#define BTN_TRIGGER_HAPPY13		0x2cc +#define BTN_TRIGGER_HAPPY14		0x2cd +#define BTN_TRIGGER_HAPPY15		0x2ce +#define BTN_TRIGGER_HAPPY16		0x2cf +#define BTN_TRIGGER_HAPPY17		0x2d0 +#define BTN_TRIGGER_HAPPY18		0x2d1 +#define BTN_TRIGGER_HAPPY19		0x2d2 +#define BTN_TRIGGER_HAPPY20		0x2d3 +#define BTN_TRIGGER_HAPPY21		0x2d4 +#define BTN_TRIGGER_HAPPY22		0x2d5 +#define BTN_TRIGGER_HAPPY23		0x2d6 +#define BTN_TRIGGER_HAPPY24		0x2d7 +#define BTN_TRIGGER_HAPPY25		0x2d8 +#define BTN_TRIGGER_HAPPY26		0x2d9 +#define BTN_TRIGGER_HAPPY27		0x2da +#define BTN_TRIGGER_HAPPY28		0x2db +#define BTN_TRIGGER_HAPPY29		0x2dc +#define BTN_TRIGGER_HAPPY30		0x2dd +#define BTN_TRIGGER_HAPPY31		0x2de +#define BTN_TRIGGER_HAPPY32		0x2df +#define BTN_TRIGGER_HAPPY33		0x2e0 +#define BTN_TRIGGER_HAPPY34		0x2e1 +#define BTN_TRIGGER_HAPPY35		0x2e2 +#define BTN_TRIGGER_HAPPY36		0x2e3 +#define BTN_TRIGGER_HAPPY37		0x2e4 +#define BTN_TRIGGER_HAPPY38		0x2e5 +#define BTN_TRIGGER_HAPPY39		0x2e6 +#define BTN_TRIGGER_HAPPY40		0x2e7  /* We avoid low common keys in module aliases so they don't get huge. */  #define KEY_MIN_INTERESTING	KEY_MUTE @@ -1199,6 +1243,10 @@ struct input_handle;   * @event: event handler. This method is being called by input core with   *	interrupts disabled and dev->event_lock spinlock held and so   *	it may not sleep + * @filter: similar to @event; separates normal event handlers from + *	"filters". + * @match: called after comparing device's id with handler's id_table + *	to perform fine-grained matching between device and handler   * @connect: called when attaching a handler to an input device   * @disconnect: disconnects a handler from input device   * @start: starts handler for given handle. This function is called by @@ -1210,8 +1258,6 @@ struct input_handle;   * @name: name of the handler, to be shown in /proc/bus/input/handlers   * @id_table: pointer to a table of input_device_ids this driver can   *	handle - * @blacklist: pointer to a table of input_device_ids this driver should - *	ignore even if they match @id_table   * @h_list: list of input handles associated with the handler   * @node: for placing the driver onto input_handler_list   * @@ -1220,6 +1266,11 @@ struct input_handle;   * same time. All of them will get their copy of input event generated by   * the device.   * + * The very same structure is used to implement input filters. Input core + * allows filters to run first and will not pass event to regular handlers + * if any of the filters indicate that the event should be filtered (by + * returning %true from their filter() method). + *   * Note that input core serializes calls to connect() and disconnect()   * methods.   */ @@ -1228,6 +1279,8 @@ struct input_handler {  	void *private;  	void (*event)(struct input_handle *handle, unsigned int type, unsigned int code, int value); +	bool (*filter)(struct input_handle *handle, unsigned int type, unsigned int code, int value); +	bool (*match)(struct input_handler *handler, struct input_dev *dev);  	int (*connect)(struct input_handler *handler, struct input_dev *dev, const struct input_device_id *id);  	void (*disconnect)(struct input_handle *handle);  	void (*start)(struct input_handle *handle); @@ -1237,7 +1290,6 @@ struct input_handler {  	const char *name;  	const struct input_device_id *id_table; -	const struct input_device_id *blacklist;  	struct list_head	h_list;  	struct list_head	node;  |