Skip to content

Commit f9e4825

Browse files
committed
Merge tag 'input-for-v6.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input fixes from Dmitry Torokhov: - a fix for Zinitix driver to not fail probing if the property enabling touch keys functionality is not defined. Support for touch keys was added in 6.12 merge window so this issue does not affect users of released kernels - a couple new vendor/device IDs in xpad driver to enable support for more hardware * tag 'input-for-v6.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: zinitix - don't fail if linux,keycodes prop is absent Input: xpad - add support for MSI Claw A1M Input: xpad - add support for 8BitDo Ultimate 2C Wireless Controller
2 parents 9197b73 + 2de01e0 commit f9e4825

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

drivers/input/joystick/xpad.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@ static const struct xpad_device {
218218
{ 0x0c12, 0x8810, "Zeroplus Xbox Controller", 0, XTYPE_XBOX },
219219
{ 0x0c12, 0x9902, "HAMA VibraX - *FAULTY HARDWARE*", 0, XTYPE_XBOX },
220220
{ 0x0d2f, 0x0002, "Andamiro Pump It Up pad", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX },
221+
{ 0x0db0, 0x1901, "Micro Star International Xbox360 Controller for Windows", 0, XTYPE_XBOX360 },
221222
{ 0x0e4c, 0x1097, "Radica Gamester Controller", 0, XTYPE_XBOX },
222223
{ 0x0e4c, 0x1103, "Radica Gamester Reflex", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX },
223224
{ 0x0e4c, 0x2390, "Radica Games Jtech Controller", 0, XTYPE_XBOX },
@@ -373,6 +374,7 @@ static const struct xpad_device {
373374
{ 0x294b, 0x3404, "Snakebyte GAMEPAD RGB X", 0, XTYPE_XBOXONE },
374375
{ 0x2dc8, 0x2000, "8BitDo Pro 2 Wired Controller fox Xbox", 0, XTYPE_XBOXONE },
375376
{ 0x2dc8, 0x3106, "8BitDo Pro 2 Wired Controller", 0, XTYPE_XBOX360 },
377+
{ 0x2dc8, 0x310a, "8BitDo Ultimate 2C Wireless Controller", 0, XTYPE_XBOX360 },
376378
{ 0x2e24, 0x0652, "Hyperkin Duke X-Box One pad", 0, XTYPE_XBOXONE },
377379
{ 0x31e3, 0x1100, "Wooting One", 0, XTYPE_XBOX360 },
378380
{ 0x31e3, 0x1200, "Wooting Two", 0, XTYPE_XBOX360 },
@@ -492,6 +494,7 @@ static const struct usb_device_id xpad_table[] = {
492494
XPAD_XBOX360_VENDOR(0x07ff), /* Mad Catz Gamepad */
493495
XPAD_XBOXONE_VENDOR(0x0b05), /* ASUS controllers */
494496
XPAD_XBOX360_VENDOR(0x0c12), /* Zeroplus X-Box 360 controllers */
497+
XPAD_XBOX360_VENDOR(0x0db0), /* Micro Star International X-Box 360 controllers */
495498
XPAD_XBOX360_VENDOR(0x0e6f), /* 0x0e6f Xbox 360 controllers */
496499
XPAD_XBOXONE_VENDOR(0x0e6f), /* 0x0e6f Xbox One controllers */
497500
XPAD_XBOX360_VENDOR(0x0f0d), /* Hori controllers */

drivers/input/touchscreen/zinitix.c

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -645,19 +645,29 @@ static int zinitix_ts_probe(struct i2c_client *client)
645645
return error;
646646
}
647647

648-
bt541->num_keycodes = device_property_count_u32(&client->dev, "linux,keycodes");
649-
if (bt541->num_keycodes > ARRAY_SIZE(bt541->keycodes)) {
650-
dev_err(&client->dev, "too many keys defined (%d)\n", bt541->num_keycodes);
651-
return -EINVAL;
652-
}
648+
if (device_property_present(&client->dev, "linux,keycodes")) {
649+
bt541->num_keycodes = device_property_count_u32(&client->dev,
650+
"linux,keycodes");
651+
if (bt541->num_keycodes < 0) {
652+
dev_err(&client->dev, "Failed to count keys (%d)\n",
653+
bt541->num_keycodes);
654+
return bt541->num_keycodes;
655+
} else if (bt541->num_keycodes > ARRAY_SIZE(bt541->keycodes)) {
656+
dev_err(&client->dev, "Too many keys defined (%d)\n",
657+
bt541->num_keycodes);
658+
return -EINVAL;
659+
}
653660

654-
error = device_property_read_u32_array(&client->dev, "linux,keycodes",
655-
bt541->keycodes,
656-
bt541->num_keycodes);
657-
if (error) {
658-
dev_err(&client->dev,
659-
"Unable to parse \"linux,keycodes\" property: %d\n", error);
660-
return error;
661+
error = device_property_read_u32_array(&client->dev,
662+
"linux,keycodes",
663+
bt541->keycodes,
664+
bt541->num_keycodes);
665+
if (error) {
666+
dev_err(&client->dev,
667+
"Unable to parse \"linux,keycodes\" property: %d\n",
668+
error);
669+
return error;
670+
}
661671
}
662672

663673
error = zinitix_init_input_dev(bt541);

0 commit comments

Comments
 (0)