Commit 10a0e846 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
parents 765b233a 248d3a73
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -241,6 +241,12 @@ A few EV_ABS codes have special meanings:
    emitted only when the selected profile changes, indicating the newly
    selected profile value.

* ABS_SND_PROFILE:

  - Used to describe the state of a multi-value sound profile switch.
    An event is emitted only when the selected profile changes,
    indicating the newly selected profile value.

* ABS_MT_<name>:

  - Used to describe multitouch input events. Please see
+1 −0
Original line number Diff line number Diff line
@@ -3513,6 +3513,7 @@ static const char *absolutes[ABS_CNT] = {
	[ABS_DISTANCE] = "Distance",	[ABS_TILT_X] = "XTilt",
	[ABS_TILT_Y] = "YTilt",		[ABS_TOOL_WIDTH] = "ToolWidth",
	[ABS_VOLUME] = "Volume",	[ABS_PROFILE] = "Profile",
	[ABS_SND_PROFILE] = "SoundProfile",
	[ABS_MISC] = "Misc",
	[ABS_MT_SLOT] = "MTSlot",
	[ABS_MT_TOUCH_MAJOR] = "MTMajor",
+5 −0
Original line number Diff line number Diff line
@@ -133,6 +133,8 @@ static const struct xpad_device {
} xpad_device[] = {
	/* Please keep this list sorted by vendor and product ID. */
	{ 0x0079, 0x18d4, "GPD Win 2 X-Box Controller", 0, XTYPE_XBOX360 },
	{ 0x0351, 0x1000, "CRKD LP Blueberry Burst Pro Edition (Xbox)", 0, XTYPE_XBOX360 },
	{ 0x0351, 0x2000, "CRKD LP Black Tribal Edition (Xbox) ", 0, XTYPE_XBOX360 },
	{ 0x03eb, 0xff01, "Wooting One (Legacy)", 0, XTYPE_XBOX360 },
	{ 0x03eb, 0xff02, "Wooting Two (Legacy)", 0, XTYPE_XBOX360 },
	{ 0x03f0, 0x038D, "HyperX Clutch", 0, XTYPE_XBOX360 },			/* wired */
@@ -420,6 +422,7 @@ static const struct xpad_device {
	{ 0x3285, 0x0663, "Nacon Evol-X", 0, XTYPE_XBOXONE },
	{ 0x3537, 0x1004, "GameSir T4 Kaleid", 0, XTYPE_XBOX360 },
	{ 0x3537, 0x1010, "GameSir G7 SE", 0, XTYPE_XBOXONE },
	{ 0x3651, 0x1000, "CRKD SG", 0, XTYPE_XBOX360 },
	{ 0x366c, 0x0005, "ByoWave Proteus Controller", MAP_SHARE_BUTTON, XTYPE_XBOXONE, FLAG_DELAY_INIT },
	{ 0x3767, 0x0101, "Fanatec Speedster 3 Forceshock Wheel", 0, XTYPE_XBOX },
	{ 0x37d7, 0x2501, "Flydigi Apex 5", 0, XTYPE_XBOX360 },
@@ -518,6 +521,7 @@ static const struct usb_device_id xpad_table[] = {
	 */
	{ USB_INTERFACE_INFO('X', 'B', 0) },	/* Xbox USB-IF not-approved class */
	XPAD_XBOX360_VENDOR(0x0079),		/* GPD Win 2 controller */
	XPAD_XBOX360_VENDOR(0x0351),		/* CRKD Controllers */
	XPAD_XBOX360_VENDOR(0x03eb),		/* Wooting Keyboards (Legacy) */
	XPAD_XBOX360_VENDOR(0x03f0),		/* HP HyperX Xbox 360 controllers */
	XPAD_XBOXONE_VENDOR(0x03f0),		/* HP HyperX Xbox One controllers */
@@ -578,6 +582,7 @@ static const struct usb_device_id xpad_table[] = {
	XPAD_XBOXONE_VENDOR(0x3285),		/* Nacon Evol-X */
	XPAD_XBOX360_VENDOR(0x3537),		/* GameSir Controllers */
	XPAD_XBOXONE_VENDOR(0x3537),		/* GameSir Controllers */
	XPAD_XBOX360_VENDOR(0x3651),		/* CRKD Controllers */
	XPAD_XBOXONE_VENDOR(0x366c),		/* ByoWave controllers */
	XPAD_XBOX360_VENDOR(0x37d7),		/* Flydigi Controllers */
	XPAD_XBOX360_VENDOR(0x413d),		/* Black Shark Green Ghost Controller */
+7 −0
Original line number Diff line number Diff line
@@ -1937,6 +1937,13 @@ static const struct dmi_system_id atkbd_dmi_quirk_table[] __initconst = {
		},
		.callback = atkbd_deactivate_fixup,
	},
	{
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "HONOR"),
			DMI_MATCH(DMI_PRODUCT_NAME, "FMB-P"),
		},
		.callback = atkbd_deactivate_fixup,
	},
	{ }
};

+4 −1
Original line number Diff line number Diff line
@@ -670,7 +670,8 @@ static int lkkbd_connect(struct serio *serio, struct serio_driver *drv)

	return 0;

 fail3:	serio_close(serio);
 fail3:	disable_work_sync(&lk->tq);
	serio_close(serio);
 fail2:	serio_set_drvdata(serio, NULL);
 fail1:	input_free_device(input_dev);
	kfree(lk);
@@ -684,6 +685,8 @@ static void lkkbd_disconnect(struct serio *serio)
{
	struct lkkbd *lk = serio_get_drvdata(serio);

	disable_work_sync(&lk->tq);

	input_get_device(lk->dev);
	input_unregister_device(lk->dev);
	serio_close(serio);
Loading