Skip to content

[RFC] system/easy-kernel: fix support for X1C7 touchpad

Max Rees requested to merge fix/x1c7-touchpad into master

This is mostly intended as a tracker for X1C7 touchpad support; it will probably be superseded by other Kconfig changes expected for x86_64 and pmmx.

Based on lengthy discussions with a user on our IRC support channel, it seems the changes for x86_64 in this MR are the bare minimum to get it working. Without the following Kconfigs, dmesg will not output anything helpful:

RMI4_I2C
RMI4_SMB
I2C_DESIGNWARE_PLATFORM
I2C_DESIGNWARE_PCI

And without the PINCTRL_CANNONLAKE config, dmesg will report:

[   95.611013] i2c_hid i2c-SYNA8004:00: HID over i2c has not been provided an Int IRQ
[   95.611032] i2c_hid: probe of i2c-SYNA8004:00 failed with error -22

Other changes that might need to be made:

  • A quirk adding psmouse.synaptics_intertouch=1 to the kernel commandline
  • Changing CONFIG_HID to be a module:
--- system/easy-kernel/config-x86_64	2020-05-28 18:28:25.390338318 -0500
+++ system/easy-kernel/config-x86_64.new	2020-05-28 18:35:41.690342990 -0500
@@ -5678,28 +5678,28 @@
 #
 # HID support
 #
-CONFIG_HID=y
+CONFIG_HID=m
 CONFIG_HID_BATTERY_STRENGTH=y
 CONFIG_HIDRAW=y
 CONFIG_UHID=m
-CONFIG_HID_GENERIC=y
+CONFIG_HID_GENERIC=m
 
 #
 # Special HID drivers
 #
-CONFIG_HID_A4TECH=y
+CONFIG_HID_A4TECH=m
 CONFIG_HID_ACCUTOUCH=m
 CONFIG_HID_ACRUX=m
 CONFIG_HID_ACRUX_FF=y
-CONFIG_HID_APPLE=y
+CONFIG_HID_APPLE=m
 CONFIG_HID_APPLEIR=m
 CONFIG_HID_ASUS=m
 CONFIG_HID_AUREAL=m
-CONFIG_HID_BELKIN=y
+CONFIG_HID_BELKIN=m
 CONFIG_HID_BETOP_FF=m
 # CONFIG_HID_BIGBEN_FF is not set
-CONFIG_HID_CHERRY=y
-CONFIG_HID_CHICONY=y
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
 CONFIG_HID_CORSAIR=m
 # CONFIG_HID_COUGAR is not set
 # CONFIG_HID_MACALLY is not set
@@ -5707,14 +5707,14 @@
 CONFIG_HID_CMEDIA=m
 # CONFIG_HID_CP2112 is not set
 # CONFIG_HID_CREATIVE_SB0540 is not set
-CONFIG_HID_CYPRESS=y
+CONFIG_HID_CYPRESS=m
 CONFIG_HID_DRAGONRISE=m
 CONFIG_DRAGONRISE_FF=y
 CONFIG_HID_EMS_FF=m
 # CONFIG_HID_ELAN is not set
 CONFIG_HID_ELECOM=m
 CONFIG_HID_ELO=m
-CONFIG_HID_EZKEY=y
+CONFIG_HID_EZKEY=m
 CONFIG_HID_GEMBIRD=m
 CONFIG_HID_GFRM=m
 CONFIG_HID_HOLTEK=m
@@ -5727,14 +5727,14 @@
 # CONFIG_HID_VIEWSONIC is not set
 CONFIG_HID_GYRATION=m
 CONFIG_HID_ICADE=m
-CONFIG_HID_ITE=y
+CONFIG_HID_ITE=m
 # CONFIG_HID_JABRA is not set
 CONFIG_HID_TWINHAN=m
-CONFIG_HID_KENSINGTON=y
+CONFIG_HID_KENSINGTON=m
 CONFIG_HID_LCPOWER=m
 CONFIG_HID_LED=m
 CONFIG_HID_LENOVO=m
-CONFIG_HID_LOGITECH=y
+CONFIG_HID_LOGITECH=m
 # CONFIG_HID_LOGITECH_DJ is not set
 CONFIG_HID_LOGITECH_HIDPP=m
 CONFIG_LOGITECH_FF=y
@@ -5745,8 +5745,8 @@
 # CONFIG_HID_MALTRON is not set
 CONFIG_HID_MAYFLASH=m
 # CONFIG_HID_REDRAGON is not set
-CONFIG_HID_MICROSOFT=y
-CONFIG_HID_MONTEREY=y
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
 CONFIG_HID_MULTITOUCH=m
 CONFIG_HID_NTI=m
 CONFIG_HID_NTRIG=m
@@ -5800,9 +5800,16 @@
 #
 # USB HID support
 #
-CONFIG_USB_HID=y
+CONFIG_USB_HID=m
 # CONFIG_HID_PID is not set
 CONFIG_USB_HIDDEV=y
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# CONFIG_USB_MOUSE is not set
+# end of USB HID Boot Protocol drivers
 # end of USB HID support
 
 #
Edited by Max Rees

Merge request reports