Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 8 Dec 2019 02:33:01 +0000 (18:33 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 8 Dec 2019 02:33:01 +0000 (18:33 -0800)
Pull more input updates from Dmitry Torokhov:

 - fixups for Synaptics RMI4 driver

 - a quirk for Goodinx touchscreen on Teclast tablet

 - a new keycode definition for activating privacy screen feature found
   on a few "enterprise" laptops

 - updates to snvs_pwrkey driver

 - polling uinput device for writing (which is always allowed) now works

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: synaptics-rmi4 - don't increment rmiaddr for SMBus transfers
  Input: synaptics-rmi4 - re-enable IRQs in f34v7_do_reflash
  Input: goodix - add upside-down quirk for Teclast X89 tablet
  Input: add privacy screen toggle keycode
  Input: uinput - fix returning EPOLLOUT from uinput_poll
  Input: snvs_pwrkey - remove gratuitous NULL initializers
  Input: snvs_pwrkey - send key events for i.MX6 S, DL and Q

1  2 
include/uapi/linux/input-event-codes.h

   */
  #define KEY_DATA                      0x277
  #define KEY_ONSCREEN_KEYBOARD         0x278
+ /* Electronic privacy screen control */
+ #define KEY_PRIVACY_SCREEN_TOGGLE     0x279
  
 +/*
 + * Some keyboards have keys which do not have a defined meaning, these keys
 + * are intended to be programmed / bound to macros by the user. For most
 + * keyboards with these macro-keys the key-sequence to inject, or action to
 + * take, is all handled by software on the host side. So from the kernel's
 + * point of view these are just normal keys.
 + *
 + * The KEY_MACRO# codes below are intended for such keys, which may be labeled
 + * e.g. G1-G18, or S1 - S30. The KEY_MACRO# codes MUST NOT be used for keys
 + * where the marking on the key does indicate a defined meaning / purpose.
 + *
 + * The KEY_MACRO# codes MUST also NOT be used as fallback for when no existing
 + * KEY_FOO define matches the marking / purpose. In this case a new KEY_FOO
 + * define MUST be added.
 + */
 +#define KEY_MACRO1                    0x290
 +#define KEY_MACRO2                    0x291
 +#define KEY_MACRO3                    0x292
 +#define KEY_MACRO4                    0x293
 +#define KEY_MACRO5                    0x294
 +#define KEY_MACRO6                    0x295
 +#define KEY_MACRO7                    0x296
 +#define KEY_MACRO8                    0x297
 +#define KEY_MACRO9                    0x298
 +#define KEY_MACRO10                   0x299
 +#define KEY_MACRO11                   0x29a
 +#define KEY_MACRO12                   0x29b
 +#define KEY_MACRO13                   0x29c
 +#define KEY_MACRO14                   0x29d
 +#define KEY_MACRO15                   0x29e
 +#define KEY_MACRO16                   0x29f
 +#define KEY_MACRO17                   0x2a0
 +#define KEY_MACRO18                   0x2a1
 +#define KEY_MACRO19                   0x2a2
 +#define KEY_MACRO20                   0x2a3
 +#define KEY_MACRO21                   0x2a4
 +#define KEY_MACRO22                   0x2a5
 +#define KEY_MACRO23                   0x2a6
 +#define KEY_MACRO24                   0x2a7
 +#define KEY_MACRO25                   0x2a8
 +#define KEY_MACRO26                   0x2a9
 +#define KEY_MACRO27                   0x2aa
 +#define KEY_MACRO28                   0x2ab
 +#define KEY_MACRO29                   0x2ac
 +#define KEY_MACRO30                   0x2ad
 +
 +/*
 + * Some keyboards with the macro-keys described above have some extra keys
 + * for controlling the host-side software responsible for the macro handling:
 + * -A macro recording start/stop key. Note that not all keyboards which emit
 + *  KEY_MACRO_RECORD_START will also emit KEY_MACRO_RECORD_STOP if
 + *  KEY_MACRO_RECORD_STOP is not advertised, then KEY_MACRO_RECORD_START
 + *  should be interpreted as a recording start/stop toggle;
 + * -Keys for switching between different macro (pre)sets, either a key for
 + *  cycling through the configured presets or keys to directly select a preset.
 + */
 +#define KEY_MACRO_RECORD_START                0x2b0
 +#define KEY_MACRO_RECORD_STOP         0x2b1
 +#define KEY_MACRO_PRESET_CYCLE                0x2b2
 +#define KEY_MACRO_PRESET1             0x2b3
 +#define KEY_MACRO_PRESET2             0x2b4
 +#define KEY_MACRO_PRESET3             0x2b5
 +
 +/*
 + * Some keyboards have a buildin LCD panel where the contents are controlled
 + * by the host. Often these have a number of keys directly below the LCD
 + * intended for controlling a menu shown on the LCD. These keys often don't
 + * have any labeling so we just name them KEY_KBD_LCD_MENU#
 + */
 +#define KEY_KBD_LCD_MENU1             0x2b8
 +#define KEY_KBD_LCD_MENU2             0x2b9
 +#define KEY_KBD_LCD_MENU3             0x2ba
 +#define KEY_KBD_LCD_MENU4             0x2bb
 +#define KEY_KBD_LCD_MENU5             0x2bc
 +
  #define BTN_TRIGGER_HAPPY             0x2c0
  #define BTN_TRIGGER_HAPPY1            0x2c0
  #define BTN_TRIGGER_HAPPY2            0x2c1