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()
This commit is contained in:
@@ -4,14 +4,14 @@
|
||||
$id: http://devicetree.org/schemas/input/elan,ekth6915.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Elan eKTH6915 touchscreen controller
|
||||
title: Elan I2C-HID touchscreen controllers
|
||||
|
||||
maintainers:
|
||||
- Douglas Anderson <dianders@chromium.org>
|
||||
|
||||
description:
|
||||
Supports the Elan eKTH6915 touchscreen controller.
|
||||
This touchscreen controller uses the i2c-hid protocol with a reset GPIO.
|
||||
Supports the Elan eKTH6915 and other I2C-HID touchscreen controllers.
|
||||
These touchscreen controller use the i2c-hid protocol with a reset GPIO.
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/input/touchscreen/touchscreen.yaml#
|
||||
@@ -23,12 +23,14 @@ properties:
|
||||
- enum:
|
||||
- elan,ekth5015m
|
||||
- const: elan,ekth6915
|
||||
- items:
|
||||
- const: elan,ekth8d18
|
||||
- const: elan,ekth6a12nay
|
||||
- enum:
|
||||
- elan,ekth6915
|
||||
- elan,ekth6a12nay
|
||||
|
||||
reg:
|
||||
const: 0x10
|
||||
reg: true
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
@@ -149,7 +149,7 @@ static int fsia6b_serio_connect(struct serio *serio, struct serio_driver *drv)
|
||||
}
|
||||
fsia6b->dev = input_dev;
|
||||
|
||||
snprintf(fsia6b->phys, sizeof(fsia6b->phys), "%s/input0", serio->phys);
|
||||
scnprintf(fsia6b->phys, sizeof(fsia6b->phys), "%s/input0", serio->phys);
|
||||
|
||||
input_dev->name = DRIVER_DESC;
|
||||
input_dev->phys = fsia6b->phys;
|
||||
|
||||
@@ -177,6 +177,7 @@ static const struct xpad_device {
|
||||
{ 0x05fd, 0x107a, "InterAct 'PowerPad Pro' X-Box pad (Germany)", 0, XTYPE_XBOX },
|
||||
{ 0x05fe, 0x3030, "Chic Controller", 0, XTYPE_XBOX },
|
||||
{ 0x05fe, 0x3031, "Chic Controller", 0, XTYPE_XBOX },
|
||||
{ 0x0502, 0x1305, "Acer NGR200", 0, XTYPE_XBOX },
|
||||
{ 0x062a, 0x0020, "Logic3 Xbox GamePad", 0, XTYPE_XBOX },
|
||||
{ 0x062a, 0x0033, "Competition Pro Steering Wheel", 0, XTYPE_XBOX },
|
||||
{ 0x06a3, 0x0200, "Saitek Racing Wheel", 0, XTYPE_XBOX },
|
||||
@@ -524,6 +525,7 @@ static const struct usb_device_id xpad_table[] = {
|
||||
XPAD_XBOX360_VENDOR(0x045e), /* Microsoft Xbox 360 controllers */
|
||||
XPAD_XBOXONE_VENDOR(0x045e), /* Microsoft Xbox One controllers */
|
||||
XPAD_XBOX360_VENDOR(0x046d), /* Logitech Xbox 360-style controllers */
|
||||
XPAD_XBOX360_VENDOR(0x0502), /* Acer Inc. Xbox 360 style controllers */
|
||||
XPAD_XBOX360_VENDOR(0x056e), /* Elecom JC-U3613M */
|
||||
XPAD_XBOX360_VENDOR(0x06a3), /* Saitek P3600 */
|
||||
XPAD_XBOX360_VENDOR(0x0738), /* Mad Catz Xbox 360 controllers */
|
||||
@@ -1344,11 +1346,12 @@ static int xpad_try_sending_next_out_packet(struct usb_xpad *xpad)
|
||||
usb_anchor_urb(xpad->irq_out, &xpad->irq_out_anchor);
|
||||
error = usb_submit_urb(xpad->irq_out, GFP_ATOMIC);
|
||||
if (error) {
|
||||
dev_err(&xpad->intf->dev,
|
||||
"%s - usb_submit_urb failed with result %d\n",
|
||||
__func__, error);
|
||||
if (error != -ENODEV)
|
||||
dev_err(&xpad->intf->dev,
|
||||
"%s - usb_submit_urb failed with result %d\n",
|
||||
__func__, error);
|
||||
usb_unanchor_urb(xpad->irq_out);
|
||||
return -EIO;
|
||||
return error;
|
||||
}
|
||||
|
||||
xpad->irq_out_active = true;
|
||||
|
||||
@@ -1191,8 +1191,8 @@ static void atkbd_set_device_attrs(struct atkbd *atkbd)
|
||||
"AT %s Set %d keyboard",
|
||||
atkbd->translated ? "Translated" : "Raw", atkbd->set);
|
||||
|
||||
snprintf(atkbd->phys, sizeof(atkbd->phys),
|
||||
"%s/input0", atkbd->ps2dev.serio->phys);
|
||||
scnprintf(atkbd->phys, sizeof(atkbd->phys),
|
||||
"%s/input0", atkbd->ps2dev.serio->phys);
|
||||
|
||||
input_dev->name = atkbd->name;
|
||||
input_dev->phys = atkbd->phys;
|
||||
|
||||
@@ -238,6 +238,8 @@ static int cs40l50_upload_owt(struct cs40l50_work *work_data)
|
||||
header.data_words = len / sizeof(u32);
|
||||
|
||||
new_owt_effect_data = kmalloc(sizeof(header) + len, GFP_KERNEL);
|
||||
if (!new_owt_effect_data)
|
||||
return -ENOMEM;
|
||||
|
||||
memcpy(new_owt_effect_data, &header, sizeof(header));
|
||||
memcpy(new_owt_effect_data + sizeof(header), work_data->custom_data, len);
|
||||
|
||||
@@ -94,7 +94,7 @@ static int gpio_beeper_probe(struct platform_device *pdev)
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
static const struct of_device_id gpio_beeper_of_match[] = {
|
||||
{ .compatible = BEEPER_MODNAME, },
|
||||
{ .compatible = "gpio-beeper", },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, gpio_beeper_of_match);
|
||||
|
||||
@@ -771,7 +771,7 @@ static int iqs626_parse_trackpad(struct iqs626_private *iqs626,
|
||||
u8 *thresh = &sys_reg->tp_grp_reg.ch_reg_tp[i].thresh;
|
||||
char tc_name[10];
|
||||
|
||||
snprintf(tc_name, sizeof(tc_name), "channel-%d", i);
|
||||
scnprintf(tc_name, sizeof(tc_name), "channel-%d", i);
|
||||
|
||||
struct fwnode_handle *tc_node __free(fwnode_handle) =
|
||||
fwnode_get_named_child_node(ch_node, tc_name);
|
||||
|
||||
@@ -301,6 +301,7 @@ struct iqs7222_dev_desc {
|
||||
int allow_offset;
|
||||
int event_offset;
|
||||
int comms_offset;
|
||||
int ext_chan;
|
||||
bool legacy_gesture;
|
||||
struct iqs7222_reg_grp_desc reg_grps[IQS7222_NUM_REG_GRPS];
|
||||
};
|
||||
@@ -315,6 +316,7 @@ static const struct iqs7222_dev_desc iqs7222_devs[] = {
|
||||
.allow_offset = 9,
|
||||
.event_offset = 10,
|
||||
.comms_offset = 12,
|
||||
.ext_chan = 10,
|
||||
.reg_grps = {
|
||||
[IQS7222_REG_GRP_STAT] = {
|
||||
.base = IQS7222_SYS_STATUS,
|
||||
@@ -373,6 +375,7 @@ static const struct iqs7222_dev_desc iqs7222_devs[] = {
|
||||
.allow_offset = 9,
|
||||
.event_offset = 10,
|
||||
.comms_offset = 12,
|
||||
.ext_chan = 10,
|
||||
.legacy_gesture = true,
|
||||
.reg_grps = {
|
||||
[IQS7222_REG_GRP_STAT] = {
|
||||
@@ -2244,7 +2247,7 @@ static int iqs7222_parse_chan(struct iqs7222_private *iqs7222,
|
||||
const struct iqs7222_dev_desc *dev_desc = iqs7222->dev_desc;
|
||||
struct i2c_client *client = iqs7222->client;
|
||||
int num_chan = dev_desc->reg_grps[IQS7222_REG_GRP_CHAN].num_row;
|
||||
int ext_chan = rounddown(num_chan, 10);
|
||||
int ext_chan = dev_desc->ext_chan ? : num_chan;
|
||||
int error, i;
|
||||
u16 *chan_setup = iqs7222->chan_setup[chan_index];
|
||||
u16 *sys_setup = iqs7222->sys_setup;
|
||||
@@ -2445,7 +2448,7 @@ static int iqs7222_parse_sldr(struct iqs7222_private *iqs7222,
|
||||
const struct iqs7222_dev_desc *dev_desc = iqs7222->dev_desc;
|
||||
struct i2c_client *client = iqs7222->client;
|
||||
int num_chan = dev_desc->reg_grps[IQS7222_REG_GRP_CHAN].num_row;
|
||||
int ext_chan = rounddown(num_chan, 10);
|
||||
int ext_chan = dev_desc->ext_chan ? : num_chan;
|
||||
int count, error, reg_offset, i;
|
||||
u16 *event_mask = &iqs7222->sys_setup[dev_desc->event_offset];
|
||||
u16 *sldr_setup = iqs7222->sldr_setup[sldr_index];
|
||||
|
||||
@@ -1408,9 +1408,9 @@ static int alps_do_register_bare_ps2_mouse(struct alps_data *priv)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
snprintf(priv->phys3, sizeof(priv->phys3), "%s/%s",
|
||||
psmouse->ps2dev.serio->phys,
|
||||
(priv->dev2 ? "input2" : "input1"));
|
||||
scnprintf(priv->phys3, sizeof(priv->phys3), "%s/%s",
|
||||
psmouse->ps2dev.serio->phys,
|
||||
(priv->dev2 ? "input2" : "input1"));
|
||||
dev3->phys = priv->phys3;
|
||||
|
||||
/*
|
||||
@@ -3103,8 +3103,8 @@ int alps_init(struct psmouse *psmouse)
|
||||
goto init_fail;
|
||||
}
|
||||
|
||||
snprintf(priv->phys2, sizeof(priv->phys2), "%s/input1",
|
||||
psmouse->ps2dev.serio->phys);
|
||||
scnprintf(priv->phys2, sizeof(priv->phys2), "%s/input1",
|
||||
psmouse->ps2dev.serio->phys);
|
||||
dev2->phys = priv->phys2;
|
||||
|
||||
/*
|
||||
|
||||
@@ -279,8 +279,8 @@ static int lifebook_create_relative_device(struct psmouse *psmouse)
|
||||
goto err_out;
|
||||
|
||||
priv->dev2 = dev2;
|
||||
snprintf(priv->phys, sizeof(priv->phys),
|
||||
"%s/input1", psmouse->ps2dev.serio->phys);
|
||||
scnprintf(priv->phys, sizeof(priv->phys),
|
||||
"%s/input1", psmouse->ps2dev.serio->phys);
|
||||
|
||||
dev2->phys = priv->phys;
|
||||
dev2->name = "LBPS/2 Fujitsu Lifebook Touchpad";
|
||||
|
||||
@@ -1600,7 +1600,7 @@ static int psmouse_connect(struct serio *serio, struct serio_driver *drv)
|
||||
psmouse_pre_receive_byte, psmouse_receive_byte);
|
||||
INIT_DELAYED_WORK(&psmouse->resync_work, psmouse_resync);
|
||||
psmouse->dev = input_dev;
|
||||
snprintf(psmouse->phys, sizeof(psmouse->phys), "%s/input0", serio->phys);
|
||||
scnprintf(psmouse->phys, sizeof(psmouse->phys), "%s/input0", serio->phys);
|
||||
|
||||
psmouse_set_state(psmouse, PSMOUSE_INITIALIZING);
|
||||
|
||||
|
||||
@@ -105,7 +105,6 @@ config TOUCHSCREEN_ADC
|
||||
|
||||
config TOUCHSCREEN_APPLE_Z2
|
||||
tristate "Apple Z2 touchscreens"
|
||||
default ARCH_APPLE
|
||||
depends on SPI && (ARCH_APPLE || COMPILE_TEST)
|
||||
help
|
||||
Say Y here if you have an ARM Apple device with
|
||||
|
||||
@@ -1554,7 +1554,7 @@ static DEFINE_SIMPLE_DEV_PM_OPS(mip4_pm_ops, mip4_suspend, mip4_resume);
|
||||
|
||||
#ifdef CONFIG_OF
|
||||
static const struct of_device_id mip4_of_match[] = {
|
||||
{ .compatible = "melfas,"MIP4_DEVICE_NAME, },
|
||||
{ .compatible = "melfas,mip4_ts", },
|
||||
{ },
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, mip4_of_match);
|
||||
|
||||
Reference in New Issue
Block a user