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 tag 'input-for-v6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input

Pull input fixes from Dmitry Torokhov:

- a quirk for i8042 to better handle another TUXEDO model

- a quirk to atkbd to handle incorcet behavior of HONOR FMB-P internal
keyboard

- a definition for a new ABS_SND_PROFILE event

- fixes to alps and lkkbd drivers to reliably shut down pending work on
removal

- a fix to apple_z2 driver tightening input report parsing

- a fix for "off-by-one" error when validating config in ti_am335x_tsc
driver

- addition of CRKD Guitars device IDs to xpad driver.

* tag 'input-for-v6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: ti_am335x_tsc - fix off-by-one error in wire_order validation
Input: xpad - add support for CRKD Guitars
Input: add ABS_SND_PROFILE
Input: apple_z2 - fix reading incorrect reports after exiting sleep
Input: alps - fix use-after-free bugs caused by dev3_register_work
Input: i8042 - add TUXEDO InfinityBook Max Gen10 AMD to i8042 quirk table
Input: atkbd - skip deactivate for HONOR FMB-P's internal keyboard
Input: lkkbd - disable pending work before freeing device

+45 -2
+6
Documentation/input/event-codes.rst
··· 241 241 emitted only when the selected profile changes, indicating the newly 242 242 selected profile value. 243 243 244 + * ABS_SND_PROFILE: 245 + 246 + - Used to describe the state of a multi-value sound profile switch. 247 + An event is emitted only when the selected profile changes, 248 + indicating the newly selected profile value. 249 + 244 250 * ABS_MT_<name>: 245 251 246 252 - Used to describe multitouch input events. Please see
+1
drivers/hid/hid-debug.c
··· 3513 3513 [ABS_DISTANCE] = "Distance", [ABS_TILT_X] = "XTilt", 3514 3514 [ABS_TILT_Y] = "YTilt", [ABS_TOOL_WIDTH] = "ToolWidth", 3515 3515 [ABS_VOLUME] = "Volume", [ABS_PROFILE] = "Profile", 3516 + [ABS_SND_PROFILE] = "SoundProfile", 3516 3517 [ABS_MISC] = "Misc", 3517 3518 [ABS_MT_SLOT] = "MTSlot", 3518 3519 [ABS_MT_TOUCH_MAJOR] = "MTMajor",
+5
drivers/input/joystick/xpad.c
··· 133 133 } xpad_device[] = { 134 134 /* Please keep this list sorted by vendor and product ID. */ 135 135 { 0x0079, 0x18d4, "GPD Win 2 X-Box Controller", 0, XTYPE_XBOX360 }, 136 + { 0x0351, 0x1000, "CRKD LP Blueberry Burst Pro Edition (Xbox)", 0, XTYPE_XBOX360 }, 137 + { 0x0351, 0x2000, "CRKD LP Black Tribal Edition (Xbox) ", 0, XTYPE_XBOX360 }, 136 138 { 0x03eb, 0xff01, "Wooting One (Legacy)", 0, XTYPE_XBOX360 }, 137 139 { 0x03eb, 0xff02, "Wooting Two (Legacy)", 0, XTYPE_XBOX360 }, 138 140 { 0x03f0, 0x038D, "HyperX Clutch", 0, XTYPE_XBOX360 }, /* wired */ ··· 422 420 { 0x3285, 0x0663, "Nacon Evol-X", 0, XTYPE_XBOXONE }, 423 421 { 0x3537, 0x1004, "GameSir T4 Kaleid", 0, XTYPE_XBOX360 }, 424 422 { 0x3537, 0x1010, "GameSir G7 SE", 0, XTYPE_XBOXONE }, 423 + { 0x3651, 0x1000, "CRKD SG", 0, XTYPE_XBOX360 }, 425 424 { 0x366c, 0x0005, "ByoWave Proteus Controller", MAP_SHARE_BUTTON, XTYPE_XBOXONE, FLAG_DELAY_INIT }, 426 425 { 0x3767, 0x0101, "Fanatec Speedster 3 Forceshock Wheel", 0, XTYPE_XBOX }, 427 426 { 0x37d7, 0x2501, "Flydigi Apex 5", 0, XTYPE_XBOX360 }, ··· 521 518 */ 522 519 { USB_INTERFACE_INFO('X', 'B', 0) }, /* Xbox USB-IF not-approved class */ 523 520 XPAD_XBOX360_VENDOR(0x0079), /* GPD Win 2 controller */ 521 + XPAD_XBOX360_VENDOR(0x0351), /* CRKD Controllers */ 524 522 XPAD_XBOX360_VENDOR(0x03eb), /* Wooting Keyboards (Legacy) */ 525 523 XPAD_XBOX360_VENDOR(0x03f0), /* HP HyperX Xbox 360 controllers */ 526 524 XPAD_XBOXONE_VENDOR(0x03f0), /* HP HyperX Xbox One controllers */ ··· 582 578 XPAD_XBOXONE_VENDOR(0x3285), /* Nacon Evol-X */ 583 579 XPAD_XBOX360_VENDOR(0x3537), /* GameSir Controllers */ 584 580 XPAD_XBOXONE_VENDOR(0x3537), /* GameSir Controllers */ 581 + XPAD_XBOX360_VENDOR(0x3651), /* CRKD Controllers */ 585 582 XPAD_XBOXONE_VENDOR(0x366c), /* ByoWave controllers */ 586 583 XPAD_XBOX360_VENDOR(0x37d7), /* Flydigi Controllers */ 587 584 XPAD_XBOX360_VENDOR(0x413d), /* Black Shark Green Ghost Controller */
+7
drivers/input/keyboard/atkbd.c
··· 1937 1937 }, 1938 1938 .callback = atkbd_deactivate_fixup, 1939 1939 }, 1940 + { 1941 + .matches = { 1942 + DMI_MATCH(DMI_SYS_VENDOR, "HONOR"), 1943 + DMI_MATCH(DMI_PRODUCT_NAME, "FMB-P"), 1944 + }, 1945 + .callback = atkbd_deactivate_fixup, 1946 + }, 1940 1947 { } 1941 1948 }; 1942 1949
+4 -1
drivers/input/keyboard/lkkbd.c
··· 670 670 671 671 return 0; 672 672 673 - fail3: serio_close(serio); 673 + fail3: disable_work_sync(&lk->tq); 674 + serio_close(serio); 674 675 fail2: serio_set_drvdata(serio, NULL); 675 676 fail1: input_free_device(input_dev); 676 677 kfree(lk); ··· 684 683 static void lkkbd_disconnect(struct serio *serio) 685 684 { 686 685 struct lkkbd *lk = serio_get_drvdata(serio); 686 + 687 + disable_work_sync(&lk->tq); 687 688 688 689 input_get_device(lk->dev); 689 690 input_unregister_device(lk->dev);
+1
drivers/input/mouse/alps.c
··· 2975 2975 2976 2976 psmouse_reset(psmouse); 2977 2977 timer_shutdown_sync(&priv->timer); 2978 + disable_delayed_work_sync(&priv->dev3_register_work); 2978 2979 if (priv->dev2) 2979 2980 input_unregister_device(priv->dev2); 2980 2981 if (!IS_ERR_OR_NULL(priv->dev3))
+7
drivers/input/serio/i8042-acpipnpio.h
··· 1169 1169 .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | 1170 1170 SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) 1171 1171 }, 1172 + { 1173 + .matches = { 1174 + DMI_MATCH(DMI_BOARD_NAME, "X5KK45xS_X5SP45xS"), 1175 + }, 1176 + .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | 1177 + SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) 1178 + }, 1172 1179 /* 1173 1180 * A lot of modern Clevo barebones have touchpad and/or keyboard issues 1174 1181 * after suspend fixable with the forcenorestore quirk.
+4
drivers/input/touchscreen/apple_z2.c
··· 21 21 #define APPLE_Z2_TOUCH_STARTED 3 22 22 #define APPLE_Z2_TOUCH_MOVED 4 23 23 #define APPLE_Z2_CMD_READ_INTERRUPT_DATA 0xEB 24 + #define APPLE_Z2_REPLY_INTERRUPT_DATA 0xE1 24 25 #define APPLE_Z2_HBPP_CMD_BLOB 0x3001 25 26 #define APPLE_Z2_FW_MAGIC 0x5746325A 26 27 #define LOAD_COMMAND_INIT_PAYLOAD 0 ··· 142 141 error = spi_sync_transfer(z2->spidev, &xfer, 1); 143 142 if (error) 144 143 return error; 144 + 145 + if (z2->rx_buf[0] != APPLE_Z2_REPLY_INTERRUPT_DATA) 146 + return 0; 145 147 146 148 pkt_len = (get_unaligned_le16(z2->rx_buf + 1) + 8) & 0xfffffffc; 147 149
+1 -1
drivers/input/touchscreen/ti_am335x_tsc.c
··· 85 85 wire_order[i] = ts_dev->config_inp[i] & 0x0F; 86 86 if (WARN_ON(analog_line[i] > 7)) 87 87 return -EINVAL; 88 - if (WARN_ON(wire_order[i] > ARRAY_SIZE(config_pins))) 88 + if (WARN_ON(wire_order[i] >= ARRAY_SIZE(config_pins))) 89 89 return -EINVAL; 90 90 } 91 91
+9
include/uapi/linux/input-event-codes.h
··· 891 891 892 892 #define ABS_VOLUME 0x20 893 893 #define ABS_PROFILE 0x21 894 + #define ABS_SND_PROFILE 0x22 894 895 895 896 #define ABS_MISC 0x28 896 897 ··· 1000 999 #define SND_TONE 0x02 1001 1000 #define SND_MAX 0x07 1002 1001 #define SND_CNT (SND_MAX+1) 1002 + 1003 + /* 1004 + * ABS_SND_PROFILE values 1005 + */ 1006 + 1007 + #define SND_PROFILE_SILENT 0x00 1008 + #define SND_PROFILE_VIBRATE 0x01 1009 + #define SND_PROFILE_RING 0x02 1003 1010 1004 1011 #endif