Comment 81 for bug 1887190

Revision history for this message
Coiby Xu (coiby) wrote :

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
index a8e3b2796be8..9984e31c8914 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -1102,6 +1102,7 @@

 #define I2C_VENDOR_ID_SYNAPTICS 0x06cb
 #define I2C_PRODUCT_ID_SYNAPTICS_SYNA2393 0x7a13
+#define I2C_PRODUCT_ID_SYNAPTICS_SYNA7f28 0x7f28

 #define USB_VENDOR_ID_SYNAPTICS 0x06cb
 #define USB_DEVICE_ID_SYNAPTICS_TP 0x0001
diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
index a65aef6a322f..a11366f6ccd8 100644
--- a/drivers/hid/hid-quirks.c
+++ b/drivers/hid/hid-quirks.c
@@ -568,6 +568,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
        { HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_X1_COVER) },
        { HID_USB_DEVICE(USB_VENDOR_ID_RAZER, USB_DEVICE_ID_RAZER_BLADE_14) },
        { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_REZEL) },
+ { HID_I2C_DEVICE(I2C_VENDOR_ID_SYNAPTICS, I2C_PRODUCT_ID_SYNAPTICS_SYNA7f28) },
 #endif
 #if IS_ENABLED(CONFIG_HID_ROCCAT)
        { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_ARVO) },
diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
index 7f41213d5ae3..e74b54f1b0c4 100644
--- a/drivers/hid/hid-rmi.c
+++ b/drivers/hid/hid-rmi.c
@@ -759,6 +759,7 @@ static const struct hid_device_id rmi_id[] = {
        { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_REZEL) },
        { HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5),
                .driver_data = RMI_DEVICE_OUTPUT_SET_REPORT },
+ { HID_I2C_DEVICE(I2C_VENDOR_ID_SYNAPTICS, I2C_PRODUCT_ID_SYNAPTICS_SYNA7f28) },
        { HID_DEVICE(HID_BUS_ANY, HID_GROUP_RMI, HID_ANY_ID, HID_ANY_ID) },
        { }
 };

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.