linux/drivers/input/rmi4
Dmitry Torokhov 6abe534f07 Input: synaptics-rmi4 - unmask F03 interrupts when port is opened
Currently we register the pass-through serio port when we probe the F03 RMI
function, and then, in sensor configure phase, we unmask interrupts.
Unfortunately this is too late, as other drivers are free probe devices
attached to the serio port as soon as it is probed. Because interrupts are
masked, the IO times out, which may result in not being able to detect
trackpoints on the pass-through port.

To fix the issue we implement open() and close() methods for the
pass-through serio port and unmask interrupts from there. We also move
creation of the pass-through port form probe to configure stage, as RMI
driver does not enable transport interrupt until all functions are probed
(we should change this, but this is a separate topic).

We also try to clear the pending data before unmasking interrupts, because
some devices like to spam the system with multiple 0xaa 0x00 announcements,
which may interfere with us trying to query ID of the device.

Fixes: c5e8848fc9 ("Input: synaptics-rmi4 - add support for F03")
Cc: stable@vger.kernel.org
Reviewed-by: Lyude Paul <lyude@redhat.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2018-01-22 16:27:31 -08:00
..
Kconfig Merge branch 'next' into for-linus 2017-02-20 15:16:02 -08:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rmi_2d_sensor.c Input: synaptics-rmi4 - correctly swap clip values if axes are swapped 2017-01-15 15:41:00 -08:00
rmi_2d_sensor.h Input: synaptics-rmi4 - add parameters for dribble packets and palm detect gesture 2016-11-08 17:12:07 -08:00
rmi_bus.c Input: synaptics_rmi4 - remove unneeded MODULE_VERSION() usage 2018-01-16 16:48:20 -08:00
rmi_bus.h Input: synaptics-rmi4 - add SMBus support 2016-11-08 17:12:10 -08:00
rmi_driver.c Input: synaptics-rmi4 - do not delete interrupt memory too early 2018-01-22 16:27:22 -08:00
rmi_driver.h Input: synaptics_rmi4 - remove unneeded MODULE_VERSION() usage 2018-01-16 16:48:20 -08:00
rmi_f01.c Merge branch 'bind_unbind' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core into next 2017-07-24 16:51:18 -07:00
rmi_f03.c Input: synaptics-rmi4 - unmask F03 interrupts when port is opened 2018-01-22 16:27:31 -08:00
rmi_f11.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2016-12-17 16:45:00 -08:00
rmi_f12.c Input: synaptics-rmi4 - change F12 clip to inactive border debug 2017-04-14 14:52:31 -07:00
rmi_f30.c Input: synaptics-rmi4 - limit the range of what GPIOs are buttons 2017-10-27 15:15:59 -07:00
rmi_f34.c Input: synaptic_rmi4 - remove duplicate include in F34 2018-01-05 09:29:09 -08:00
rmi_f34.h Input: synaptics-rmi4 - enable IRQ operation in F34 V7 2017-04-14 14:52:32 -07:00
rmi_f34v7.c Input: synaptics-rmi4 - use %phN to form F34 configuration ID 2017-06-01 22:11:23 -07:00
rmi_f54.c Input: synaptics-rmi4 - make array rmi_f54_report_type_names static 2017-10-09 20:53:36 -07:00
rmi_f55.c Input: synaptics-rmi4 - propagate correct number of rx and tx electrodes to F54 2016-11-22 17:59:25 -08:00
rmi_i2c.c Input: synaptics_rmi4 - remove unneeded MODULE_VERSION() usage 2018-01-16 16:48:20 -08:00
rmi_smbus.c Input: synaptics-rmi4 - when registering sensors do not call them "drivers" 2017-04-03 16:24:00 -07:00
rmi_spi.c Input: synaptics_rmi4 - remove unneeded MODULE_VERSION() usage 2018-01-16 16:48:20 -08:00