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 fixes from Dmitry Torokhov:

- a fix to generate proper timestamps on key autorepeat events that
were broken recently

- a fix for Synaptics driver to only activate reduced reporting mode
when explicitly requested

- a new keycode for "selective screenshot" function

- other assorted fixes

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: fix stale timestamp on key autorepeat events
Input: move the new KEY_SELECTIVE_SCREENSHOT keycode
Input: avoid BIT() macro usage in the serio.h UAPI header
Input: synaptics-rmi4 - set reduced reporting mode only when requested
Input: synaptics - enable RMI on HP Envy 13-ad105ng
Input: allocate keycode for "Selective Screenshot" key
Input: tm2-touchkey - add support for Coreriver TC360 variant
dt-bindings: input: add Coreriver TC360 binding
dt-bindings: vendor-prefixes: Add Coreriver vendor prefix
Input: raydium_i2c_ts - fix error codes in raydium_i2c_boot_trigger()

+30 -11
+1
Documentation/devicetree/bindings/input/cypress,tm2-touchkey.txt
··· 5 5 * "cypress,tm2-touchkey" - for the touchkey found on the tm2 board 6 6 * "cypress,midas-touchkey" - for the touchkey found on midas boards 7 7 * "cypress,aries-touchkey" - for the touchkey found on aries boards 8 + * "coreriver,tc360-touchkey" - for the Coreriver TouchCore 360 touchkey 8 9 - reg: I2C address of the chip. 9 10 - interrupts: interrupt to which the chip is connected (see interrupt 10 11 binding[0]).
+2
Documentation/devicetree/bindings/vendor-prefixes.yaml
··· 205 205 description: Colorful GRP, Shenzhen Xueyushi Technology Ltd. 206 206 "^compulab,.*": 207 207 description: CompuLab Ltd. 208 + "^coreriver,.*": 209 + description: CORERIVER Semiconductor Co.,Ltd. 208 210 "^corpro,.*": 209 211 description: Chengdu Corpro Technology Co., Ltd. 210 212 "^cortina,.*":
+1
drivers/input/input.c
··· 190 190 input_value_sync 191 191 }; 192 192 193 + input_set_timestamp(dev, ktime_get()); 193 194 input_pass_values(dev, vals, ARRAY_SIZE(vals)); 194 195 195 196 if (dev->rep[REP_PERIOD])
+11
drivers/input/keyboard/tm2-touchkey.c
··· 75 75 .cmd_led_off = ARIES_TOUCHKEY_CMD_LED_OFF, 76 76 }; 77 77 78 + static const struct touchkey_variant tc360_touchkey_variant = { 79 + .keycode_reg = 0x00, 80 + .base_reg = 0x00, 81 + .fixed_regulator = true, 82 + .cmd_led_on = TM2_TOUCHKEY_CMD_LED_ON, 83 + .cmd_led_off = TM2_TOUCHKEY_CMD_LED_OFF, 84 + }; 85 + 78 86 static int tm2_touchkey_led_brightness_set(struct led_classdev *led_dev, 79 87 enum led_brightness brightness) 80 88 { ··· 335 327 }, { 336 328 .compatible = "cypress,aries-touchkey", 337 329 .data = &aries_touchkey_variant, 330 + }, { 331 + .compatible = "coreriver,tc360-touchkey", 332 + .data = &tc360_touchkey_variant, 338 333 }, 339 334 { }, 340 335 };
+1
drivers/input/mouse/synaptics.c
··· 186 186 "SYN3052", /* HP EliteBook 840 G4 */ 187 187 "SYN3221", /* HP 15-ay000 */ 188 188 "SYN323d", /* HP Spectre X360 13-w013dx */ 189 + "SYN3257", /* HP Envy 13-ad105ng */ 189 190 NULL 190 191 }; 191 192
+2 -2
drivers/input/rmi4/rmi_f11.c
··· 1203 1203 * If distance threshold values are set, switch to reduced reporting 1204 1204 * mode so they actually get used by the controller. 1205 1205 */ 1206 - if (ctrl->ctrl0_11[RMI_F11_DELTA_X_THRESHOLD] || 1207 - ctrl->ctrl0_11[RMI_F11_DELTA_Y_THRESHOLD]) { 1206 + if (sensor->axis_align.delta_x_threshold || 1207 + sensor->axis_align.delta_y_threshold) { 1208 1208 ctrl->ctrl0_11[0] &= ~RMI_F11_REPORT_MODE_MASK; 1209 1209 ctrl->ctrl0_11[0] |= RMI_F11_REPORT_MODE_REDUCED; 1210 1210 }
+4 -4
drivers/input/touchscreen/raydium_i2c_ts.c
··· 432 432 return 0; 433 433 } 434 434 435 - static bool raydium_i2c_boot_trigger(struct i2c_client *client) 435 + static int raydium_i2c_boot_trigger(struct i2c_client *client) 436 436 { 437 437 static const u8 cmd[7][6] = { 438 438 { 0x08, 0x0C, 0x09, 0x00, 0x50, 0xD7 }, ··· 457 457 } 458 458 } 459 459 460 - return false; 460 + return 0; 461 461 } 462 462 463 - static bool raydium_i2c_fw_trigger(struct i2c_client *client) 463 + static int raydium_i2c_fw_trigger(struct i2c_client *client) 464 464 { 465 465 static const u8 cmd[5][11] = { 466 466 { 0, 0x09, 0x71, 0x0C, 0x09, 0x00, 0x50, 0xD7, 0, 0, 0 }, ··· 483 483 } 484 484 } 485 485 486 - return false; 486 + return 0; 487 487 } 488 488 489 489 static int raydium_i2c_check_path(struct i2c_client *client)
+3
include/uapi/linux/input-event-codes.h
··· 652 652 /* Electronic privacy screen control */ 653 653 #define KEY_PRIVACY_SCREEN_TOGGLE 0x279 654 654 655 + /* Select an area of screen to be copied */ 656 + #define KEY_SELECTIVE_SCREENSHOT 0x27a 657 + 655 658 /* 656 659 * Some keyboards have keys which do not have a defined meaning, these keys 657 660 * are intended to be programmed / bound to macros by the user. For most
+5 -5
include/uapi/linux/serio.h
··· 9 9 #ifndef _UAPI_SERIO_H 10 10 #define _UAPI_SERIO_H 11 11 12 - 12 + #include <linux/const.h> 13 13 #include <linux/ioctl.h> 14 14 15 15 #define SPIOCSTYPE _IOW('q', 0x01, unsigned long) ··· 18 18 /* 19 19 * bit masks for use in "interrupt" flags (3rd argument) 20 20 */ 21 - #define SERIO_TIMEOUT BIT(0) 22 - #define SERIO_PARITY BIT(1) 23 - #define SERIO_FRAME BIT(2) 24 - #define SERIO_OOB_DATA BIT(3) 21 + #define SERIO_TIMEOUT _BITUL(0) 22 + #define SERIO_PARITY _BITUL(1) 23 + #define SERIO_FRAME _BITUL(2) 24 + #define SERIO_OOB_DATA _BITUL(3) 25 25 26 26 /* 27 27 * Serio types