And for those who have the Synaptics touchpad, I've found a way to make the touchpad almost work. You can apply the following patch which will make kernel use hid-rmi handle the device without blacklisting hid-mulitouch,
One left issue is the single clicking is not sensitive enough. I need to let my finger linger on the touchpad for a while (like 0.5s). I'll send the patches upstream after fixing this issue.
And for those who have the Synaptics touchpad, I've found a way to make the touchpad almost work. You can apply the following patch which will make kernel use hid-rmi handle the device without blacklisting hid-mulitouch,
diff --git a/drivers/ hid/hid- ids.h b/drivers/ hid/hid- ids.h .9984e31c8914 100644 hid/hid- ids.h hid/hid- ids.h
index a8e3b2796be8.
--- a/drivers/
+++ b/drivers/
@@ -1102,6 +1102,7 @@
#define I2C_VENDOR_ ID_SYNAPTICS 0x06cb ID_SYNAPTICS_ SYNA2393 0x7a13 ID_SYNAPTICS_ SYNA7f28 0x7f28
#define I2C_PRODUCT_
+#define I2C_PRODUCT_
#define USB_VENDOR_ ID_SYNAPTICS 0x06cb ID_SYNAPTICS_ TP 0x0001 hid/hid- quirks. c b/drivers/ hid/hid- quirks. c .a11366f6ccd8 100644 hid/hid- quirks. c hid/hid- quirks. c special_ driver[ ] = { DEVICE( USB_VENDOR_ ID_LENOVO, USB_DEVICE_ ID_LENOVO_ X1_COVER) }, DEVICE( USB_VENDOR_ ID_RAZER, USB_DEVICE_ ID_RAZER_ BLADE_14) }, DEVICE( USB_VENDOR_ ID_PRIMAX, USB_DEVICE_ ID_PRIMAX_ REZEL) }, DEVICE( I2C_VENDOR_ ID_SYNAPTICS, I2C_PRODUCT_ ID_SYNAPTICS_ SYNA7f28) }, CONFIG_ HID_ROCCAT) DEVICE( USB_VENDOR_ ID_ROCCAT, USB_DEVICE_ ID_ROCCAT_ ARVO) }, hid/hid- rmi.c b/drivers/ hid/hid- rmi.c .e74b54f1b0c4 100644 hid/hid- rmi.c hid/hid- rmi.c DEVICE( USB_VENDOR_ ID_PRIMAX, USB_DEVICE_ ID_PRIMAX_ REZEL) }, DEVICE( USB_VENDOR_ ID_SYNAPTICS, USB_DEVICE_ ID_SYNAPTICS_ ACER_SWITCH5) ,
.driver_ data = RMI_DEVICE_ OUTPUT_ SET_REPORT }, DEVICE( I2C_VENDOR_ ID_SYNAPTICS, I2C_PRODUCT_ ID_SYNAPTICS_ SYNA7f28) }, HID_BUS_ ANY, HID_GROUP_RMI, HID_ANY_ID, HID_ANY_ID) },
#define USB_DEVICE_
diff --git a/drivers/
index a65aef6a322f.
--- a/drivers/
+++ b/drivers/
@@ -568,6 +568,7 @@ static const struct hid_device_id hid_have_
{ HID_USB_
{ HID_USB_
{ HID_USB_
+ { HID_I2C_
#endif
#if IS_ENABLED(
{ HID_USB_
diff --git a/drivers/
index 7f41213d5ae3.
--- a/drivers/
+++ b/drivers/
@@ -759,6 +759,7 @@ static const struct hid_device_id rmi_id[] = {
{ HID_USB_
{ HID_USB_
+ { HID_I2C_
{ HID_DEVICE(
{ }
};
One left issue is the single clicking is not sensitive enough. I need to let my finger linger on the touchpad for a while (like 0.5s). I'll send the patches upstream after fixing this issue.