diff options
Diffstat (limited to 'drivers/hid/hid-input.c')
| -rw-r--r-- | drivers/hid/hid-input.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index 79d9edd0bdfa..7a0d2e4661a1 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c | |||
| @@ -68,22 +68,25 @@ static const struct { | |||
| 68 | #define map_key_clear(c) hid_map_usage_clear(hidinput, usage, &bit, \ | 68 | #define map_key_clear(c) hid_map_usage_clear(hidinput, usage, &bit, \ |
| 69 | &max, EV_KEY, (c)) | 69 | &max, EV_KEY, (c)) |
| 70 | 70 | ||
| 71 | static inline int match_scancode(int code, int scancode) | 71 | static inline int match_scancode(unsigned int code, unsigned int scancode) |
| 72 | { | 72 | { |
| 73 | if (scancode == 0) | 73 | if (scancode == 0) |
| 74 | return 1; | 74 | return 1; |
| 75 | return ((code & (HID_USAGE_PAGE | HID_USAGE)) == scancode); | 75 | |
| 76 | return (code & (HID_USAGE_PAGE | HID_USAGE)) == scancode; | ||
| 76 | } | 77 | } |
| 77 | 78 | ||
| 78 | static inline int match_keycode(int code, int keycode) | 79 | static inline int match_keycode(unsigned int code, unsigned int keycode) |
| 79 | { | 80 | { |
| 80 | if (keycode == 0) | 81 | if (keycode == 0) |
| 81 | return 1; | 82 | return 1; |
| 82 | return (code == keycode); | 83 | |
| 84 | return code == keycode; | ||
| 83 | } | 85 | } |
| 84 | 86 | ||
| 85 | static struct hid_usage *hidinput_find_key(struct hid_device *hid, | 87 | static struct hid_usage *hidinput_find_key(struct hid_device *hid, |
| 86 | int scancode, int keycode) | 88 | unsigned int scancode, |
| 89 | unsigned int keycode) | ||
| 87 | { | 90 | { |
| 88 | int i, j, k; | 91 | int i, j, k; |
| 89 | struct hid_report *report; | 92 | struct hid_report *report; |
| @@ -105,8 +108,8 @@ static struct hid_usage *hidinput_find_key(struct hid_device *hid, | |||
| 105 | return NULL; | 108 | return NULL; |
| 106 | } | 109 | } |
| 107 | 110 | ||
| 108 | static int hidinput_getkeycode(struct input_dev *dev, int scancode, | 111 | static int hidinput_getkeycode(struct input_dev *dev, |
| 109 | int *keycode) | 112 | unsigned int scancode, unsigned int *keycode) |
| 110 | { | 113 | { |
| 111 | struct hid_device *hid = input_get_drvdata(dev); | 114 | struct hid_device *hid = input_get_drvdata(dev); |
| 112 | struct hid_usage *usage; | 115 | struct hid_usage *usage; |
| @@ -119,16 +122,13 @@ static int hidinput_getkeycode(struct input_dev *dev, int scancode, | |||
| 119 | return -EINVAL; | 122 | return -EINVAL; |
| 120 | } | 123 | } |
| 121 | 124 | ||
| 122 | static int hidinput_setkeycode(struct input_dev *dev, int scancode, | 125 | static int hidinput_setkeycode(struct input_dev *dev, |
| 123 | int keycode) | 126 | unsigned int scancode, unsigned int keycode) |
| 124 | { | 127 | { |
| 125 | struct hid_device *hid = input_get_drvdata(dev); | 128 | struct hid_device *hid = input_get_drvdata(dev); |
| 126 | struct hid_usage *usage; | 129 | struct hid_usage *usage; |
| 127 | int old_keycode; | 130 | int old_keycode; |
| 128 | 131 | ||
| 129 | if (keycode < 0 || keycode > KEY_MAX) | ||
| 130 | return -EINVAL; | ||
| 131 | |||
| 132 | usage = hidinput_find_key(hid, scancode, 0); | 132 | usage = hidinput_find_key(hid, scancode, 0); |
| 133 | if (usage) { | 133 | if (usage) { |
| 134 | old_keycode = usage->code; | 134 | old_keycode = usage->code; |
