Update v5.4 patches

Changes:
 - SAM:
   - Merge keyboard and HID driver into single module
   - Restructure DTX user-space interface
   - Add DTX support for Surface Book 3
   - Continued cleanup and misc. fixes

 - other:
   - Add patch to fix boot problems on the Surface Go series

Links:
- SAM: bfef4ac6f8
- kernel: 2bf85a4170
This commit is contained in:
Maximilian Luz 2020-10-16 19:35:39 +02:00
parent b42ff37372
commit d0b1e651ba
No known key found for this signature in database
GPG key ID: 70EC0937F6C26F02
9 changed files with 1536 additions and 1096 deletions

View file

@ -12,7 +12,6 @@ CONFIG_SURFACE_BATTERY=m
CONFIG_SURFACE_DTX=m
CONFIG_SURFACE_HID=m
CONFIG_SURFACE_HOTPLUG=m
CONFIG_SURFACE_KEYBOARD=m
CONFIG_SURFACE_PERFMODE=m
#

View file

@ -1,7 +1,7 @@
From 1a4864ceb034b562b4628cbf69f96025fe61498e Mon Sep 17 00:00:00 2001
From cea7d9a2a9272d208417165c2931bd18e7728b60 Mon Sep 17 00:00:00 2001
From: qzed <qzed@users.noreply.github.com>
Date: Tue, 17 Sep 2019 17:17:56 +0200
Subject: [PATCH 1/7] surface3-power
Subject: [PATCH 1/8] surface3-power
---
drivers/platform/x86/Kconfig | 7 +
@ -11,10 +11,10 @@ Subject: [PATCH 1/7] surface3-power
create mode 100644 drivers/platform/x86/surface3_power.c
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index 1cab99320514..348c795019fa 100644
index 000d5693fae7..56b1cf96ff57 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -1209,6 +1209,13 @@ config SURFACE_3_BUTTON
@@ -1210,6 +1210,13 @@ config SURFACE_3_BUTTON
---help---
This driver handles the power/home/volume buttons on the Microsoft Surface 3 tablet.

View file

@ -1,7 +1,7 @@
From 96d000383cb1ed320a0aaaf584e1e8d7a9600d70 Mon Sep 17 00:00:00 2001
From a0bb18b7b173214237fd0d459979ec6204e350d8 Mon Sep 17 00:00:00 2001
From: Chih-Wei Huang <cwhuang@linux.org.tw>
Date: Tue, 18 Sep 2018 11:01:37 +0800
Subject: [PATCH 2/7] surface3-oemb
Subject: [PATCH 2/8] surface3-oemb
---
drivers/platform/x86/surface3-wmi.c | 7 +++++++

View file

@ -1,7 +1,7 @@
From efb05978b88476658030f3df4bc4fccf5412d0a3 Mon Sep 17 00:00:00 2001
From 3c7c2507efd9b6598e440097e068354292cc5566 Mon Sep 17 00:00:00 2001
From: kitakar5525 <34676735+kitakar5525@users.noreply.github.com>
Date: Thu, 20 Feb 2020 16:51:11 +0900
Subject: [PATCH 3/7] wifi
Subject: [PATCH 3/8] wifi
---
drivers/net/wireless/marvell/mwifiex/Makefile | 1 +

View file

@ -1,7 +1,7 @@
From 36b4d65d6e3d0d57b3d718d6d771697374d7333e Mon Sep 17 00:00:00 2001
From 5f39b676103581dcfa4702ea3f921729c4c9a982 Mon Sep 17 00:00:00 2001
From: Dorian Stoll <dorian.stoll@tmsp.io>
Date: Mon, 27 Jan 2020 21:16:20 +0100
Subject: [PATCH 4/7] ipts
Subject: [PATCH 4/8] ipts
---
drivers/input/touchscreen/Kconfig | 2 +

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,7 @@
From b69e689ae47f7f4059ef86a55bcc1dfe7511770d Mon Sep 17 00:00:00 2001
From a813aa2d1afcf8c4ca1eb6c200d6bb847da547ac Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Sat, 25 Jul 2020 17:19:53 +0200
Subject: [PATCH 6/7] surface-sam-over-hid
Subject: [PATCH 6/8] surface-sam-over-hid
---
drivers/i2c/i2c-core-acpi.c | 35 +++++++
@ -65,10 +65,10 @@ index ce70b5288472..5df647c4d9a5 100644
dev_warn(&adapter->dev, "protocol 0x%02x not supported for client 0x%02x\n",
accessor_type, client->addr);
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index 348c795019fa..5495e3702f65 100644
index 56b1cf96ff57..9fc01f255cbf 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -1216,6 +1216,13 @@ config SURFACE_3_POWER_OPREGION
@@ -1217,6 +1217,13 @@ config SURFACE_3_POWER_OPREGION
Select this option to enable support for ACPI operation
region of the Surface 3 battery platform driver.

