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.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input

Pull input updates from Dmitry Torokhov:

- support for Acer NGR 200 Controller added to xpad driver

- xpad driver will no longer log errors about URBs at sudden disconnect

- a fix for potential NULL dereference in cs40l50-vibra driver

- several drivers have been switched to using scnprintf() to suppress
warnings about potential output truncation

* tag 'input-for-v6.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: cs40l50-vibra - fix potential NULL dereference in cs40l50_upload_owt()
Input: alps - use scnprintf() to suppress truncation warning
Input: iqs7222 - explicitly define number of external channels
Input: xpad - support Acer NGR 200 Controller
Input: xpad - return errors from xpad_try_sending_next_out_packet() up
Input: xpad - adjust error handling for disconnect
Input: apple_z2 - drop default ARCH_APPLE in Kconfig
Input: Fully open-code compatible for grepping
dt-bindings: HID: i2c-hid: elan: Introduce Elan eKTH8D18
Input: psmouse - switch to use scnprintf() to suppress truncation warning
Input: lifebook - switch to use scnprintf() to suppress truncation warning
Input: alps - switch to use scnprintf() to suppress truncation warning
Input: atkbd - switch to use scnprintf() to suppress truncation warning
Input: fsia6b - suppress buffer truncation warning for phys
Input: iqs626a - replace snprintf() with scnprintf()

