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

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

Pull input updates from Dmitry Torokhov:

- several new key mappings for HID

- a host of new ACPI IDs used to identify Elan touchpads in Lenovo
laptops

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: snvs_pwrkey - initialize necessary driver data before enabling IRQ
HID: input: add mapping for "Toggle Display" key
HID: input: add mapping for "Full Screen" key
HID: input: add mapping for keyboard Brightness Up/Down/Toggle keys
HID: input: add mapping for Expose/Overview key
HID: input: fix mapping of aspect ratio key
[media] doc-rst: switch to new names for Full Screen/Aspect keys
Input: document meanings of KEY_SCREEN and KEY_ZOOM
Input: elan_i2c - add hardware ID for multiple Lenovo laptops

+50 -8
+2 -2
Documentation/media/uapi/rc/rc-tables.rst
··· 623 623 624 624 - .. row 78 625 625 626 - - ``KEY_SCREEN`` 626 + - ``KEY_ASPECT_RATIO`` 627 627 628 628 - Select screen aspect ratio 629 629 ··· 631 631 632 632 - .. row 79 633 633 634 - - ``KEY_ZOOM`` 634 + - ``KEY_FULL_SCREEN`` 635 635 636 636 - Put device into zoom/full screen mode 637 637
+16 -1
drivers/hid/hid-input.c
··· 680 680 break; 681 681 } 682 682 683 + if ((usage->hid & 0xf0) == 0xb0) { /* SC - Display */ 684 + switch (usage->hid & 0xf) { 685 + case 0x05: map_key_clear(KEY_SWITCHVIDEOMODE); break; 686 + default: goto ignore; 687 + } 688 + break; 689 + } 690 + 683 691 /* 684 692 * Some lazy vendors declare 255 usages for System Control, 685 693 * leading to the creation of ABS_X|Y axis and too many others. ··· 910 902 case 0x06a: map_key_clear(KEY_GREEN); break; 911 903 case 0x06b: map_key_clear(KEY_BLUE); break; 912 904 case 0x06c: map_key_clear(KEY_YELLOW); break; 913 - case 0x06d: map_key_clear(KEY_ZOOM); break; 905 + case 0x06d: map_key_clear(KEY_ASPECT_RATIO); break; 914 906 915 907 case 0x06f: map_key_clear(KEY_BRIGHTNESSUP); break; 916 908 case 0x070: map_key_clear(KEY_BRIGHTNESSDOWN); break; ··· 918 910 case 0x073: map_key_clear(KEY_BRIGHTNESS_MIN); break; 919 911 case 0x074: map_key_clear(KEY_BRIGHTNESS_MAX); break; 920 912 case 0x075: map_key_clear(KEY_BRIGHTNESS_AUTO); break; 913 + 914 + case 0x079: map_key_clear(KEY_KBDILLUMUP); break; 915 + case 0x07a: map_key_clear(KEY_KBDILLUMDOWN); break; 916 + case 0x07c: map_key_clear(KEY_KBDILLUMTOGGLE); break; 921 917 922 918 case 0x082: map_key_clear(KEY_VIDEO_NEXT); break; 923 919 case 0x083: map_key_clear(KEY_LAST); break; ··· 1034 1022 case 0x22d: map_key_clear(KEY_ZOOMIN); break; 1035 1023 case 0x22e: map_key_clear(KEY_ZOOMOUT); break; 1036 1024 case 0x22f: map_key_clear(KEY_ZOOMRESET); break; 1025 + case 0x232: map_key_clear(KEY_FULL_SCREEN); break; 1037 1026 case 0x233: map_key_clear(KEY_SCROLLUP); break; 1038 1027 case 0x234: map_key_clear(KEY_SCROLLDOWN); break; 1039 1028 case 0x238: /* AC Pan */ ··· 1057 1044 case 0x2ca: map_key_clear(KEY_KBDINPUTASSIST_NEXTGROUP); break; 1058 1045 case 0x2cb: map_key_clear(KEY_KBDINPUTASSIST_ACCEPT); break; 1059 1046 case 0x2cc: map_key_clear(KEY_KBDINPUTASSIST_CANCEL); break; 1047 + 1048 + case 0x29f: map_key_clear(KEY_SCALE); break; 1060 1049 1061 1050 default: map_key_clear(KEY_UNKNOWN); 1062 1051 }
+3 -3
drivers/input/keyboard/snvs_pwrkey.c
··· 148 148 return error; 149 149 } 150 150 151 + pdata->input = input; 152 + platform_set_drvdata(pdev, pdata); 153 + 151 154 error = devm_request_irq(&pdev->dev, pdata->irq, 152 155 imx_snvs_pwrkey_interrupt, 153 156 0, pdev->name, pdev); ··· 165 162 dev_err(&pdev->dev, "failed to register input device\n"); 166 163 return error; 167 164 } 168 - 169 - pdata->input = input; 170 - platform_set_drvdata(pdev, pdata); 171 165 172 166 device_init_wakeup(&pdev->dev, pdata->wakeup); 173 167
+25
drivers/input/mouse/elan_i2c_core.c
··· 1339 1339 { "ELAN0600", 0 }, 1340 1340 { "ELAN0601", 0 }, 1341 1341 { "ELAN0602", 0 }, 1342 + { "ELAN0603", 0 }, 1343 + { "ELAN0604", 0 }, 1342 1344 { "ELAN0605", 0 }, 1345 + { "ELAN0606", 0 }, 1346 + { "ELAN0607", 0 }, 1343 1347 { "ELAN0608", 0 }, 1344 1348 { "ELAN0609", 0 }, 1345 1349 { "ELAN060B", 0 }, 1346 1350 { "ELAN060C", 0 }, 1351 + { "ELAN060F", 0 }, 1352 + { "ELAN0610", 0 }, 1347 1353 { "ELAN0611", 0 }, 1348 1354 { "ELAN0612", 0 }, 1355 + { "ELAN0615", 0 }, 1356 + { "ELAN0616", 0 }, 1349 1357 { "ELAN0617", 0 }, 1350 1358 { "ELAN0618", 0 }, 1359 + { "ELAN0619", 0 }, 1360 + { "ELAN061A", 0 }, 1361 + { "ELAN061B", 0 }, 1351 1362 { "ELAN061C", 0 }, 1352 1363 { "ELAN061D", 0 }, 1353 1364 { "ELAN061E", 0 }, 1365 + { "ELAN061F", 0 }, 1354 1366 { "ELAN0620", 0 }, 1355 1367 { "ELAN0621", 0 }, 1356 1368 { "ELAN0622", 0 }, 1369 + { "ELAN0623", 0 }, 1370 + { "ELAN0624", 0 }, 1371 + { "ELAN0625", 0 }, 1372 + { "ELAN0626", 0 }, 1373 + { "ELAN0627", 0 }, 1374 + { "ELAN0628", 0 }, 1375 + { "ELAN0629", 0 }, 1376 + { "ELAN062A", 0 }, 1377 + { "ELAN062B", 0 }, 1378 + { "ELAN062C", 0 }, 1379 + { "ELAN062D", 0 }, 1380 + { "ELAN0631", 0 }, 1381 + { "ELAN0632", 0 }, 1357 1382 { "ELAN1000", 0 }, 1358 1383 { } 1359 1384 };
+4 -2
include/uapi/linux/input-event-codes.h
··· 439 439 #define KEY_TITLE 0x171 440 440 #define KEY_SUBTITLE 0x172 441 441 #define KEY_ANGLE 0x173 442 - #define KEY_ZOOM 0x174 442 + #define KEY_FULL_SCREEN 0x174 /* AC View Toggle */ 443 + #define KEY_ZOOM KEY_FULL_SCREEN 443 444 #define KEY_MODE 0x175 444 445 #define KEY_KEYBOARD 0x176 445 - #define KEY_SCREEN 0x177 446 + #define KEY_ASPECT_RATIO 0x177 /* HUTRR37: Aspect */ 447 + #define KEY_SCREEN KEY_ASPECT_RATIO 446 448 #define KEY_PC 0x178 /* Media Select Computer */ 447 449 #define KEY_TV 0x179 /* Media Select TV */ 448 450 #define KEY_TV2 0x17a /* Media Select Cable */