View file

@ -1,7 +1,7 @@
From 144eaf2cde36eeb9b24659205dd363a00116dc82 Mon Sep 17 00:00:00 2001
From f2720bcc54e287b7c7158e9b57553720ed9eab3b Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximilian@gmail.com>
Date: Sun, 16 Aug 2020 23:39:56 +0200
Subject: [PATCH 7/7] surface-gpe
Subject: [PATCH 7/8] surface-gpe
---
drivers/platform/x86/Kconfig | 9 +
@ -11,10 +11,10 @@ Subject: [PATCH 7/7] surface-gpe
create mode 100644 drivers/platform/x86/surface_gpe.c
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index 5495e3702f65..e0af35fed2d5 100644
index 9fc01f255cbf..f5623ec8eda5 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -1223,6 +1223,15 @@ config SURFACE_BOOK1_DGPU_SWITCH
@@ -1224,6 +1224,15 @@ config SURFACE_BOOK1_DGPU_SWITCH
This driver provides a sysfs switch to set the power-state of the
discrete GPU found on the Microsoft Surface Book 1.

View file

@ -0,0 +1,70 @@
From c7cd4ee28f95e353406fdb98ffcb168974ecf638 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Wed, 14 Oct 2020 16:41:58 +0200
Subject: [PATCH 8/8] i2c: core: Restore acpi_walk_dep_device_list() getting
called after registering the ACPI i2c devs
Commit 21653a4181ff ("i2c: core: Call i2c_acpi_install_space_handler()
before i2c_acpi_register_devices()")'s intention was to only move the
acpi_install_address_space_handler() call to the point before where
the ACPI declared i2c-children of the adapter where instantiated by
i2c_acpi_register_devices().
But i2c_acpi_install_space_handler() had a call to
acpi_walk_dep_device_list() hidden (that is I missed it) at the end
of it, so as an unwanted side-effect now acpi_walk_dep_device_list()
was also being called before i2c_acpi_register_devices().
Move the acpi_walk_dep_device_list() call to the end of
i2c_acpi_register_devices(), so that it is once again called *after*
the i2c_client-s hanging of the adapter have been created.
This fixes the Microsoft Surface Go 2 hanging at boot.
Fixes: 21653a4181ff ("i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices()")
Suggested-by: Maximilian Luz <luzmaximilian@gmail.com>
Reported-and-tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/i2c/i2c-core-acpi.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
index 5df647c4d9a5..1c90651161a6 100644
--- a/drivers/i2c/i2c-core-acpi.c
+++ b/drivers/i2c/i2c-core-acpi.c
@@ -264,6 +264,7 @@ static acpi_status i2c_acpi_add_device(acpi_handle handle, u32 level,
void i2c_acpi_register_devices(struct i2c_adapter *adap)
{
acpi_status status;
+ acpi_handle handle;
if (!has_acpi_companion(&adap->dev))
return;
@@ -274,6 +275,15 @@ void i2c_acpi_register_devices(struct i2c_adapter *adap)
adap, NULL);
if (ACPI_FAILURE(status))
dev_warn(&adap->dev, "failed to enumerate I2C slaves\n");
+
+ if (!adap->dev.parent)
+ return;
+
+ handle = ACPI_HANDLE(adap->dev.parent);
+ if (!handle)
+ return;
+
+ acpi_walk_dep_device_list(handle);
}
const struct acpi_device_id *
@@ -772,7 +782,6 @@ int i2c_acpi_install_space_handler(struct i2c_adapter *adapter)
return -ENOMEM;
}
- acpi_walk_dep_device_list(handle);
return 0;
}
--
2.28.0