+35 -26
+7 -5
Documentation/devicetree/bindings/input/elan,ekth6915.yaml
··· 4 4 $id: http://devicetree.org/schemas/input/elan,ekth6915.yaml# 5 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 - title: Elan eKTH6915 touchscreen controller 7 + title: Elan I2C-HID touchscreen controllers 8 8 9 9 maintainers: 10 10 - Douglas Anderson <dianders@chromium.org> 11 11 12 12 description: 13 - Supports the Elan eKTH6915 touchscreen controller. 14 - This touchscreen controller uses the i2c-hid protocol with a reset GPIO. 13 + Supports the Elan eKTH6915 and other I2C-HID touchscreen controllers. 14 + These touchscreen controller use the i2c-hid protocol with a reset GPIO. 15 15 16 16 allOf: 17 17 - $ref: /schemas/input/touchscreen/touchscreen.yaml# ··· 23 23 - enum: 24 24 - elan,ekth5015m 25 25 - const: elan,ekth6915 26 + - items: 27 + - const: elan,ekth8d18 28 + - const: elan,ekth6a12nay 26 29 - enum: 27 30 - elan,ekth6915 28 31 - elan,ekth6a12nay 29 32 30 - reg: 31 - const: 0x10 33 + reg: true 32 34 33 35 interrupts: 34 36 maxItems: 1
+1 -1
drivers/input/joystick/fsia6b.c
··· 149 149 } 150 150 fsia6b->dev = input_dev; 151 151 152 - snprintf(fsia6b->phys, sizeof(fsia6b->phys), "%s/input0", serio->phys); 152 + scnprintf(fsia6b->phys, sizeof(fsia6b->phys), "%s/input0", serio->phys); 153 153 154 154 input_dev->name = DRIVER_DESC; 155 155 input_dev->phys = fsia6b->phys;
+7 -4
drivers/input/joystick/xpad.c
··· 177 177 { 0x05fd, 0x107a, "InterAct 'PowerPad Pro' X-Box pad (Germany)", 0, XTYPE_XBOX }, 178 178 { 0x05fe, 0x3030, "Chic Controller", 0, XTYPE_XBOX }, 179 179 { 0x05fe, 0x3031, "Chic Controller", 0, XTYPE_XBOX }, 180 + { 0x0502, 0x1305, "Acer NGR200", 0, XTYPE_XBOX }, 180 181 { 0x062a, 0x0020, "Logic3 Xbox GamePad", 0, XTYPE_XBOX }, 181 182 { 0x062a, 0x0033, "Competition Pro Steering Wheel", 0, XTYPE_XBOX }, 182 183 { 0x06a3, 0x0200, "Saitek Racing Wheel", 0, XTYPE_XBOX }, ··· 525 524 XPAD_XBOX360_VENDOR(0x045e), /* Microsoft Xbox 360 controllers */ 526 525 XPAD_XBOXONE_VENDOR(0x045e), /* Microsoft Xbox One controllers */ 527 526 XPAD_XBOX360_VENDOR(0x046d), /* Logitech Xbox 360-style controllers */ 527 + XPAD_XBOX360_VENDOR(0x0502), /* Acer Inc. Xbox 360 style controllers */ 528 528 XPAD_XBOX360_VENDOR(0x056e), /* Elecom JC-U3613M */ 529 529 XPAD_XBOX360_VENDOR(0x06a3), /* Saitek P3600 */ 530 530 XPAD_XBOX360_VENDOR(0x0738), /* Mad Catz Xbox 360 controllers */ ··· 1346 1344 usb_anchor_urb(xpad->irq_out, &xpad->irq_out_anchor); 1347 1345 error = usb_submit_urb(xpad->irq_out, GFP_ATOMIC); 1348 1346 if (error) { 1349 - dev_err(&xpad->intf->dev, 1350 - "%s - usb_submit_urb failed with result %d\n", 1351 - __func__, error); 1347 + if (error != -ENODEV) 1348 + dev_err(&xpad->intf->dev, 1349 + "%s - usb_submit_urb failed with result %d\n", 1350 + __func__, error); 1352 1351 usb_unanchor_urb(xpad->irq_out); 1353 - return -EIO; 1352 + return error; 1354 1353 } 1355 1354 1356 1355 xpad->irq_out_active = true;
+2 -2
drivers/input/keyboard/atkbd.c
··· 1191 1191 "AT %s Set %d keyboard", 1192 1192 atkbd->translated ? "Translated" : "Raw", atkbd->set); 1193 1193 1194 - snprintf(atkbd->phys, sizeof(atkbd->phys), 1195 - "%s/input0", atkbd->ps2dev.serio->phys); 1194 + scnprintf(atkbd->phys, sizeof(atkbd->phys), 1195 + "%s/input0", atkbd->ps2dev.serio->phys); 1196 1196 1197 1197 input_dev->name = atkbd->name; 1198 1198 input_dev->phys = atkbd->phys;
+2
drivers/input/misc/cs40l50-vibra.c
··· 238 238 header.data_words = len / sizeof(u32); 239 239 240 240 new_owt_effect_data = kmalloc(sizeof(header) + len, GFP_KERNEL); 241 + if (!new_owt_effect_data) 242 + return -ENOMEM; 241 243 242 244 memcpy(new_owt_effect_data, &header, sizeof(header)); 243 245 memcpy(new_owt_effect_data + sizeof(header), work_data->custom_data, len);
+1 -1
drivers/input/misc/gpio-beeper.c
··· 94 94 95 95 #ifdef CONFIG_OF 96 96 static const struct of_device_id gpio_beeper_of_match[] = { 97 - { .compatible = BEEPER_MODNAME, }, 97 + { .compatible = "gpio-beeper", }, 98 98 { } 99 99 }; 100 100 MODULE_DEVICE_TABLE(of, gpio_beeper_of_match);
+1 -1
drivers/input/misc/iqs626a.c
··· 771 771 u8 *thresh = &sys_reg->tp_grp_reg.ch_reg_tp[i].thresh; 772 772 char tc_name[10]; 773 773 774 - snprintf(tc_name, sizeof(tc_name), "channel-%d", i); 774 + scnprintf(tc_name, sizeof(tc_name), "channel-%d", i); 775 775 776 776 struct fwnode_handle *tc_node __free(fwnode_handle) = 777 777 fwnode_get_named_child_node(ch_node, tc_name);
+5 -2
drivers/input/misc/iqs7222.c
··· 301 301 int allow_offset; 302 302 int event_offset; 303 303 int comms_offset; 304 + int ext_chan; 304 305 bool legacy_gesture; 305 306 struct iqs7222_reg_grp_desc reg_grps[IQS7222_NUM_REG_GRPS]; 306 307 }; ··· 316 315 .allow_offset = 9, 317 316 .event_offset = 10, 318 317 .comms_offset = 12, 318 + .ext_chan = 10, 319 319 .reg_grps = { 320 320 [IQS7222_REG_GRP_STAT] = { 321 321 .base = IQS7222_SYS_STATUS, ··· 375 373 .allow_offset = 9, 376 374 .event_offset = 10, 377 375 .comms_offset = 12, 376 + .ext_chan = 10, 378 377 .legacy_gesture = true, 379 378 .reg_grps = { 380 379 [IQS7222_REG_GRP_STAT] = { ··· 2247 2244 const struct iqs7222_dev_desc *dev_desc = iqs7222->dev_desc; 2248 2245 struct i2c_client *client = iqs7222->client; 2249 2246 int num_chan = dev_desc->reg_grps[IQS7222_REG_GRP_CHAN].num_row; 2250 - int ext_chan = rounddown(num_chan, 10); 2247 + int ext_chan = dev_desc->ext_chan ? : num_chan; 2251 2248 int error, i; 2252 2249 u16 *chan_setup = iqs7222->chan_setup[chan_index]; 2253 2250 u16 *sys_setup = iqs7222->sys_setup; ··· 2448 2445 const struct iqs7222_dev_desc *dev_desc = iqs7222->dev_desc; 2449 2446 struct i2c_client *client = iqs7222->client; 2450 2447 int num_chan = dev_desc->reg_grps[IQS7222_REG_GRP_CHAN].num_row; 2451 - int ext_chan = rounddown(num_chan, 10); 2448 + int ext_chan = dev_desc->ext_chan ? : num_chan; 2452 2449 int count, error, reg_offset, i; 2453 2450 u16 *event_mask = &iqs7222->sys_setup[dev_desc->event_offset]; 2454 2451 u16 *sldr_setup = iqs7222->sldr_setup[sldr_index];
+5 -5
drivers/input/mouse/alps.c
··· 1408 1408 return -ENOMEM; 1409 1409 } 1410 1410 1411 - snprintf(priv->phys3, sizeof(priv->phys3), "%s/%s", 1412 - psmouse->ps2dev.serio->phys, 1413 - (priv->dev2 ? "input2" : "input1")); 1411 + scnprintf(priv->phys3, sizeof(priv->phys3), "%s/%s", 1412 + psmouse->ps2dev.serio->phys, 1413 + (priv->dev2 ? "input2" : "input1")); 1414 1414 dev3->phys = priv->phys3; 1415 1415 1416 1416 /* ··· 3103 3103 goto init_fail; 3104 3104 } 3105 3105 3106 - snprintf(priv->phys2, sizeof(priv->phys2), "%s/input1", 3107 - psmouse->ps2dev.serio->phys); 3106 + scnprintf(priv->phys2, sizeof(priv->phys2), "%s/input1", 3107 + psmouse->ps2dev.serio->phys); 3108 3108 dev2->phys = priv->phys2; 3109 3109 3110 3110 /*
+2 -2
drivers/input/mouse/lifebook.c
··· 279 279 goto err_out; 280 280 281 281 priv->dev2 = dev2; 282 - snprintf(priv->phys, sizeof(priv->phys), 283 - "%s/input1", psmouse->ps2dev.serio->phys); 282 + scnprintf(priv->phys, sizeof(priv->phys), 283 + "%s/input1", psmouse->ps2dev.serio->phys); 284 284 285 285 dev2->phys = priv->phys; 286 286 dev2->name = "LBPS/2 Fujitsu Lifebook Touchpad";
+1 -1
drivers/input/mouse/psmouse-base.c
··· 1600 1600 psmouse_pre_receive_byte, psmouse_receive_byte); 1601 1601 INIT_DELAYED_WORK(&psmouse->resync_work, psmouse_resync); 1602 1602 psmouse->dev = input_dev; 1603 - snprintf(psmouse->phys, sizeof(psmouse->phys), "%s/input0", serio->phys); 1603 + scnprintf(psmouse->phys, sizeof(psmouse->phys), "%s/input0", serio->phys); 1604 1604 1605 1605 psmouse_set_state(psmouse, PSMOUSE_INITIALIZING); 1606 1606
-1
drivers/input/touchscreen/Kconfig
··· 105 105 106 106 config TOUCHSCREEN_APPLE_Z2 107 107 tristate "Apple Z2 touchscreens" 108 - default ARCH_APPLE 109 108 depends on SPI && (ARCH_APPLE || COMPILE_TEST) 110 109 help 111 110 Say Y here if you have an ARM Apple device with
+1 -1
drivers/input/touchscreen/melfas_mip4.c
··· 1554 1554 1555 1555 #ifdef CONFIG_OF 1556 1556 static const struct of_device_id mip4_of_match[] = { 1557 - { .compatible = "melfas,"MIP4_DEVICE_NAME, }, 1557 + { .compatible = "melfas,mip4_ts", }, 1558 1558 { }, 1559 1559 }; 1560 1560 MODULE_DEVICE_TABLE(of, mip4_of_match);