diff options
Diffstat (limited to 'include/linux/input.h')
| -rw-r--r-- | include/linux/input.h | 52 | 
1 files changed, 23 insertions, 29 deletions
diff --git a/include/linux/input.h b/include/linux/input.h index 327122548c4..439954d0975 100644 --- a/include/linux/input.h +++ b/include/linux/input.h @@ -506,6 +506,7 @@ struct input_absinfo {  #define KEY_VOICEMAIL		0x1ac  #define KEY_ADDRESSBOOK		0x1ad  #define KEY_MESSENGER		0x1ae +#define KEY_DISPLAYTOGGLE	0x1af	/* Turn display (LCD) on and off */  #define KEY_DEL_EOL		0x1c0  #define KEY_DEL_EOS		0x1c1 @@ -914,33 +915,6 @@ struct ff_effect {  #define BIT(x)	(1UL<<((x)%BITS_PER_LONG))  #define LONG(x) ((x)/BITS_PER_LONG) -#define INPUT_KEYCODE(dev, scancode) ((dev->keycodesize == 1) ? ((u8*)dev->keycode)[scancode] : \ -	((dev->keycodesize == 2) ? ((u16*)dev->keycode)[scancode] : (((u32*)dev->keycode)[scancode]))) - -#define SET_INPUT_KEYCODE(dev, scancode, val)			\ -		({	unsigned __old;				\ -		switch (dev->keycodesize) {			\ -			case 1: {				\ -				u8 *k = (u8 *)dev->keycode;	\ -				__old = k[scancode];		\ -				k[scancode] = val;		\ -				break;				\ -			}					\ -			case 2: {				\ -				u16 *k = (u16 *)dev->keycode;	\ -				__old = k[scancode];		\ -				k[scancode] = val;		\ -				break;				\ -			}					\ -			default: {				\ -				u32 *k = (u32 *)dev->keycode;	\ -				__old = k[scancode];		\ -				k[scancode] = val;		\ -				break;				\ -			}					\ -		}						\ -		__old; }) -  struct input_dev {  	void *private; @@ -963,6 +937,8 @@ struct input_dev {  	unsigned int keycodemax;  	unsigned int keycodesize;  	void *keycode; +	int (*setkeycode)(struct input_dev *dev, int scancode, int keycode); +	int (*getkeycode)(struct input_dev *dev, int scancode, int *keycode);  	struct ff_device *ff; @@ -997,6 +973,9 @@ struct input_dev {  	unsigned int users;  	struct class_device cdev; +	union {			/* temporarily so while we switching to struct device */ +		struct device *parent; +	} dev;  	struct list_head	h_list;  	struct list_head	node; @@ -1075,7 +1054,7 @@ struct input_handler {  	void *private;  	void (*event)(struct input_handle *handle, unsigned int type, unsigned int code, int value); -	struct input_handle* (*connect)(struct input_handler *handler, struct input_dev *dev, const struct input_device_id *id); +	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); @@ -1105,7 +1084,7 @@ struct input_handle {  };  #define to_dev(n) container_of(n,struct input_dev,node) -#define to_handler(n) container_of(n,struct input_handler,node); +#define to_handler(n) container_of(n,struct input_handler,node)  #define to_handle(n) container_of(n,struct input_handle,d_node)  #define to_handle_h(n) container_of(n,struct input_handle,h_node) @@ -1122,12 +1101,25 @@ static inline void input_put_device(struct input_dev *dev)  	class_device_put(&dev->cdev);  } +static inline void *input_get_drvdata(struct input_dev *dev) +{ +	return dev->private; +} + +static inline void input_set_drvdata(struct input_dev *dev, void *data) +{ +	dev->private = data; +} +  int input_register_device(struct input_dev *);  void input_unregister_device(struct input_dev *);  int input_register_handler(struct input_handler *);  void input_unregister_handler(struct input_handler *); +int input_register_handle(struct input_handle *); +void input_unregister_handle(struct input_handle *); +  int input_grab_device(struct input_handle *);  void input_release_device(struct input_handle *); @@ -1169,6 +1161,8 @@ static inline void input_sync(struct input_dev *dev)  	input_event(dev, EV_SYN, SYN_REPORT, 0);  } +void input_set_capability(struct input_dev *dev, unsigned int type, unsigned int code); +  static inline void input_set_abs_params(struct input_dev *dev, int axis, int min, int max, int fuzz, int flat)  {  	dev->absmin[axis] = min;  |