Input: psmouse - add support for SMBus companions
authorBenjamin Tissoires <benjamin.tissoires@redhat.com>
Thu, 2 Mar 2017 18:48:23 +0000 (10:48 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 25 Mar 2017 17:37:29 +0000 (10:37 -0700)
commit8eb92e5c91338eb19f86ffb2232258337ebf905b
tree2945e2b7f324c0a3d8da4aebefa27b145ffb7d6f
parentc774326a219536ab615d68a22875673f6f608b62
Input: psmouse - add support for SMBus companions

This provides glue between PS/2 devices that enumerate the RMI4 devices
and Elan touchpads to the RMI4 (or Elan) SMBus driver.

The SMBus devices keep their PS/2 connection alive. If the initialization
process goes too far (psmouse_activate called), the device disconnects
from the I2C bus and stays on the PS/2 bus, that is why we explicitly
disable PS/2 device reporting (by calling psmouse_deactivate) before
trying to register SMBus companion device.

The HID over I2C devices are enumerated through the ACPI DSDT, and
their PS/2 device also exports the InterTouch bit in the extended
capability 0x0C. However, the firmware keeps its I2C connection open
even after going further in the PS/2 initialization. We don't need
to take extra precautions with those device, especially because they
block their PS/2 communication when HID over I2C is used.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/mouse/Kconfig
drivers/input/mouse/Makefile
drivers/input/mouse/psmouse-base.c
drivers/input/mouse/psmouse-smbus.c [new file with mode: 0644]
drivers/input/mouse/psmouse.h