From 3af97a345bc078cea979e2406cf1990ef6ef0ded Mon Sep 17 00:00:00 2001 From: Gabriel Ebner Date: Mon, 28 Aug 2017 23:31:53 +0200 Subject: [PATCH] petalius: fix touchpad --- len0073.patch | 25 +++++++++++++++++++++++++ petalius.nix | 12 ++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 len0073.patch diff --git a/len0073.patch b/len0073.patch new file mode 100644 index 0000000..d87594d --- /dev/null +++ b/len0073.patch @@ -0,0 +1,25 @@ +diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c +index 16c3046..ca912ce 100644 +--- a/drivers/input/mouse/synaptics.c ++++ b/drivers/input/mouse/synaptics.c +@@ -173,6 +173,7 @@ static const char * const smbus_pnp_ids[] = { + "LEN0046", /* X250 */ + "LEN004a", /* W541 */ + "LEN200f", /* T450s */ ++ "LEN0073", /* X1 Carbon 5 (Elantech) */ + NULL + }; + +diff --git a/drivers/input/rmi4/rmi_smbus.c b/drivers/input/rmi4/rmi_smbus.c +index 225025a..2939a2f 100644 +--- a/drivers/input/rmi4/rmi_smbus.c ++++ b/drivers/input/rmi4/rmi_smbus.c +@@ -322,7 +322,7 @@ static int rmi_smb_probe(struct i2c_client *client, + rmi_dbg(RMI_DEBUG_XPORT, &client->dev, "Smbus version is %d", + smbus_version); + +- if (smbus_version != 2) { ++ if (smbus_version != 2 && smbus_version != 3) { + dev_err(&client->dev, "Unrecognized SMB version %d\n", + smbus_version); + return -ENODEV; diff --git a/petalius.nix b/petalius.nix index 23c0d92..27e8fff 100644 --- a/petalius.nix +++ b/petalius.nix @@ -64,6 +64,18 @@ #virtualisation.virtualbox.host.enable = true; # boot.kernelPackages = pkgs.lib.mkOverride 10 pkgs.linuxPackages; + boot.kernelPatches = [ + { patch = ./len0073.patch; name = "len0073"; } + ]; + boot.kernelParams = [ + # "psmouse.synaptics_intertouch=1" + "psmouse.proto=imps" + ]; + boot.kernelModules = [ + "rmi_smbus" + "i2c_hid" + "psmouse" + ]; # time.timeZone = pkgs.lib.mkOverride 10 "Europe/London";