Commit Graph

618206 Commits

Author SHA1 Message Date
Geert Uytterhoeven
5feeca3c1e Input: gpio_keys - add support for GPIO descriptors
GPIO descriptors are the preferred way over legacy GPIO numbers
nowadays. Convert the driver to use GPIO descriptors internally but
still allow passing legacy GPIO numbers from platform data to support
existing platforms.

Based on commits 633a21d80b ("input: gpio_keys_polled: Add support
for GPIO descriptors") and 1ae5ddb6f8 ("Input: gpio_keys_polled -
request GPIO pin as input.").

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-11-07 16:24:31 -08:00
Dmitry Torokhov
0860913b02 Input: gpio_keys - fix leaking DT node references
for_each_available_child_of_node(node, pp) takes reference to 'pp' and
drops it when attempting next iteration. However if we exit the loop early
we need to drop the reference ourselves.

Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-11-07 16:24:30 -08:00
Dmitry Torokhov
f9645f2258 Input: gpio_keys - annotate PM methods as __maybe_unused
Instead of using #ifdef, let's mark suspend and resume methods as
__maybe_unused to provide better compile coverage.

Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-11-07 16:24:30 -08:00
Dmitry Torokhov
ea6aabf877 Input: gpio_keys_polled - always use gpiod_get_value_cansleep
It does not matter if given GPIO may sleep or not when reading state,
polling is always done in a non-atomic context, so we should always
be able to simply use gpiod_get_value_cansleep().

Also let's note in the logs when we fail to read gpio state.

Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-11-07 16:24:29 -08:00
Dmitry Torokhov
0f78ba96bb Input: gpio_keys_polled - keep button data constant
Commit 633a21d80b ("input: gpio_keys_polled: Add support for GPIO
descriptors") placed gpio descriptor into gpio_keys_button structure, which
is supposed to be part of platform data and not modifiable by the driver.
To keep the data constant, let's move the descriptor to
gpio_keys_button_data structure instead.

Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-11-07 16:24:29 -08:00
Javier Martinez Canillas
8dd5e0b364 Input: da9063 - fix module autoload when registered via OF
If the driver is built as a module, autoload won't work because the module
alias information is not filled. So user-space can't match the registered
device with the corresponding module.

Export the module alias information using the MODULE_DEVICE_TABLE() macro.

Before this patch:

$ modinfo drivers/input/misc/da9063_onkey.ko | grep alias
alias:          platform:da9063-onkey

After this patch:

$ modinfo drivers/input/misc/da9063_onkey.ko | grep alias
alias:          platform:da9063-onkey
alias:          of:N*T*Cdlg,da9062-onkeyC*
alias:          of:N*T*Cdlg,da9062-onkey
alias:          of:N*T*Cdlg,da9063-onkeyC*
alias:          of:N*T*Cdlg,da9063-onkey

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-26 16:48:16 -07:00
Javier Martinez Canillas
e1cb73f6f5 Input: fsl-imx25-tcq - fix module autoload when registered via OF
If the driver is built as a module, autoload won't work because the module
alias information is not filled. So user-space can't match the registered
device with the corresponding module.

Export the module alias information using the MODULE_DEVICE_TABLE() macro.

Before this patch:

$ modinfo drivers/input/touchscreen/fsl-imx25-tcq.ko | grep alias

After this patch:

$ modinfo drivers/input/touchscreen/fsl-imx25-tcq.ko | grep alias
alias:          of:N*T*Cfsl,imx25-tcqC*
alias:          of:N*T*Cfsl,imx25-tcq

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-26 16:48:15 -07:00
Benjamin Tissoires
39a0d75ae3 Input: elan_i2c - always output the device information
it's always easier to retrieve these information in bug reports when
it is always printed in the dmesg.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-26 16:48:15 -07:00
Arnd Bergmann
ea4348c846 Input: tca8418_keypad - hide gcc-4.9 -Wmaybe-uninitialized warning
Older versions of gcc warn about the tca8418_irq_handler function
as they can't keep track of the variable assignment inside of the
loop when using the -Wmaybe-unintialized flag:

drivers/input/keyboard/tca8418_keypad.c: In function ‘tca8418_irq_handler’:
drivers/input/keyboard/tca8418_keypad.c:172:9: error: ‘reg’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
drivers/input/keyboard/tca8418_keypad.c:165:5: note: ‘reg’ was declared here

This is fixed in gcc-6, but it's possible to rearrange the code
in a way that avoids the warning on older compilers as well.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-26 16:01:18 -07:00
Sangwon Jee
c2c4ba8202 Input: melfas_mip4 - use product id for firmware name
Use product id for firmware name to request compatible firmware.

Signed-off-by: Sangwon Jee <jeesw@melfas.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-26 16:01:17 -07:00
Steve Twiss
04d7ad83c6 Input: da9061 - onkey driver
Copyright header is updated to add DA9061 in its description and the module
description macro is extended to include DA9061.

Minor change to the code, alters dev_dbg() statements to report a generic
"PMIC" instead of DA9063. This device driver is compatible with DA9061,
DA9062 and DA9063.

Kconfig is updated to reflect support for DA9061/62/63.

Signed-off-by: Steve Twiss <stwiss.opensource@diasemi.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-26 16:01:16 -07:00
Colin Ian King
6d86c4714d Input: pxa27x_keypad - fix typo "debpunce" -> "debounce"
Trivial fix to typo in dev_err message

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-26 16:01:15 -07:00
Marcos Paulo de Souza
77b425399f Input: i8042 - use chassis info to skip selftest on Asus laptops
Instead of relying on this model zoo let's skip selftest on all newer Asus
laptops (newer as in when they changed "Computer" -> "COMPUTER" in their
DMI data).

Signed-off-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-21 15:39:09 -07:00
Sangwon Jee
e2aad66638 Input: melfas_mip4 - add product_id sysfs attribute
Add product_id sysfs attribute and update protocol version to support it.

Signed-off-by: Sangwon Jee <jeesw@melfas.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-21 15:38:55 -07:00
Dmitry Torokhov
4a7126a25b Merge tag 'v4.8' into next
Sync up with mainline to bring in I2C host notify changes and other
updates.
2016-10-13 17:25:40 -07:00
Marcos Paulo de Souza
930e19248e Input: i8042 - skip selftest on ASUS laptops
On suspend/resume cycle, selftest is executed to reset i8042 controller.
But when this is done in Asus devices, subsequent calls to detect/init
functions to elantech driver fails. Skipping selftest fixes this problem.

An easier step to reproduce this problem is adding i8042.reset=1 as a
kernel parameter. On Asus laptops, it'll make the system to start with the
touchpad already stuck, since psmouse_probe forcibly calls the selftest
function.

This patch was inspired by John Hiesey's change[1], but, since this problem
affects a lot of models of Asus, let's avoid running selftests on them.

All models affected by this problem:
A455LD
K401LB
K501LB
K501LX
R409L
V502LX
X302LA
X450LCP
X450LD
X455LAB
X455LDB
X455LF
Z450LA

[1]: https://marc.info/?l=linux-input&m=144312209020616&w=2

Fixes: "ETPS/2 Elantech Touchpad dies after resume from suspend"
(https://bugzilla.kernel.org/show_bug.cgi?id=107971)

Signed-off-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-11 16:58:25 -07:00
Sangwon Jee
4e1bff07d7 Input: melfas_mip4 - add ic_name sysfs attribute
Add ic_name sysfs attribute for retrieving IC model name.

Signed-off-by: Sangwon Jee <jeesw@melfas.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-11 16:58:24 -07:00
Sangwon Jee
ff43f433e0 Input: melfas_mip4 - add maintainer information
Add maintainer information.

Signed-off-by: Sangwon Jee <jeesw@melfas.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-07 16:30:14 -07:00
Sangwon Jee
e687abfe9d Input: melfas_mip4 - add devicetree binding documentations
Add devicetree binding documentations.

Signed-off-by: Sangwon Jee <jeesw@melfas.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-07 16:30:13 -07:00
Dmitry Torokhov
62837b3c1a Input: elantech - add Fujitsu Lifebook E556 to force crc_enabled
Another Lifebook machine that needs the same quirk as other similar
models to make the driver working.

Also let's reorder elantech_dmi_force_crc_enabled list so LIfebook enries
are in alphabetical order.

Reported-by: William Linna <william.linna@gmail.com>
Tested-by: William Linna <william.linna@gmail.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-07 16:30:12 -07:00
Guenter Roeck
261d7794c4 Input: synaptics-rmi4 - fix error handling in I2C transport driver
Instantiating the rmi4 I2C transport driver without interrupts assigned
(for example using manual i2c instantiation from the command line)
caused the driver to fail to load, but it does not clean up its regulator
or transport device registrations. Result is a crash at a later time,
for example when rebooting the system.

Fixes: 946c8432aa ("Input: synaptics-rmi4 - support regulator supplies")
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-04 11:52:24 -07:00
Guenter Roeck
bbc2ceeb32 Input: synaptics-rmi4 - fix error handling in SPI transport driver
Instantiating the rmi4 SPI transport driver without an interrupt assigned
caused the driver to fail to load, but it does not clean up its transport
device registration. Result may be a crash at a later time, for example
when rebooting the system.

Fixes: 8d99758dee ("Input: synaptics-rmi4 - add SPI transport driver")
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-04 11:52:23 -07:00
Ben Gamari
574a62c93a Input: ALPS - add V8 protocol documentation
Tested-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Ben Gamari <ben@smart-cactus.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-04 11:47:02 -07:00
Ben Gamari
aeaa881f9b Input: ALPS - set DualPoint flag for 74 03 28 devices
Here we introduce logic in alps_identify to set the ALPS_DUALPOINT flag
for touchpad hardware responding to E7 report with 73 03 28, as is found
in the Dell Latitude E7470.

Tested-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Ben Gamari <ben@smart-cactus.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-04 11:47:01 -07:00
Ben Gamari
7ad8a1067d Input: ALPS - allow touchsticks to report pressure
The SS5 hardware can report this.

Tested-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Ben Gamari <ben@smart-cactus.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2016-10-04 11:46:54 -07:00