Update v5.4 patches
Changes: - SAM: - Update DTX driver state after resume. - Add DTX Documentation, misc. fixes, and cleanup. Links: - SAM:af4bb01042
- kernel:857c9b5da9
This commit is contained in:
parent
3d9db379b4
commit
bc7af3a34d
|
@ -1,8 +1,10 @@
|
||||||
From cea7d9a2a9272d208417165c2931bd18e7728b60 Mon Sep 17 00:00:00 2001
|
From 34fd11b0f32b5c15987dabbb7fcf6590341bd62c Mon Sep 17 00:00:00 2001
|
||||||
From: qzed <qzed@users.noreply.github.com>
|
From: qzed <qzed@users.noreply.github.com>
|
||||||
Date: Tue, 17 Sep 2019 17:17:56 +0200
|
Date: Tue, 17 Sep 2019 17:17:56 +0200
|
||||||
Subject: [PATCH 1/8] surface3-power
|
Subject: [PATCH] platform/x86: Surface 3 battery platform operation region
|
||||||
|
support
|
||||||
|
|
||||||
|
Patchset: surface3-power
|
||||||
---
|
---
|
||||||
drivers/platform/x86/Kconfig | 7 +
|
drivers/platform/x86/Kconfig | 7 +
|
||||||
drivers/platform/x86/Makefile | 1 +
|
drivers/platform/x86/Makefile | 1 +
|
||||||
|
|
|
@ -1,8 +1,38 @@
|
||||||
From a0bb18b7b173214237fd0d459979ec6204e350d8 Mon Sep 17 00:00:00 2001
|
From afc394c0540ca91a9ee31c84c500a90d82cf34ac Mon Sep 17 00:00:00 2001
|
||||||
From: Chih-Wei Huang <cwhuang@linux.org.tw>
|
From: Tsuchiya Yuto <kitakar@gmail.com>
|
||||||
Date: Tue, 18 Sep 2018 11:01:37 +0800
|
Date: Sun, 18 Oct 2020 16:42:44 +0900
|
||||||
Subject: [PATCH 2/8] surface3-oemb
|
Subject: [PATCH] (surface3-oemb) add DMI matches for Surface 3 with broken DMI
|
||||||
|
table
|
||||||
|
|
||||||
|
On some Surface 3, the DMI table gets corrupted for unknown reasons
|
||||||
|
and breaks existing DMI matching used for device-specific quirks.
|
||||||
|
|
||||||
|
This commit adds the (broken) DMI data into dmi_system_id tables used
|
||||||
|
for quirks so that each driver can enable quirks even on the affected
|
||||||
|
systems.
|
||||||
|
|
||||||
|
On affected systems, DMI data will look like this:
|
||||||
|
$ grep . /sys/devices/virtual/dmi/id/{bios_vendor,board_name,board_vendor,\
|
||||||
|
chassis_vendor,product_name,sys_vendor}
|
||||||
|
/sys/devices/virtual/dmi/id/bios_vendor:American Megatrends Inc.
|
||||||
|
/sys/devices/virtual/dmi/id/board_name:OEMB
|
||||||
|
/sys/devices/virtual/dmi/id/board_vendor:OEMB
|
||||||
|
/sys/devices/virtual/dmi/id/chassis_vendor:OEMB
|
||||||
|
/sys/devices/virtual/dmi/id/product_name:OEMB
|
||||||
|
/sys/devices/virtual/dmi/id/sys_vendor:OEMB
|
||||||
|
|
||||||
|
Expected:
|
||||||
|
$ grep . /sys/devices/virtual/dmi/id/{bios_vendor,board_name,board_vendor,\
|
||||||
|
chassis_vendor,product_name,sys_vendor}
|
||||||
|
/sys/devices/virtual/dmi/id/bios_vendor:American Megatrends Inc.
|
||||||
|
/sys/devices/virtual/dmi/id/board_name:Surface 3
|
||||||
|
/sys/devices/virtual/dmi/id/board_vendor:Microsoft Corporation
|
||||||
|
/sys/devices/virtual/dmi/id/chassis_vendor:Microsoft Corporation
|
||||||
|
/sys/devices/virtual/dmi/id/product_name:Surface 3
|
||||||
|
/sys/devices/virtual/dmi/id/sys_vendor:Microsoft Corporation
|
||||||
|
|
||||||
|
Signed-off-by: Tsuchiya Yuto <kitakar@gmail.com>
|
||||||
|
Patchset: surface3-oemb
|
||||||
---
|
---
|
||||||
drivers/platform/x86/surface3-wmi.c | 7 +++++++
|
drivers/platform/x86/surface3-wmi.c | 7 +++++++
|
||||||
sound/soc/codecs/rt5645.c | 9 +++++++++
|
sound/soc/codecs/rt5645.c | 9 +++++++++
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,8 +1,91 @@
|
||||||
From 5f39b676103581dcfa4702ea3f921729c4c9a982 Mon Sep 17 00:00:00 2001
|
From 4596b258b819644d212a9f8e4d20ebc4456c187d Mon Sep 17 00:00:00 2001
|
||||||
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
||||||
Date: Mon, 27 Jan 2020 21:16:20 +0100
|
Date: Mon, 27 Jan 2020 21:16:20 +0100
|
||||||
Subject: [PATCH 4/8] ipts
|
Subject: [PATCH] mei: Add IPTS device IDs
|
||||||
|
|
||||||
|
Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
|
||||||
|
Patchset: ipts
|
||||||
|
---
|
||||||
|
drivers/misc/mei/hw-me-regs.h | 2 ++
|
||||||
|
drivers/misc/mei/pci-me.c | 2 ++
|
||||||
|
2 files changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/misc/mei/hw-me-regs.h b/drivers/misc/mei/hw-me-regs.h
|
||||||
|
index e56dc4754064..a55c61c89238 100644
|
||||||
|
--- a/drivers/misc/mei/hw-me-regs.h
|
||||||
|
+++ b/drivers/misc/mei/hw-me-regs.h
|
||||||
|
@@ -59,6 +59,7 @@
|
||||||
|
|
||||||
|
#define MEI_DEV_ID_SPT 0x9D3A /* Sunrise Point */
|
||||||
|
#define MEI_DEV_ID_SPT_2 0x9D3B /* Sunrise Point 2 */
|
||||||
|
+#define MEI_DEV_ID_SPT_4 0x9D3E /* Sunrise Point 4 (iTouch) */
|
||||||
|
#define MEI_DEV_ID_SPT_H 0xA13A /* Sunrise Point H */
|
||||||
|
#define MEI_DEV_ID_SPT_H_2 0xA13B /* Sunrise Point H 2 */
|
||||||
|
|
||||||
|
@@ -90,6 +91,7 @@
|
||||||
|
#define MEI_DEV_ID_CDF 0x18D3 /* Cedar Fork */
|
||||||
|
|
||||||
|
#define MEI_DEV_ID_ICP_LP 0x34E0 /* Ice Lake Point LP */
|
||||||
|
+#define MEI_DEV_ID_ICP_LP_4 0x34E4 /* Ice Lake Point LP 4 (iTouch) */
|
||||||
|
|
||||||
|
#define MEI_DEV_ID_TGP_LP 0xA0E0 /* Tiger Lake Point LP */
|
||||||
|
|
||||||
|
diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c
|
||||||
|
index 75ab2ffbf235..78790904d77c 100644
|
||||||
|
--- a/drivers/misc/mei/pci-me.c
|
||||||
|
+++ b/drivers/misc/mei/pci-me.c
|
||||||
|
@@ -77,6 +77,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
|
||||||
|
|
||||||
|
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT, MEI_ME_PCH8_CFG)},
|
||||||
|
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_2, MEI_ME_PCH8_CFG)},
|
||||||
|
+ {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_4, MEI_ME_PCH8_CFG)},
|
||||||
|
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H, MEI_ME_PCH8_SPS_CFG)},
|
||||||
|
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H_2, MEI_ME_PCH8_SPS_CFG)},
|
||||||
|
{MEI_PCI_DEVICE(MEI_DEV_ID_LBG, MEI_ME_PCH12_CFG)},
|
||||||
|
@@ -103,6 +104,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
|
||||||
|
{MEI_PCI_DEVICE(MEI_DEV_ID_CMP_H_3, MEI_ME_PCH8_CFG)},
|
||||||
|
|
||||||
|
{MEI_PCI_DEVICE(MEI_DEV_ID_ICP_LP, MEI_ME_PCH12_CFG)},
|
||||||
|
+ {MEI_PCI_DEVICE(MEI_DEV_ID_ICP_LP_4, MEI_ME_PCH12_CFG)},
|
||||||
|
|
||||||
|
{MEI_PCI_DEVICE(MEI_DEV_ID_TGP_LP, MEI_ME_PCH12_CFG)},
|
||||||
|
|
||||||
|
--
|
||||||
|
2.28.0
|
||||||
|
|
||||||
|
From 87fea2c77d752224b06dc4beee817fa26f2b1356 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
||||||
|
Date: Fri, 20 Dec 2019 23:15:58 +0100
|
||||||
|
Subject: [PATCH] uapi: Add MEI bus ID
|
||||||
|
|
||||||
|
Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
|
||||||
|
Patchset: ipts
|
||||||
|
---
|
||||||
|
include/uapi/linux/input.h | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h
|
||||||
|
index 9a61c28ed3ae..47fc20975245 100644
|
||||||
|
--- a/include/uapi/linux/input.h
|
||||||
|
+++ b/include/uapi/linux/input.h
|
||||||
|
@@ -271,6 +271,7 @@ struct input_mask {
|
||||||
|
#define BUS_RMI 0x1D
|
||||||
|
#define BUS_CEC 0x1E
|
||||||
|
#define BUS_INTEL_ISHTP 0x1F
|
||||||
|
+#define BUS_MEI 0x44
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MT_TOOL types
|
||||||
|
--
|
||||||
|
2.28.0
|
||||||
|
|
||||||
|
From 8c1f8a2a71c1c382d8b1606ff57a9f72cba1e5a6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
||||||
|
Date: Mon, 27 Jan 2020 21:22:42 +0100
|
||||||
|
Subject: [PATCH] input: Add support for Intel Precise Touch & Stylus
|
||||||
|
|
||||||
|
Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
|
||||||
|
Patchset: ipts
|
||||||
---
|
---
|
||||||
drivers/input/touchscreen/Kconfig | 2 +
|
drivers/input/touchscreen/Kconfig | 2 +
|
||||||
drivers/input/touchscreen/Makefile | 1 +
|
drivers/input/touchscreen/Makefile | 1 +
|
||||||
|
@ -38,10 +121,7 @@ Subject: [PATCH 4/8] ipts
|
||||||
drivers/input/touchscreen/ipts/singletouch.h | 14 +
|
drivers/input/touchscreen/ipts/singletouch.h | 14 +
|
||||||
drivers/input/touchscreen/ipts/stylus.c | 179 ++++++++++++
|
drivers/input/touchscreen/ipts/stylus.c | 179 ++++++++++++
|
||||||
drivers/input/touchscreen/ipts/stylus.h | 14 +
|
drivers/input/touchscreen/ipts/stylus.h | 14 +
|
||||||
drivers/misc/mei/hw-me-regs.h | 2 +
|
34 files changed, 1717 insertions(+)
|
||||||
drivers/misc/mei/pci-me.c | 2 +
|
|
||||||
include/uapi/linux/input.h | 1 +
|
|
||||||
37 files changed, 1722 insertions(+)
|
|
||||||
create mode 100644 drivers/input/touchscreen/ipts/Kconfig
|
create mode 100644 drivers/input/touchscreen/ipts/Kconfig
|
||||||
create mode 100644 drivers/input/touchscreen/ipts/Makefile
|
create mode 100644 drivers/input/touchscreen/ipts/Makefile
|
||||||
create mode 100644 drivers/input/touchscreen/ipts/context.h
|
create mode 100644 drivers/input/touchscreen/ipts/context.h
|
||||||
|
@ -2004,58 +2084,6 @@ index 000000000000..5b93add1eac2
|
||||||
+void ipts_stylus_free(struct ipts_context *ipts);
|
+void ipts_stylus_free(struct ipts_context *ipts);
|
||||||
+
|
+
|
||||||
+#endif /* _IPTS_STYLUS_H_ */
|
+#endif /* _IPTS_STYLUS_H_ */
|
||||||
diff --git a/drivers/misc/mei/hw-me-regs.h b/drivers/misc/mei/hw-me-regs.h
|
|
||||||
index e56dc4754064..a55c61c89238 100644
|
|
||||||
--- a/drivers/misc/mei/hw-me-regs.h
|
|
||||||
+++ b/drivers/misc/mei/hw-me-regs.h
|
|
||||||
@@ -59,6 +59,7 @@
|
|
||||||
|
|
||||||
#define MEI_DEV_ID_SPT 0x9D3A /* Sunrise Point */
|
|
||||||
#define MEI_DEV_ID_SPT_2 0x9D3B /* Sunrise Point 2 */
|
|
||||||
+#define MEI_DEV_ID_SPT_4 0x9D3E /* Sunrise Point 4 (iTouch) */
|
|
||||||
#define MEI_DEV_ID_SPT_H 0xA13A /* Sunrise Point H */
|
|
||||||
#define MEI_DEV_ID_SPT_H_2 0xA13B /* Sunrise Point H 2 */
|
|
||||||
|
|
||||||
@@ -90,6 +91,7 @@
|
|
||||||
#define MEI_DEV_ID_CDF 0x18D3 /* Cedar Fork */
|
|
||||||
|
|
||||||
#define MEI_DEV_ID_ICP_LP 0x34E0 /* Ice Lake Point LP */
|
|
||||||
+#define MEI_DEV_ID_ICP_LP_4 0x34E4 /* Ice Lake Point LP 4 (iTouch) */
|
|
||||||
|
|
||||||
#define MEI_DEV_ID_TGP_LP 0xA0E0 /* Tiger Lake Point LP */
|
|
||||||
|
|
||||||
diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c
|
|
||||||
index 75ab2ffbf235..78790904d77c 100644
|
|
||||||
--- a/drivers/misc/mei/pci-me.c
|
|
||||||
+++ b/drivers/misc/mei/pci-me.c
|
|
||||||
@@ -77,6 +77,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
|
|
||||||
|
|
||||||
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT, MEI_ME_PCH8_CFG)},
|
|
||||||
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_2, MEI_ME_PCH8_CFG)},
|
|
||||||
+ {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_4, MEI_ME_PCH8_CFG)},
|
|
||||||
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H, MEI_ME_PCH8_SPS_CFG)},
|
|
||||||
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H_2, MEI_ME_PCH8_SPS_CFG)},
|
|
||||||
{MEI_PCI_DEVICE(MEI_DEV_ID_LBG, MEI_ME_PCH12_CFG)},
|
|
||||||
@@ -103,6 +104,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
|
|
||||||
{MEI_PCI_DEVICE(MEI_DEV_ID_CMP_H_3, MEI_ME_PCH8_CFG)},
|
|
||||||
|
|
||||||
{MEI_PCI_DEVICE(MEI_DEV_ID_ICP_LP, MEI_ME_PCH12_CFG)},
|
|
||||||
+ {MEI_PCI_DEVICE(MEI_DEV_ID_ICP_LP_4, MEI_ME_PCH12_CFG)},
|
|
||||||
|
|
||||||
{MEI_PCI_DEVICE(MEI_DEV_ID_TGP_LP, MEI_ME_PCH12_CFG)},
|
|
||||||
|
|
||||||
diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h
|
|
||||||
index 9a61c28ed3ae..47fc20975245 100644
|
|
||||||
--- a/include/uapi/linux/input.h
|
|
||||||
+++ b/include/uapi/linux/input.h
|
|
||||||
@@ -271,6 +271,7 @@ struct input_mask {
|
|
||||||
#define BUS_RMI 0x1D
|
|
||||||
#define BUS_CEC 0x1E
|
|
||||||
#define BUS_INTEL_ISHTP 0x1F
|
|
||||||
+#define BUS_MEI 0x44
|
|
||||||
|
|
||||||
/*
|
|
||||||
* MT_TOOL types
|
|
||||||
--
|
--
|
||||||
2.28.0
|
2.28.0
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,35 @@
|
||||||
From f2720bcc54e287b7c7158e9b57553720ed9eab3b Mon Sep 17 00:00:00 2001
|
From ea2243f30da79e2b97bab0140a9b28c049e5ca25 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Sun, 16 Aug 2020 23:39:56 +0200
|
Date: Sun, 16 Aug 2020 23:39:56 +0200
|
||||||
Subject: [PATCH 7/8] surface-gpe
|
Subject: [PATCH] platform/x86: Add Driver to set up lid GPEs on MS Surface
|
||||||
|
device
|
||||||
|
|
||||||
|
Conventionally, wake-up events for a specific device, in our case the
|
||||||
|
lid device, are managed via the ACPI _PRW field. While this does not
|
||||||
|
seem strictly necessary based on ACPI spec, the kernel disables GPE
|
||||||
|
wakeups to avoid non-wakeup interrupts preventing suspend by default and
|
||||||
|
only enables GPEs associated via the _PRW field with a wake-up capable
|
||||||
|
device. This behavior has been introduced in commit
|
||||||
|
|
||||||
|
f941d3e41da7f86bdb9dcc1977c2bcc6b89bfe47
|
||||||
|
ACPI: EC / PM: Disable non-wakeup GPEs for suspend-to-idle
|
||||||
|
|
||||||
|
and is described in more detail in its commit message.
|
||||||
|
|
||||||
|
Unfortunately, on MS Surface devices, there is no _PRW field present on
|
||||||
|
the lid device, thus no GPE is associated with it, and therefore the GPE
|
||||||
|
responsible for sending the status-change notification to the lid gets
|
||||||
|
disabled during suspend, making it impossible to wake the device via the
|
||||||
|
lid.
|
||||||
|
|
||||||
|
This patch introduces a pseudo-device and respective driver which, based
|
||||||
|
on some DMI matching, mark the corresponding GPE of the lid device for
|
||||||
|
wake and enable it during suspend. The behavior of this driver models
|
||||||
|
the behavior of the ACPI/PM core for normal wakeup GPEs, properly
|
||||||
|
declared via the _PRW field.
|
||||||
|
|
||||||
|
Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
|
Patchset: surface-gpe
|
||||||
---
|
---
|
||||||
drivers/platform/x86/Kconfig | 9 +
|
drivers/platform/x86/Kconfig | 9 +
|
||||||
drivers/platform/x86/Makefile | 1 +
|
drivers/platform/x86/Makefile | 1 +
|
||||||
|
@ -11,12 +38,12 @@ Subject: [PATCH 7/8] surface-gpe
|
||||||
create mode 100644 drivers/platform/x86/surface_gpe.c
|
create mode 100644 drivers/platform/x86/surface_gpe.c
|
||||||
|
|
||||||
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
|
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
|
||||||
index 9fc01f255cbf..f5623ec8eda5 100644
|
index 56b1cf96ff57..12cf0d723f21 100644
|
||||||
--- a/drivers/platform/x86/Kconfig
|
--- a/drivers/platform/x86/Kconfig
|
||||||
+++ b/drivers/platform/x86/Kconfig
|
+++ b/drivers/platform/x86/Kconfig
|
||||||
@@ -1224,6 +1224,15 @@ config SURFACE_BOOK1_DGPU_SWITCH
|
@@ -1217,6 +1217,15 @@ config SURFACE_3_POWER_OPREGION
|
||||||
This driver provides a sysfs switch to set the power-state of the
|
Select this option to enable support for ACPI operation
|
||||||
discrete GPU found on the Microsoft Surface Book 1.
|
region of the Surface 3 battery platform driver.
|
||||||
|
|
||||||
+config SURFACE_GPE
|
+config SURFACE_GPE
|
||||||
+ tristate "Surface GPE/Lid Driver"
|
+ tristate "Surface GPE/Lid Driver"
|
||||||
|
@ -31,13 +58,13 @@ index 9fc01f255cbf..f5623ec8eda5 100644
|
||||||
tristate "Intel P-Unit IPC Driver"
|
tristate "Intel P-Unit IPC Driver"
|
||||||
---help---
|
---help---
|
||||||
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
|
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
|
||||||
index b3e0a2c6924b..c6e934a73a8d 100644
|
index 6dd955ad9bf1..5db303f43bda 100644
|
||||||
--- a/drivers/platform/x86/Makefile
|
--- a/drivers/platform/x86/Makefile
|
||||||
+++ b/drivers/platform/x86/Makefile
|
+++ b/drivers/platform/x86/Makefile
|
||||||
@@ -87,6 +87,7 @@ obj-$(CONFIG_SURFACE_PRO3_BUTTON) += surfacepro3_button.o
|
@@ -86,6 +86,7 @@ obj-$(CONFIG_TOUCHSCREEN_DMI) += touchscreen_dmi.o
|
||||||
|
obj-$(CONFIG_SURFACE_PRO3_BUTTON) += surfacepro3_button.o
|
||||||
obj-$(CONFIG_SURFACE_3_BUTTON) += surface3_button.o
|
obj-$(CONFIG_SURFACE_3_BUTTON) += surface3_button.o
|
||||||
obj-$(CONFIG_SURFACE_3_POWER_OPREGION) += surface3_power.o
|
obj-$(CONFIG_SURFACE_3_POWER_OPREGION) += surface3_power.o
|
||||||
obj-$(CONFIG_SURFACE_BOOK1_DGPU_SWITCH) += sb1_dgpu_sw.o
|
|
||||||
+obj-$(CONFIG_SURFACE_GPE) += surface_gpe.o
|
+obj-$(CONFIG_SURFACE_GPE) += surface_gpe.o
|
||||||
obj-$(CONFIG_INTEL_PUNIT_IPC) += intel_punit_ipc.o
|
obj-$(CONFIG_INTEL_PUNIT_IPC) += intel_punit_ipc.o
|
||||||
obj-$(CONFIG_INTEL_BXTWC_PMIC_TMU) += intel_bxtwc_tmu.o
|
obj-$(CONFIG_INTEL_BXTWC_PMIC_TMU) += intel_bxtwc_tmu.o
|
|
@ -1,15 +1,57 @@
|
||||||
From a813aa2d1afcf8c4ca1eb6c200d6bb847da547ac Mon Sep 17 00:00:00 2001
|
From 2f88ea832d68be4bd47a3702389371dcfab92dd5 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Sat, 25 Jul 2020 17:19:53 +0200
|
Date: Sat, 25 Jul 2020 17:19:53 +0200
|
||||||
Subject: [PATCH 6/8] surface-sam-over-hid
|
Subject: [PATCH] i2c: acpi: Implement RawBytes read access
|
||||||
|
|
||||||
|
Microsoft Surface Pro 4 and Book 1 devices access the MSHW0030 I2C
|
||||||
|
device via a generic serial bus operation region and RawBytes read
|
||||||
|
access. On the Surface Book 1, this access is required to turn on (and
|
||||||
|
off) the discrete GPU.
|
||||||
|
|
||||||
|
Multiple things are to note here:
|
||||||
|
|
||||||
|
a) The RawBytes access is device/driver dependent. The ACPI
|
||||||
|
specification states:
|
||||||
|
|
||||||
|
> Raw accesses assume that the writer has knowledge of the bus that
|
||||||
|
> the access is made over and the device that is being accessed. The
|
||||||
|
> protocol may only ensure that the buffer is transmitted to the
|
||||||
|
> appropriate driver, but the driver must be able to interpret the
|
||||||
|
> buffer to communicate to a register.
|
||||||
|
|
||||||
|
Thus this implementation may likely not work on other devices
|
||||||
|
accessing I2C via the RawBytes accessor type.
|
||||||
|
|
||||||
|
b) The MSHW0030 I2C device is an HID-over-I2C device which seems to
|
||||||
|
serve multiple functions:
|
||||||
|
|
||||||
|
1. It is the main access point for the legacy-type Surface Aggregator
|
||||||
|
Module (also referred to as SAM-over-HID, as opposed to the newer
|
||||||
|
SAM-over-SSH/UART). It has currently not been determined on how
|
||||||
|
support for the legacy SAM should be implemented. Likely via a
|
||||||
|
custom HID driver.
|
||||||
|
|
||||||
|
2. It seems to serve as the HID device for the Integrated Sensor Hub.
|
||||||
|
This might complicate matters with regards to implementing a
|
||||||
|
SAM-over-HID driver required by legacy SAM.
|
||||||
|
|
||||||
|
In light of this, the simplest approach has been chosen for now.
|
||||||
|
However, it may make more sense regarding breakage and compatibility to
|
||||||
|
either provide functionality for replacing or enhancing the default
|
||||||
|
operation region handler via some additional API functions, or even to
|
||||||
|
completely blacklist MSHW0030 from the I2C core and provide a custom
|
||||||
|
driver for it.
|
||||||
|
|
||||||
|
Replacing/enhancing the default operation region handler would, however,
|
||||||
|
either require some sort of secondary driver and access point for it,
|
||||||
|
from which the new API functions would be called and the new handler
|
||||||
|
(part) would be installed, or hard-coding them via some sort of
|
||||||
|
quirk-like interface into the I2C core.
|
||||||
|
|
||||||
|
Patchset: surface-sam-over-hid
|
||||||
---
|
---
|
||||||
drivers/i2c/i2c-core-acpi.c | 35 +++++++
|
drivers/i2c/i2c-core-acpi.c | 35 +++++++++++++++++++++++++++++++++++
|
||||||
drivers/platform/x86/Kconfig | 7 ++
|
1 file changed, 35 insertions(+)
|
||||||
drivers/platform/x86/Makefile | 1 +
|
|
||||||
drivers/platform/x86/sb1_dgpu_sw.c | 162 +++++++++++++++++++++++++++++
|
|
||||||
4 files changed, 205 insertions(+)
|
|
||||||
create mode 100644 drivers/platform/x86/sb1_dgpu_sw.c
|
|
||||||
|
|
||||||
diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
|
diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
|
||||||
index ce70b5288472..5df647c4d9a5 100644
|
index ce70b5288472..5df647c4d9a5 100644
|
||||||
|
@ -64,13 +106,38 @@ index ce70b5288472..5df647c4d9a5 100644
|
||||||
default:
|
default:
|
||||||
dev_warn(&adapter->dev, "protocol 0x%02x not supported for client 0x%02x\n",
|
dev_warn(&adapter->dev, "protocol 0x%02x not supported for client 0x%02x\n",
|
||||||
accessor_type, client->addr);
|
accessor_type, client->addr);
|
||||||
|
--
|
||||||
|
2.28.0
|
||||||
|
|
||||||
|
From 94a75b92c382a5b72e7114f8b4bb593a5734534e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
|
Date: Sun, 6 Sep 2020 04:01:19 +0200
|
||||||
|
Subject: [PATCH] platform/x86: Add driver for Surface Book 1 dGPU switch
|
||||||
|
|
||||||
|
Add driver exposing the discrete GPU power-switch of the Microsoft
|
||||||
|
Surface Book 1 to user-space.
|
||||||
|
|
||||||
|
On the Surface Book 1, the dGPU power is controlled via the Surface
|
||||||
|
System Aggregator Module (SAM). The specific SAM-over-HID command for
|
||||||
|
this is exposed via ACPI. This module provides a simple driver exposing
|
||||||
|
the ACPI call via a sysfs parameter to user-space, so that users can
|
||||||
|
easily power-on/-off the dGPU.
|
||||||
|
|
||||||
|
Patchset: surface-sam-over-hid
|
||||||
|
---
|
||||||
|
drivers/platform/x86/Kconfig | 7 ++
|
||||||
|
drivers/platform/x86/Makefile | 1 +
|
||||||
|
drivers/platform/x86/sb1_dgpu_sw.c | 162 +++++++++++++++++++++++++++++
|
||||||
|
3 files changed, 170 insertions(+)
|
||||||
|
create mode 100644 drivers/platform/x86/sb1_dgpu_sw.c
|
||||||
|
|
||||||
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
|
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
|
||||||
index 56b1cf96ff57..9fc01f255cbf 100644
|
index 12cf0d723f21..f06a0bf92890 100644
|
||||||
--- a/drivers/platform/x86/Kconfig
|
--- a/drivers/platform/x86/Kconfig
|
||||||
+++ b/drivers/platform/x86/Kconfig
|
+++ b/drivers/platform/x86/Kconfig
|
||||||
@@ -1217,6 +1217,13 @@ config SURFACE_3_POWER_OPREGION
|
@@ -1226,6 +1226,13 @@ config SURFACE_GPE
|
||||||
Select this option to enable support for ACPI operation
|
accordingly. It is required on those devices to allow wake-ups from
|
||||||
region of the Surface 3 battery platform driver.
|
suspend by opening the lid.
|
||||||
|
|
||||||
+config SURFACE_BOOK1_DGPU_SWITCH
|
+config SURFACE_BOOK1_DGPU_SWITCH
|
||||||
+ tristate "Surface Book 1 dGPU Switch Driver"
|
+ tristate "Surface Book 1 dGPU Switch Driver"
|
||||||
|
@ -83,13 +150,13 @@ index 56b1cf96ff57..9fc01f255cbf 100644
|
||||||
tristate "Intel P-Unit IPC Driver"
|
tristate "Intel P-Unit IPC Driver"
|
||||||
---help---
|
---help---
|
||||||
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
|
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
|
||||||
index 6dd955ad9bf1..b3e0a2c6924b 100644
|
index 5db303f43bda..a1e70973257c 100644
|
||||||
--- a/drivers/platform/x86/Makefile
|
--- a/drivers/platform/x86/Makefile
|
||||||
+++ b/drivers/platform/x86/Makefile
|
+++ b/drivers/platform/x86/Makefile
|
||||||
@@ -86,6 +86,7 @@ obj-$(CONFIG_TOUCHSCREEN_DMI) += touchscreen_dmi.o
|
@@ -87,6 +87,7 @@ obj-$(CONFIG_SURFACE_PRO3_BUTTON) += surfacepro3_button.o
|
||||||
obj-$(CONFIG_SURFACE_PRO3_BUTTON) += surfacepro3_button.o
|
|
||||||
obj-$(CONFIG_SURFACE_3_BUTTON) += surface3_button.o
|
obj-$(CONFIG_SURFACE_3_BUTTON) += surface3_button.o
|
||||||
obj-$(CONFIG_SURFACE_3_POWER_OPREGION) += surface3_power.o
|
obj-$(CONFIG_SURFACE_3_POWER_OPREGION) += surface3_power.o
|
||||||
|
obj-$(CONFIG_SURFACE_GPE) += surface_gpe.o
|
||||||
+obj-$(CONFIG_SURFACE_BOOK1_DGPU_SWITCH) += sb1_dgpu_sw.o
|
+obj-$(CONFIG_SURFACE_BOOK1_DGPU_SWITCH) += sb1_dgpu_sw.o
|
||||||
obj-$(CONFIG_INTEL_PUNIT_IPC) += intel_punit_ipc.o
|
obj-$(CONFIG_INTEL_PUNIT_IPC) += intel_punit_ipc.o
|
||||||
obj-$(CONFIG_INTEL_BXTWC_PMIC_TMU) += intel_bxtwc_tmu.o
|
obj-$(CONFIG_INTEL_BXTWC_PMIC_TMU) += intel_bxtwc_tmu.o
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,8 +1,8 @@
|
||||||
From c7cd4ee28f95e353406fdb98ffcb168974ecf638 Mon Sep 17 00:00:00 2001
|
From 7e11df4d0af5a21f93c8af446bcfd24432a2bfa6 Mon Sep 17 00:00:00 2001
|
||||||
From: Hans de Goede <hdegoede@redhat.com>
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
Date: Wed, 14 Oct 2020 16:41:58 +0200
|
Date: Wed, 14 Oct 2020 16:41:58 +0200
|
||||||
Subject: [PATCH 8/8] i2c: core: Restore acpi_walk_dep_device_list() getting
|
Subject: [PATCH] i2c: core: Restore acpi_walk_dep_device_list() getting called
|
||||||
called after registering the ACPI i2c devs
|
after registering the ACPI i2c devs
|
||||||
|
|
||||||
Commit 21653a4181ff ("i2c: core: Call i2c_acpi_install_space_handler()
|
Commit 21653a4181ff ("i2c: core: Call i2c_acpi_install_space_handler()
|
||||||
before i2c_acpi_register_devices()")'s intention was to only move the
|
before i2c_acpi_register_devices()")'s intention was to only move the
|
||||||
|
|
Loading…
Reference in a new issue