Skip to content

Commit 9fb6bf0

Browse files
bentissJiri Kosina
authored andcommitted
HID: rmi: introduce RMI driver for Synaptics touchpads
This driver add support for RMI4 over USB or I2C. The current state is that it uses its own RMI4 implementation, but once RMI4 is merged upstream, the driver will be a transport driver for the RMI4 library. Part of this driver should be considered as temporary. Most of the RMI4 processing and input handling will be deleted at some point. I based my work on Andrew's regarding its port of RMI4 over HID (see https://github.com/mightybigcar/synaptics-rmi4/tree/rmihid ) This repo presents how the driver may looks like at the end: https://github.com/mightybigcar/synaptics-rmi4/blob/rmihid/drivers/input/rmi4/rmi_hid.c Without this temporary solution, the workaround we gave to users is to disable i2c-hid, which leads to disabling the touchscreen on the XPS 11 and 12 (Haswell generation). Related bugs: https://bugzilla.redhat.com/show_bug.cgi?id=1048314 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1218973 Signed-off-by: Andrew Duggan <[email protected]> Signed-off-by: Benjamin Tissoires <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
1 parent 0f1b1e6 commit 9fb6bf0

File tree

5 files changed

+902
-0
lines changed

5 files changed

+902
-0
lines changed

drivers/hid/Kconfig

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -657,6 +657,14 @@ config HID_SUNPLUS
657657
---help---
658658
Support for Sunplus wireless desktop.
659659

660+
config HID_RMI
661+
tristate "Synaptics RMI4 device support"
662+
depends on HID
663+
---help---
664+
Support for Synaptics RMI4 touchpads.
665+
Say Y here if you have a Synaptics RMI4 touchpads over i2c-hid or usbhid
666+
and want support for its special functionalities.
667+
660668
config HID_GREENASIA
661669
tristate "GreenAsia (Product ID 0x12) game controller support"
662670
depends on HID

drivers/hid/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ obj-$(CONFIG_HID_ROCCAT) += hid-roccat.o hid-roccat-common.o \
9797
hid-roccat-arvo.o hid-roccat-isku.o hid-roccat-kone.o \
9898
hid-roccat-koneplus.o hid-roccat-konepure.o hid-roccat-kovaplus.o \
9999
hid-roccat-lua.o hid-roccat-pyra.o hid-roccat-ryos.o hid-roccat-savu.o
100+
obj-$(CONFIG_HID_RMI) += hid-rmi.o
100101
obj-$(CONFIG_HID_SAITEK) += hid-saitek.o
101102
obj-$(CONFIG_HID_SAMSUNG) += hid-samsung.o
102103
obj-$(CONFIG_HID_SMARTJOYPLUS) += hid-sjoy.o

drivers/hid/hid-core.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1882,6 +1882,8 @@ static const struct hid_device_id hid_have_special_driver[] = {
18821882
{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGP_MOUSE) },
18831883
{ HID_USB_DEVICE(USB_VENDOR_ID_STEELSERIES, USB_DEVICE_ID_STEELSERIES_SRWS1) },
18841884
{ HID_USB_DEVICE(USB_VENDOR_ID_SUNPLUS, USB_DEVICE_ID_SUNPLUS_WDESKTOP) },
1885+
{ HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, HID_ANY_ID) },
1886+
{ HID_I2C_DEVICE(USB_VENDOR_ID_SYNAPTICS, HID_ANY_ID) },
18851887
{ HID_USB_DEVICE(USB_VENDOR_ID_THINGM, USB_DEVICE_ID_BLINK1) },
18861888
{ HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb300) },
18871889
{ HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb304) },

0 commit comments

Comments
 (0)