Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input

Dmitry writes:
"Input updates for v4.19-rc5

Just a few driver fixes"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: uinput - allow for max == min during input_absinfo validation
Input: elantech - enable middle button of touchpad on ThinkPad P72
Input: atakbd - fix Atari CapsLock behaviour
Input: atakbd - fix Atari keymap
Input: egalax_ts - add system wakeup support
Input: gpio-keys - fix a documentation index issue

+38 -48
+1 -1
Documentation/devicetree/bindings/input/gpio-keys.txt
··· 1 - Device-Tree bindings for input/gpio_keys.c keyboard driver 1 + Device-Tree bindings for input/keyboard/gpio_keys.c keyboard driver 2 2 3 3 Required properties: 4 4 - compatible = "gpio-keys";
+28 -46
drivers/input/keyboard/atakbd.c
··· 75 75 */ 76 76 77 77 78 - static unsigned char atakbd_keycode[0x72] = { /* American layout */ 79 - [0] = KEY_GRAVE, 78 + static unsigned char atakbd_keycode[0x73] = { /* American layout */ 80 79 [1] = KEY_ESC, 81 80 [2] = KEY_1, 82 81 [3] = KEY_2, ··· 116 117 [38] = KEY_L, 117 118 [39] = KEY_SEMICOLON, 118 119 [40] = KEY_APOSTROPHE, 119 - [41] = KEY_BACKSLASH, /* FIXME, '#' */ 120 + [41] = KEY_GRAVE, 120 121 [42] = KEY_LEFTSHIFT, 121 - [43] = KEY_GRAVE, /* FIXME: '~' */ 122 + [43] = KEY_BACKSLASH, 122 123 [44] = KEY_Z, 123 124 [45] = KEY_X, 124 125 [46] = KEY_C, ··· 144 145 [66] = KEY_F8, 145 146 [67] = KEY_F9, 146 147 [68] = KEY_F10, 147 - [69] = KEY_ESC, 148 - [70] = KEY_DELETE, 149 - [71] = KEY_KP7, 150 - [72] = KEY_KP8, 151 - [73] = KEY_KP9, 148 + [71] = KEY_HOME, 149 + [72] = KEY_UP, 152 150 [74] = KEY_KPMINUS, 153 - [75] = KEY_KP4, 154 - [76] = KEY_KP5, 155 - [77] = KEY_KP6, 151 + [75] = KEY_LEFT, 152 + [77] = KEY_RIGHT, 156 153 [78] = KEY_KPPLUS, 157 - [79] = KEY_KP1, 158 - [80] = KEY_KP2, 159 - [81] = KEY_KP3, 160 - [82] = KEY_KP0, 161 - [83] = KEY_KPDOT, 162 - [90] = KEY_KPLEFTPAREN, 163 - [91] = KEY_KPRIGHTPAREN, 164 - [92] = KEY_KPASTERISK, /* FIXME */ 165 - [93] = KEY_KPASTERISK, 166 - [94] = KEY_KPPLUS, 167 - [95] = KEY_HELP, 154 + [80] = KEY_DOWN, 155 + [82] = KEY_INSERT, 156 + [83] = KEY_DELETE, 168 157 [96] = KEY_102ND, 169 - [97] = KEY_KPASTERISK, /* FIXME */ 170 - [98] = KEY_KPSLASH, 158 + [97] = KEY_UNDO, 159 + [98] = KEY_HELP, 171 160 [99] = KEY_KPLEFTPAREN, 172 161 [100] = KEY_KPRIGHTPAREN, 173 162 [101] = KEY_KPSLASH, 174 163 [102] = KEY_KPASTERISK, 175 - [103] = KEY_UP, 176 - [104] = KEY_KPASTERISK, /* FIXME */ 177 - [105] = KEY_LEFT, 178 - [106] = KEY_RIGHT, 179 - [107] = KEY_KPASTERISK, /* FIXME */ 180 - [108] = KEY_DOWN, 181 - [109] = KEY_KPASTERISK, /* FIXME */ 182 - [110] = KEY_KPASTERISK, /* FIXME */ 183 - [111] = KEY_KPASTERISK, /* FIXME */ 184 - [112] = KEY_KPASTERISK, /* FIXME */ 185 - [113] = KEY_KPASTERISK /* FIXME */ 164 + [103] = KEY_KP7, 165 + [104] = KEY_KP8, 166 + [105] = KEY_KP9, 167 + [106] = KEY_KP4, 168 + [107] = KEY_KP5, 169 + [108] = KEY_KP6, 170 + [109] = KEY_KP1, 171 + [110] = KEY_KP2, 172 + [111] = KEY_KP3, 173 + [112] = KEY_KP0, 174 + [113] = KEY_KPDOT, 175 + [114] = KEY_KPENTER, 186 176 }; 187 177 188 178 static struct input_dev *atakbd_dev; ··· 179 191 static void atakbd_interrupt(unsigned char scancode, char down) 180 192 { 181 193 182 - if (scancode < 0x72) { /* scancodes < 0xf2 are keys */ 194 + if (scancode < 0x73) { /* scancodes < 0xf3 are keys */ 183 195 184 196 // report raw events here? 185 197 186 198 scancode = atakbd_keycode[scancode]; 187 199 188 - if (scancode == KEY_CAPSLOCK) { /* CapsLock is a toggle switch key on Amiga */ 189 - input_report_key(atakbd_dev, scancode, 1); 190 - input_report_key(atakbd_dev, scancode, 0); 191 - input_sync(atakbd_dev); 192 - } else { 193 - input_report_key(atakbd_dev, scancode, down); 194 - input_sync(atakbd_dev); 195 - } 196 - } else /* scancodes >= 0xf2 are mouse data, most likely */ 200 + input_report_key(atakbd_dev, scancode, down); 201 + input_sync(atakbd_dev); 202 + } else /* scancodes >= 0xf3 are mouse data, most likely */ 197 203 printk(KERN_INFO "atakbd: unhandled scancode %x\n", scancode); 198 204 199 205 return;
+1 -1
drivers/input/misc/uinput.c
··· 410 410 min = abs->minimum; 411 411 max = abs->maximum; 412 412 413 - if ((min != 0 || max != 0) && max <= min) { 413 + if ((min != 0 || max != 0) && max < min) { 414 414 printk(KERN_DEBUG 415 415 "%s: invalid abs[%02x] min:%d max:%d\n", 416 416 UINPUT_NAME, code, min, max);
+2
drivers/input/mouse/elantech.c
··· 1178 1178 static const char * const middle_button_pnp_ids[] = { 1179 1179 "LEN2131", /* ThinkPad P52 w/ NFC */ 1180 1180 "LEN2132", /* ThinkPad P52 */ 1181 + "LEN2133", /* ThinkPad P72 w/ NFC */ 1182 + "LEN2134", /* ThinkPad P72 */ 1181 1183 NULL 1182 1184 }; 1183 1185
+6
drivers/input/touchscreen/egalax_ts.c
··· 241 241 struct i2c_client *client = to_i2c_client(dev); 242 242 int ret; 243 243 244 + if (device_may_wakeup(dev)) 245 + return enable_irq_wake(client->irq); 246 + 244 247 ret = i2c_master_send(client, suspend_cmd, MAX_I2C_DATA_LEN); 245 248 return ret > 0 ? 0 : ret; 246 249 } ··· 251 248 static int __maybe_unused egalax_ts_resume(struct device *dev) 252 249 { 253 250 struct i2c_client *client = to_i2c_client(dev); 251 + 252 + if (device_may_wakeup(dev)) 253 + return disable_irq_wake(client->irq); 254 254 255 255 return egalax_wake_up_device(client); 256 256 }