aboutsummaryrefslogtreecommitdiff
path: root/drivers/input
AgeCommit message (Collapse)AuthorFilesLines
2017-02-06Input: xpad - fix stuck mode button on Xbox One S padCameron Gutman1-0/+33
The Xbox One S requires an ack to its mode button report, otherwise it continuously retransmits the report. This makes the mode button appear to be stuck down after it is pressed for the first time. Signed-off-by: Cameron Gutman <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-02-04gpio: Rename devm_get_gpiod_from_child()Boris Brezillon2-6/+8
Rename devm_get_gpiod_from_child() into devm_fwnode_get_gpiod_from_child() to reflect the fact that this function is operating on a fwnode object. Signed-off-by: Boris Brezillon <[email protected]> Acked-by: Jacek Anaszewski <[email protected]> Acked-by: Dmitry Torokhov <[email protected]> Signed-off-by: Linus Walleij <[email protected]>
2017-02-01Input: joydev - use clamp() macroDmitry Torokhov1-1/+1
We have a nice macro ensuring that the value is within certain range, let's use it instead of open-coding. Signed-off-by: Dmitry Torokhov <[email protected]>
2017-02-01Input: refuse to register absolute devices without absinfoDmitry Torokhov1-0/+6
If device is supposed to send absolute events (i.e. EV_ABS bit is set in dev->evbit) but dev->absinfo is not allocated, then the driver has done something wrong, and we should not register such device. Otherwise we'll crash later, when driver tries to send absolute event. Reviewed-by: Benjamin Tissoires <[email protected]> Acked-by: Jiri Kosina <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-02-01Input: uinput - fix crash when mixing old and new init styleDmitry Torokhov1-6/+14
If user tries to initialize uinput device mixing old and new style initialization (i.e. using old UI_SET_ABSBIT instead of UI_ABS_SETUP, we forget to allocate input->absinfo and will crash when trying to send absolute events: ioctl(ui, UI_DEV_SETUP, &us); ioctl(ui, UI_SET_PHYS, "Test"); ioctl(ui, UI_SET_EVBIT, EV_ABS); ioctl(ui, UI_SET_ABSBIT, ABS_X); ioctl(ui, UI_SET_ABSBIT, ABS_Y); ioctl(ui, UI_DEV_CREATE, 0); Reported-by: Rodrigo Rivas Costa <[email protected]> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=191811 Fixes: fbae10db0940 ("Input: uinput - rework ABS validation") Reviewed-by: Benjamin Tissoires <[email protected]> Cc: [email protected] Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-31Input: synaptics-rmi4 - add sysfs interfaces for hardware IDsNick Dyer4-4/+152
These attributes provide various bits of information which may be enumerated under the RMI4 protocol to user space. This may be useful for displaying the particular version which is in use, or selecting the correct firmware to flash. Signed-off-by: Nick Dyer <[email protected]> Tested-by: Chris Healy <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-31Input: synaptics-rmi4 - add sysfs attribute update_fw_statusNick Dyer3-27/+80
The attribute returns the percentage complete. If the firmware update fails, it reports a negative error code. Signed-off-by: Nick Dyer <[email protected]> Tested-by: Chris Healy <[email protected]> Acked-by: Benjamin Tissoires <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-31Input: mousedev - stop offering PS/2 to userspace by defaultDmitry Torokhov1-3/+0
Evdev interface has been available for many years and by now everyone is switched to using it, so let's stop offering /dev/input/mouseN and /dev/psaux by default. Acked-by: Jiri Kosina <[email protected]> Acked-by: Peter Hutterer <[email protected]> Acked-by: Benjamin Tissoires <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-31Input: tca8418 - switch to using generic device propertiesDmitry Torokhov1-64/+26
Let's drop legacy platform data support (there are no users in mainline) and switch to using generic device properties, which will make the driver simpler (non-OF boards can use property sets to describe hardware). Reviewed-by: Maxime Ripard <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-31Input: matrix-keypad - switch to using generic device propertiesDmitry Torokhov11-66/+70
Instead of being OF-specific, let's switch to using generic device properties, which will make this code usable on ACPI, device tree and legacy boards that use property sets. As part of the change let's rename matrix_keypad_parse_of_params() to matrix_keypad_parse_properties(). Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-31Input: synaptics-rmi4 - fix reversed conditions in enable/disable_irq_wakeChristophe JAILLET1-2/+2
These tests are reversed. A warning should be displayed if an error is returned, not on success. Signed-off-by: Christophe JAILLET <[email protected]> Reviewed-by: Benjamin Tissoires <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-31Input: delete MPU3050 driverLinus Walleij3-492/+0
The MPU3050 driver in the input subsystem has been superseded by a proper IIO driver found in drivers/iio/gyro/mpu3050*. Patches have been submitted to remove all defconfig and related references to the old driver and replace this input driver with the IIO driver. So delete the input driver. Input was never a good fit for sensors anyway. Signed-off-by: Linus Walleij <[email protected]> Reviewed-by: Heikki Krogerus <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-26gpio: Pass GPIO label down to gpiod_requestAlexander Stein2-2/+4
Currently all users of fwnode_get_named_gpiod() have no way to specify a label for the GPIO. So GPIOs listed in debugfs are shown with label "?". With this change a proper label is used. Also adjust all users so they can pass a label, properly retrieved from device tree properties. Signed-off-by: Alexander Stein <[email protected]> Cc: Andy Shevchenko <[email protected]> Acked-by: Jacek Anaszewski <[email protected]> Acked-by: Bartlomiej Zolnierkiewicz <[email protected]> Acked-by: Dmitry Torokhov <[email protected]> Signed-off-by: Linus Walleij <[email protected]>
2017-01-26gpiolib: Convert fwnode_get_named_gpiod() to configure GPIOAndy Shevchenko2-17/+3
Make fwnode_get_named_gpiod() consistent with the rest of gpiod_get() like API, i.e. configure GPIO pin immediately after request. Besides obvious clean up it will help to configure pins based on firmware provided resources. Reviewed-by: Mika Westerberg <[email protected]> Signed-off-by: Andy Shevchenko <[email protected]> Signed-off-by: Linus Walleij <[email protected]>
2017-01-24Input: constify device_type structuresBhumika Goyal2-3/+3
Declare device_type structures as const as they are only stored in the type field of a device structure. This field is of type const, so add const to declaration of device_type structures. File size before: text data bss dec hex filename 17184 1344 80 18608 48b0 drivers/input/input.o File size after: text data bss dec hex filename 17248 1280 80 18608 48b0 drivers/input/input.o File size before: text data bss dec hex filename 2355 384 8 2747 abb drivers/input/rmi4/rmi_bus.o File size after: text data bss dec hex filename 2483 264 8 2755 ac3 drivers/input/rmi4/rmi_bus.o Signed-off-by: Bhumika Goyal <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-24Merge tag 'v4.10-rc5' into nextDmitry Torokhov31-165/+104
Sync up with mainline to bring up improvements in various subsystems.
2017-01-24Input: wm97xx - make missing platform data non-fatalManuel Lauss1-1/+1
Commit 6480af4915d6 ("power_supply: wm97xx_battery: use power_supply_get_drvdata") made wm97xx platform data mandatory, although it's still optional. This patch fixes an oops during driver probe on one of my MIPS boards with a wm9712. Signed-off-by: Manuel Lauss <[email protected]> Reviewed-by: Robert Jarzmik <[email protected]> Acked-by: Charles Keepax <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-22Input: touchscreen - drop unnecessary calls to input_set_drvdataGuenter Roeck6-9/+0
Since there is no call to dev_get_drvdata() or input_get_drvdata(), the call to input_set_drvdata() is unnecessary and can be dropped. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-22Input: dm355evm_keys - drop unnecessary call to input_set_drvdataGuenter Roeck1-2/+0
Since there is no call to dev_get_drvdata() or input_get_drvdata(), the call to input_set_drvdata() is unnecessary and can be dropped. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-22Input: mouse - drop unnecessary calls to input_set_drvdataGuenter Roeck2-3/+0
Since there is no call to dev_get_drvdata() or input_get_drvdata(), the call to input_set_drvdata() is unnecessary and can be dropped. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-22Input: maplecontrol - drop unnecessary call to input_set_drvdataGuenter Roeck1-1/+0
Since there is no call to dev_get_drvdata() or input_get_drvdata(), the call to input_set_drvdata() is unnecessary and can be dropped. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-22Input: keyboard - drop unnecessary calls to input_set_drvdataGuenter Roeck6-11/+0
If there is no call to dev_get_drvdata() or input_get_drvdata(), the call to input_set_drvdata() is unnecessary and can be dropped. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-22Input: i8042 - add dbg msg when a command can't write its parameterMarcos Paulo de Souza1-2/+4
This can happen in cases like bug #102951[1], so add a proper debug msg as done in wait_read. Also, change wait_read debug message to differ from wait_write. [1] https://bugzilla.kernel.org/show_bug.cgi?id=102951 Signed-off-by: Marcos Paulo de Souza <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-22Input: max11801_ts - drop call to input_set_drvdata()Dmitry Torokhov1-1/+0
Nobody calls input_get_drvdata() so setting it is not required. Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-22Input: pwm-beeper - switch to using "atomic" PWM APIDmitry Torokhov1-9/+17
The "atomic" API allows us to configure PWM period and duty cycle and enable it in one call. Reviewed-by: Thierry Reding <[email protected]> Tested-by: David Lechner <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-22Input: pwm-beeper - add optional amplifier regulatorDavid Lechner1-13/+50
This adds an optional regulator to the pwm-beeper device. This regulator acts as an amplifier. The amplifier is only enabled while beeping in order to reduce power consumption. Tested on LEGO MINDSTORMS EV3, which has a speaker connected to PWM through an amplifier. Signed-off-by: David Lechner <[email protected]> Acked-by: Rob Herring <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-22Input: pwm-beeper - suppress error message on probe deferDavid Lechner1-1/+3
This suppress printing an error message when pwm_get returns -EPROBE_DEFER. Otherwise you get a bunch of noise in the kernel log. Signed-off-by: David Lechner <[email protected]> Reviewed-by: Thierry Reding <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-22Input: pwm-beeper - fix race when suspendingDmitry Torokhov1-3/+18
Usually userspace sends SND_BELL and SND_TONE events, and by the time pwm_beeper_suspend() runs userpsace is already frozen, but theoretically in-kernel users may send these events too, and that may cause pwm_beeper_event() scheduling another work after we canceled it. Let's introduce a "suspended" flag and check it in pwm_beeper_event() to avoid this race. Reviewed-by: Thierry Reding <[email protected]> Tested-by: David Lechner <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-22Input: pwm-beeper - use input_set_capability()Dmitry Torokhov1-2/+2
Instead of manipulating capability bits directly, let's use input_set_capability() API. Reviewed-by: Thierry Reding <[email protected]> Tested-by: David Lechner <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-22Input: pwm-beeper - switch to using managed resourcesDmitry Torokhov1-34/+10
Use of managed resources (devm) simplifies error handling and tear down of the driver. Reviewed-by: Thierry Reding <[email protected]> Tested-by: David Lechner <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-22Input: pwm-beeper - remove calls to legacy pwm_request APIDmitry Torokhov1-6/+0
There are no more users of pwm-beeper driver in mainline relying on this legacy API, so let's remove it and simplify the driver code. Acked-by: Thierry Reding <[email protected]> Tested-by: David Lechner <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-21Input: synaptics-rmi4 - use local variables consistentlyGuenter Roeck2-4/+4
If a function declares a variable to access a structure element, use it conssistently. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-21Input: misc - drop empty remove functionsGuenter Roeck5-30/+0
Empty remove functions don't serve a useful purpose and can be removed. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-21Input: serio - drop unnecessary calls to device_init_wakeupGuenter Roeck1-1/+0
Calling device_init_wakeup in the remove function is unnecessary since the device is going away, and thus won't be able to cause any wakeups under any circumstances. Besides, the driver cleanup code already handles the necessary cleanup. Similarly, disabling wakeup in the probe error path is unnecessary, as is disabling wakeup in the probe function in the first place. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-21Input: touchscreen - drop unnecessary calls to device_init_wakeupGuenter Roeck5-7/+0
Calling device_init_wakeup in the remove function is unnecessary since the device is going away, and thus won't be able to cause any wakeups under any circumstances. Besides, the driver cleanup code already handles the necessary cleanup. Similarly, disabling wakeup in the probe error path is unnecessary, as is disabling wakeup in the probe function in the first place. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-21Input: misc - drop unnecessary calls to device_init_wakeupGuenter Roeck7-11/+0
Calling device_init_wakeup in the remove function is unnecessary since the device is going away, and thus won't be able to cause any wakeups under any circumstances. Besides, the driver cleanup code already handles the necessary cleanup. Similarly, disabling wakeup in the probe error path is unnecessary, as is disabling wakeup in the probe function in the first place. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-21Input: keyboard - drop unnecessary calls to device_init_wakeupGuenter Roeck5-11/+0
Calling device_init_wakeup in the remove function is unnecessary since the device is going away, and thus won't be able to cause any wakeups under any circumstances. Besides, the driver cleanup code already handles the necessary cleanup. Similarly, disabling wakeup in the probe error path is unnecessary, as is disabling wakeup in the probe function in the first place. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-21Input: touchscreen - use local variables consistentlyGuenter Roeck6-8/+7
If a function declares a variable to access a structure element, use it consistently. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-21Input: mouse - use local variables consistentlyGuenter Roeck9-42/+31
If a function declares a variable to access a structure element, use it consistently. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-21Input: misc - use local variables consistentlyGuenter Roeck3-7/+6
If a function declares a variable to access a structure element, use it consistently. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-21Input: keyboard - use local variables consistentlyGuenter Roeck4-27/+25
If a function declares a variable to access a structure element, use it consistently. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-21Input: touchscreen - drop calls to platform_set_drvdata and i2c_set_clientdataGuenter Roeck5-8/+0
There is no call to i2c_get_clientdata(), platform_get_drvdata(), or dev_get_drvdata() in any of the drivers in this patch. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-21Input: misc - drop calls to platform_set_drvdata and i2c_set_clientdataGuenter Roeck5-6/+0
There is no call to i2c_get_clientdata(), platform_get_drvdata(), or dev_get_drvdata() in any of the drivers in this patch. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-21Input: keyboard - drop calls to platform_set_drvdata and i2c_set_clientdataGuenter Roeck8-12/+0
There is no call to i2c_get_clientdata(), platform_get_drvdata(), or dev_get_drvdata() in any of the drivers in this patch. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-21Input: gpio-keys - add support for setkeycodeHans de Goede1-12/+28
gpio-keys input devices created by the soc_button_array driver are configured with key-codes based on ACPI provided information. Unfortunately on some tablets this info is wrong, and we need to have a quirk to fix things up. Add support for input_setkeycode to the gpio-keys driver, so that the existing udev hwdb mechanism can be used to fix things up on these tablets. Signed-off-by: Hans de Goede <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-21Input: soc_button_array - debounce the buttonsHans de Goede1-0/+2
The soc_button_array driver was initializing (kzalloc) the debounce_interval value to 0, leading to no debouncing at all, while the buttons are simple mechanical switches. This commit sets debounce_interval to 50ms to avoid spurious button press reports both on press and release of the button. Note 50ms may seem like a lot but soc_button_array is typically used with cheap tablets, with not so great buttons. I tried 10ms on my tablet and it is not enough, where as 50ms works well. Signed-off-by: Hans de Goede <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-18Input: tm2-touchkey - add touchkey driver support for TM2Jaechul Lee3-0/+298
This patch adds support for the TM2 touch key and led functionality. The driver interfaces with userspace through an input device and reports KEY_PHONE and KEY_BACK event types. LED brightness can be controlled by "/sys/class/leds/tm2-touchkey/brightness". Signed-off-by: Beomho Seo <[email protected]> Signed-off-by: Jaechul Lee <[email protected]> Reviewed-by: Javier Martinez Canillas <[email protected]> Reviewed-by: Andi Shyti <[email protected]> Reviewed-by: Chanwoo Choi <[email protected]> Tested-by: Chanwoo Choi <[email protected]> Acked-by: Krzysztof Kozlowski <[email protected]> Acked-by: Rob Herring <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-18Input: sis_i2c - drop unnecessary call to i2c_set_clientdataGuenter Roeck1-1/+0
There is no call to i2c_get_clientdata() or dev_get_drvdata(). Drop the unnecessary call to i2c_set_clientdata(). Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-18Input: bcm-keypad - drop unnecessary call to platform_set_drvdataGuenter Roeck1-2/+0
There is no call to platform_get_drvdata() or dev_get_drvdata(). Drop the unnecessary call to platform_set_drvdata(). Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2017-01-18Input: twl4030_keypad - drop unnecessary call to platform_set_drvdataGuenter Roeck1-1/+0
There is no call to platform_get_drvdata() or dev_get_drvdata(). Drop the unnecessary call to platform_set_drvdata(). Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>