Commit 8ad4b6fa authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'input-for-v5.19-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input

Pull input fixes from Dmitry Torokhov:

 - fix Goodix driver to properly behave on the Aya Neo Next

 - some more sanity checks in usbtouchscreen driver

 - a tweak in wm97xx driver in preparation for remove() to return void

 - a clarification in input core regarding units of measurement for
   resolution on touch events.

* tag 'input-for-v5.19-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: document the units for resolution of size axes
  Input: goodix - call acpi_device_fix_up_power() in some cases
  Input: wm97xx - make .remove() obviously always return 0
  Input: usbtouchscreen - add driver_info sanity check
parents 396df700 2a96271f
...@@ -900,6 +900,11 @@ static int goodix_add_acpi_gpio_mappings(struct goodix_ts_data *ts) ...@@ -900,6 +900,11 @@ static int goodix_add_acpi_gpio_mappings(struct goodix_ts_data *ts)
} else { } else {
dev_warn(dev, "Unexpected ACPI resources: gpio_count %d, gpio_int_idx %d\n", dev_warn(dev, "Unexpected ACPI resources: gpio_count %d, gpio_int_idx %d\n",
ts->gpio_count, ts->gpio_int_idx); ts->gpio_count, ts->gpio_int_idx);
/*
* On some devices _PS0 does a reset for us and
* sometimes this is necessary for things to work.
*/
acpi_device_fix_up_power(ACPI_COMPANION(dev));
return -EINVAL; return -EINVAL;
} }
......
...@@ -1654,6 +1654,9 @@ static int usbtouch_probe(struct usb_interface *intf, ...@@ -1654,6 +1654,9 @@ static int usbtouch_probe(struct usb_interface *intf,
if (id->driver_info == DEVTYPE_IGNORE) if (id->driver_info == DEVTYPE_IGNORE)
return -ENODEV; return -ENODEV;
if (id->driver_info >= ARRAY_SIZE(usbtouch_dev_info))
return -ENODEV;
endpoint = usbtouch_get_input_endpoint(intf->cur_altsetting); endpoint = usbtouch_get_input_endpoint(intf->cur_altsetting);
if (!endpoint) if (!endpoint)
return -ENXIO; return -ENXIO;
......
...@@ -758,7 +758,9 @@ static int wm97xx_mfd_probe(struct platform_device *pdev) ...@@ -758,7 +758,9 @@ static int wm97xx_mfd_probe(struct platform_device *pdev)
static int wm97xx_mfd_remove(struct platform_device *pdev) static int wm97xx_mfd_remove(struct platform_device *pdev)
{ {
return wm97xx_remove(&pdev->dev); wm97xx_remove(&pdev->dev);
return 0;
} }
static int __maybe_unused wm97xx_suspend(struct device *dev) static int __maybe_unused wm97xx_suspend(struct device *dev)
......
...@@ -78,10 +78,13 @@ struct input_id { ...@@ -78,10 +78,13 @@ struct input_id {
* Note that input core does not clamp reported values to the * Note that input core does not clamp reported values to the
* [minimum, maximum] limits, such task is left to userspace. * [minimum, maximum] limits, such task is left to userspace.
* *
* The default resolution for main axes (ABS_X, ABS_Y, ABS_Z) * The default resolution for main axes (ABS_X, ABS_Y, ABS_Z,
* is reported in units per millimeter (units/mm), resolution * ABS_MT_POSITION_X, ABS_MT_POSITION_Y) is reported in units
* for rotational axes (ABS_RX, ABS_RY, ABS_RZ) is reported * per millimeter (units/mm), resolution for rotational axes
* in units per radian. * (ABS_RX, ABS_RY, ABS_RZ) is reported in units per radian.
* The resolution for the size axes (ABS_MT_TOUCH_MAJOR,
* ABS_MT_TOUCH_MINOR, ABS_MT_WIDTH_MAJOR, ABS_MT_WIDTH_MINOR)
* is reported in units per millimeter (units/mm).
* When INPUT_PROP_ACCELEROMETER is set the resolution changes. * When INPUT_PROP_ACCELEROMETER is set the resolution changes.
* The main axes (ABS_X, ABS_Y, ABS_Z) are then reported in * The main axes (ABS_X, ABS_Y, ABS_Z) are then reported in
* units per g (units/g) and in units per degree per second * units per g (units/g) and in units per degree per second
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment