Browse Source

Update v6.9 patches

Changes:
 - Add SAM support for Surface Laptop 6
 - Rework fix for SAM probing

Links:
 - kernel: https://github.com/linux-surface/kernel/commit/3d121f2b6dce2eb9c972749225699a1f2079b5de
Maximilian Luz 1 year ago
parent
commit
d7da4a8372

+ 37 - 0
patches/6.9/0001-secureboot.patch

@@ -0,0 +1,37 @@
+From 24686c656a230f642f8ed6c09c184660c08cf46c Mon Sep 17 00:00:00 2001
+From: Maximilian Luz <luzmaximilian@gmail.com>
+Date: Sun, 9 Jun 2024 19:48:58 +0200
+Subject: [PATCH] Revert "efi/x86: Set the PE/COFF header's NX compat flag
+ unconditionally"
+
+This reverts commit 891f8890a4a3663da7056542757022870b499bc1.
+
+Revert because of compatibility issues of MS Surface devices and GRUB
+with NX. In short, these devices get stuck on boot with NX advertised.
+So to not advertise it, add the respective option back in.
+
+Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
+Patchset: secureboot
+---
+ arch/x86/boot/header.S | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
+index b5c79f43359bc..a1bbedd989e42 100644
+--- a/arch/x86/boot/header.S
++++ b/arch/x86/boot/header.S
+@@ -111,7 +111,11 @@ extra_header_fields:
+ 	.long	salign				# SizeOfHeaders
+ 	.long	0				# CheckSum
+ 	.word	IMAGE_SUBSYSTEM_EFI_APPLICATION	# Subsystem (EFI application)
++#ifdef CONFIG_EFI_DXE_MEM_ATTRIBUTES
+ 	.word	IMAGE_DLL_CHARACTERISTICS_NX_COMPAT	# DllCharacteristics
++#else
++	.word	0				# DllCharacteristics
++#endif
+ #ifdef CONFIG_X86_32
+ 	.long	0				# SizeOfStackReserve
+ 	.long	0				# SizeOfStackCommit
+-- 
+2.45.1
+

+ 5 - 5
patches/6.9/0001-surface3-oemb.patch → patches/6.9/0002-surface3-oemb.patch

@@ -1,4 +1,4 @@
-From 77d6e5b59e54e265d824fa4fd8e342cb79ba52e4 Mon Sep 17 00:00:00 2001
+From a494cdb84ee162accff966a0012992e36e4b0c0a Mon Sep 17 00:00:00 2001
 From: Tsuchiya Yuto <kitakar@gmail.com>
 Date: Sun, 18 Oct 2020 16:42:44 +0900
 Subject: [PATCH] (surface3-oemb) add DMI matches for Surface 3 with broken DMI
@@ -40,7 +40,7 @@ Patchset: surface3-oemb
  3 files changed, 24 insertions(+)
 
 diff --git a/drivers/platform/surface/surface3-wmi.c b/drivers/platform/surface/surface3-wmi.c
-index c15ed7a12784..1ec8edb5aafa 100644
+index c15ed7a12784a..1ec8edb5aafaf 100644
 --- a/drivers/platform/surface/surface3-wmi.c
 +++ b/drivers/platform/surface/surface3-wmi.c
 @@ -37,6 +37,13 @@ static const struct dmi_system_id surface3_dmi_table[] = {
@@ -58,7 +58,7 @@ index c15ed7a12784..1ec8edb5aafa 100644
  	{ }
  };
 diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c
-index d0d24a53df74..43e06166a5d9 100644
+index d0d24a53df746..43e06166a5d95 100644
 --- a/sound/soc/codecs/rt5645.c
 +++ b/sound/soc/codecs/rt5645.c
 @@ -3777,6 +3777,15 @@ static const struct dmi_system_id dmi_platform_data[] = {
@@ -78,7 +78,7 @@ index d0d24a53df74..43e06166a5d9 100644
  		/*
  		 * Match for the GPDwin which unfortunately uses somewhat
 diff --git a/sound/soc/intel/common/soc-acpi-intel-cht-match.c b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
-index 5e2ec60e2954..207868c699f2 100644
+index 5e2ec60e2954b..207868c699f29 100644
 --- a/sound/soc/intel/common/soc-acpi-intel-cht-match.c
 +++ b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
 @@ -27,6 +27,14 @@ static const struct dmi_system_id cht_table[] = {
@@ -97,5 +97,5 @@ index 5e2ec60e2954..207868c699f2 100644
  };
  
 -- 
-2.44.1
+2.45.1
 

+ 17 - 19
patches/6.9/0002-mwifiex.patch → patches/6.9/0003-mwifiex.patch

@@ -1,7 +1,7 @@
-From 38ff71a84e7a1ad3de25056f8e5629eb749a85e8 Mon Sep 17 00:00:00 2001
+From 1abf1feb3b521abe9f9c9e8d68d2014e90ecb20d Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Tue, 3 Nov 2020 13:28:04 +0100
-Subject: [PATCH 1/3] mwifiex: Add quirk resetting the PCI bridge on MS Surface
+Subject: [PATCH] mwifiex: Add quirk resetting the PCI bridge on MS Surface
  devices
 
 The most recent firmware of the 88W8897 card reports a hardcoded LTR
@@ -32,7 +32,7 @@ Patchset: mwifiex
  3 files changed, 31 insertions(+), 8 deletions(-)
 
 diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
-index 5f997becdbaa..9a9929424513 100644
+index 5f997becdbaa2..9a9929424513a 100644
 --- a/drivers/net/wireless/marvell/mwifiex/pcie.c
 +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
 @@ -1702,9 +1702,21 @@ mwifiex_pcie_send_boot_cmd(struct mwifiex_adapter *adapter, struct sk_buff *skb)
@@ -58,7 +58,7 @@ index 5f997becdbaa..9a9929424513 100644
  	mwifiex_write_reg(adapter, reg->rx_rdptr, card->rxbd_rdptr | tx_wrap);
  }
 diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
-index dd6d21f1dbfd..f46b06f8d643 100644
+index dd6d21f1dbfd7..f46b06f8d6435 100644
 --- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
 +++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
 @@ -13,7 +13,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
@@ -151,7 +151,7 @@ index dd6d21f1dbfd..f46b06f8d643 100644
  
  static void mwifiex_pcie_set_power_d3cold(struct pci_dev *pdev)
 diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
-index d6ff964aec5b..5d30ae39d65e 100644
+index d6ff964aec5bf..5d30ae39d65ec 100644
 --- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
 +++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
 @@ -4,6 +4,7 @@
@@ -163,13 +163,12 @@ index d6ff964aec5b..5d30ae39d65e 100644
  void mwifiex_initialize_quirks(struct pcie_service_card *card);
  int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
 -- 
-2.44.1
+2.45.1
 
-
-From 47109fad48e842ffedf33bcb07f5080e1350337d Mon Sep 17 00:00:00 2001
+From 0574bff98f5f5af132783f8f72e8ef22e3f36097 Mon Sep 17 00:00:00 2001
 From: Tsuchiya Yuto <kitakar@gmail.com>
 Date: Sun, 4 Oct 2020 00:11:49 +0900
-Subject: [PATCH 2/3] mwifiex: pcie: disable bridge_d3 for Surface gen4+
+Subject: [PATCH] mwifiex: pcie: disable bridge_d3 for Surface gen4+
 
 Currently, mwifiex fw will crash after suspend on recent kernel series.
 On Windows, it seems that the root port of wifi will never enter D3 state
@@ -188,7 +187,7 @@ Patchset: mwifiex
  3 files changed, 27 insertions(+), 8 deletions(-)
 
 diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
-index 9a9929424513..2273e3029776 100644
+index 9a9929424513a..2273e30297766 100644
 --- a/drivers/net/wireless/marvell/mwifiex/pcie.c
 +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
 @@ -377,6 +377,7 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev,
@@ -213,7 +212,7 @@ index 9a9929424513..2273e3029776 100644
  }
  
 diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
-index f46b06f8d643..99b024ecbade 100644
+index f46b06f8d6435..99b024ecbadea 100644
 --- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
 +++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
 @@ -14,7 +14,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
@@ -307,7 +306,7 @@ index f46b06f8d643..99b024ecbade 100644
  
  static void mwifiex_pcie_set_power_d3cold(struct pci_dev *pdev)
 diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
-index 5d30ae39d65e..c14eb56eb911 100644
+index 5d30ae39d65ec..c14eb56eb9118 100644
 --- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
 +++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
 @@ -5,6 +5,7 @@
@@ -319,14 +318,13 @@ index 5d30ae39d65e..c14eb56eb911 100644
  void mwifiex_initialize_quirks(struct pcie_service_card *card);
  int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
 -- 
-2.44.1
-
+2.45.1
 
-From 57cd8aeebe2fd4913281c93611277fca158a9c77 Mon Sep 17 00:00:00 2001
+From 8a4ee131ced8068371a8fa09da17d82414e6d835 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Thu, 25 Mar 2021 11:33:02 +0100
-Subject: [PATCH 3/3] Bluetooth: btusb: Lower passive lescan interval on
- Marvell 88W8897
+Subject: [PATCH] Bluetooth: btusb: Lower passive lescan interval on Marvell
+ 88W8897
 
 The Marvell 88W8897 combined wifi and bluetooth card (pcie+usb version)
 is used in a lot of Microsoft Surface devices, and all those devices
@@ -358,7 +356,7 @@ Patchset: mwifiex
  1 file changed, 15 insertions(+)
 
 diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index fb716849b60f..1e7b3798108f 100644
+index fb716849b60f3..1e7b3798108f7 100644
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
 @@ -65,6 +65,7 @@ static struct usb_driver btusb_driver;
@@ -398,5 +396,5 @@ index fb716849b60f..1e7b3798108f 100644
  	    (id->driver_info & BTUSB_MEDIATEK)) {
  		hdev->setup = btusb_mtk_setup;
 -- 
-2.44.1
+2.45.1
 

+ 3 - 3
patches/6.9/0003-ath10k.patch → patches/6.9/0004-ath10k.patch

@@ -1,4 +1,4 @@
-From be4b537a27b26a55c4557398ebeead056c446c1b Mon Sep 17 00:00:00 2001
+From fc56de38d725edc7c3856c2a2d369e1f170f202f Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 27 Feb 2021 00:45:52 +0100
 Subject: [PATCH] ath10k: Add module parameters to override board files
@@ -20,7 +20,7 @@ Patchset: ath10k
  1 file changed, 58 insertions(+)
 
 diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
-index fa5e2e651831..8921b0ebf36b 100644
+index fa5e2e6518313..8921b0ebf36b7 100644
 --- a/drivers/net/wireless/ath/ath10k/core.c
 +++ b/drivers/net/wireless/ath/ath10k/core.c
 @@ -39,6 +39,9 @@ static bool fw_diag_log;
@@ -117,5 +117,5 @@ index fa5e2e651831..8921b0ebf36b 100644
  	ret = firmware_request_nowarn(&fw, filename, ar->dev);
  	ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot fw request '%s': %d\n",
 -- 
-2.44.1
+2.45.1
 

+ 47 - 50
patches/6.9/0004-ipts.patch → patches/6.9/0005-ipts.patch

@@ -1,7 +1,7 @@
-From 64bf8dc5156002a92eab306a503ae7e89a7ca3be Mon Sep 17 00:00:00 2001
+From ee272e8a81f073b5475a3bb2c3085b55f181bc24 Mon Sep 17 00:00:00 2001
 From: Dorian Stoll <dorian.stoll@tmsp.io>
 Date: Thu, 30 Jul 2020 13:21:53 +0200
-Subject: [PATCH 1/4] mei: me: Add Icelake device ID for iTouch
+Subject: [PATCH] mei: me: Add Icelake device ID for iTouch
 
 Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
 Patchset: ipts
@@ -11,7 +11,7 @@ Patchset: ipts
  2 files changed, 2 insertions(+)
 
 diff --git a/drivers/misc/mei/hw-me-regs.h b/drivers/misc/mei/hw-me-regs.h
-index c3a6657dcd4a..82eef2f4eb0a 100644
+index c3a6657dcd4a2..82eef2f4eb0a8 100644
 --- a/drivers/misc/mei/hw-me-regs.h
 +++ b/drivers/misc/mei/hw-me-regs.h
 @@ -92,6 +92,7 @@
@@ -23,7 +23,7 @@ index c3a6657dcd4a..82eef2f4eb0a 100644
  
  #define MEI_DEV_ID_JSP_N      0x4DE0  /* Jasper Lake Point N */
 diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c
-index 7f59dd38c32f..a56ad5b3f779 100644
+index 7f59dd38c32f5..a56ad5b3f7790 100644
 --- a/drivers/misc/mei/pci-me.c
 +++ b/drivers/misc/mei/pci-me.c
 @@ -97,6 +97,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
@@ -35,13 +35,12 @@ index 7f59dd38c32f..a56ad5b3f779 100644
  
  	{MEI_PCI_DEVICE(MEI_DEV_ID_TGP_LP, MEI_ME_PCH15_CFG)},
 -- 
-2.44.1
+2.45.1
 
-
-From 8ac49646a71a247ca8ce3348572809866d7d4cd0 Mon Sep 17 00:00:00 2001
+From 8536601cfc6d7671f4c11cab4dca57674f59b349 Mon Sep 17 00:00:00 2001
 From: Liban Hannan <liban.p@gmail.com>
 Date: Tue, 12 Apr 2022 23:31:12 +0100
-Subject: [PATCH 2/4] iommu: Use IOMMU passthrough mode for IPTS
+Subject: [PATCH] iommu: Use IOMMU passthrough mode for IPTS
 
 Adds a quirk so that IOMMU uses passthrough mode for the IPTS device.
 Otherwise, when IOMMU is enabled, IPTS produces DMAR errors like:
@@ -62,7 +61,7 @@ Patchset: ipts
  1 file changed, 29 insertions(+)
 
 diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
-index e4a03588a8a0..61bc54299a59 100644
+index e4a03588a8a0f..61bc54299a591 100644
 --- a/drivers/iommu/intel/iommu.c
 +++ b/drivers/iommu/intel/iommu.c
 @@ -39,6 +39,11 @@
@@ -143,13 +142,12 @@ index e4a03588a8a0..61bc54299a59 100644
  {
  	if (risky_device(dev))
 -- 
-2.44.1
-
+2.45.1
 
-From d7581a727eabc72550a834ae375f20db53da63ee Mon Sep 17 00:00:00 2001
+From 664128ab9984f6c774d4064548d9b247041d2520 Mon Sep 17 00:00:00 2001
 From: Dorian Stoll <dorian.stoll@tmsp.io>
 Date: Sun, 11 Dec 2022 12:00:59 +0100
-Subject: [PATCH 3/4] hid: Add support for Intel Precise Touch and Stylus
+Subject: [PATCH] hid: Add support for Intel Precise Touch and Stylus
 
 Based on linux-surface/intel-precise-touch@8abe268
 
@@ -213,7 +211,7 @@ Patchset: ipts
  create mode 100644 drivers/hid/ipts/thread.h
 
 diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
-index 4c682c650704..a263e49b2ae2 100644
+index 4c682c6507040..a263e49b2ae29 100644
 --- a/drivers/hid/Kconfig
 +++ b/drivers/hid/Kconfig
 @@ -1351,4 +1351,6 @@ source "drivers/hid/amd-sfh-hid/Kconfig"
@@ -224,7 +222,7 @@ index 4c682c650704..a263e49b2ae2 100644
 +
  endif # HID_SUPPORT
 diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
-index 082a728eac60..f4bad1b8d813 100644
+index 082a728eac600..f4bad1b8d813f 100644
 --- a/drivers/hid/Makefile
 +++ b/drivers/hid/Makefile
 @@ -170,3 +170,5 @@ obj-$(INTEL_ISH_FIRMWARE_DOWNLOADER)	+= intel-ish-hid/
@@ -235,7 +233,7 @@ index 082a728eac60..f4bad1b8d813 100644
 +obj-$(CONFIG_HID_IPTS)          += ipts/
 diff --git a/drivers/hid/ipts/Kconfig b/drivers/hid/ipts/Kconfig
 new file mode 100644
-index 000000000000..297401bd388d
+index 0000000000000..297401bd388dd
 --- /dev/null
 +++ b/drivers/hid/ipts/Kconfig
 @@ -0,0 +1,14 @@
@@ -255,7 +253,7 @@ index 000000000000..297401bd388d
 +	  module will be called ipts.
 diff --git a/drivers/hid/ipts/Makefile b/drivers/hid/ipts/Makefile
 new file mode 100644
-index 000000000000..883896f68e6a
+index 0000000000000..883896f68e6ad
 --- /dev/null
 +++ b/drivers/hid/ipts/Makefile
 @@ -0,0 +1,16 @@
@@ -277,7 +275,7 @@ index 000000000000..883896f68e6a
 +ipts-objs += thread.o
 diff --git a/drivers/hid/ipts/cmd.c b/drivers/hid/ipts/cmd.c
 new file mode 100644
-index 000000000000..63a4934bbc5f
+index 0000000000000..63a4934bbc5fa
 --- /dev/null
 +++ b/drivers/hid/ipts/cmd.c
 @@ -0,0 +1,61 @@
@@ -344,7 +342,7 @@ index 000000000000..63a4934bbc5f
 +}
 diff --git a/drivers/hid/ipts/cmd.h b/drivers/hid/ipts/cmd.h
 new file mode 100644
-index 000000000000..2b4079075b64
+index 0000000000000..2b4079075b642
 --- /dev/null
 +++ b/drivers/hid/ipts/cmd.h
 @@ -0,0 +1,60 @@
@@ -410,7 +408,7 @@ index 000000000000..2b4079075b64
 +#endif /* IPTS_CMD_H */
 diff --git a/drivers/hid/ipts/context.h b/drivers/hid/ipts/context.h
 new file mode 100644
-index 000000000000..ba33259f1f7c
+index 0000000000000..ba33259f1f7c5
 --- /dev/null
 +++ b/drivers/hid/ipts/context.h
 @@ -0,0 +1,52 @@
@@ -468,7 +466,7 @@ index 000000000000..ba33259f1f7c
 +#endif /* IPTS_CONTEXT_H */
 diff --git a/drivers/hid/ipts/control.c b/drivers/hid/ipts/control.c
 new file mode 100644
-index 000000000000..5360842d260b
+index 0000000000000..5360842d260ba
 --- /dev/null
 +++ b/drivers/hid/ipts/control.c
 @@ -0,0 +1,486 @@
@@ -960,7 +958,7 @@ index 000000000000..5360842d260b
 +}
 diff --git a/drivers/hid/ipts/control.h b/drivers/hid/ipts/control.h
 new file mode 100644
-index 000000000000..26629c5144ed
+index 0000000000000..26629c5144edb
 --- /dev/null
 +++ b/drivers/hid/ipts/control.h
 @@ -0,0 +1,126 @@
@@ -1092,7 +1090,7 @@ index 000000000000..26629c5144ed
 +#endif /* IPTS_CONTROL_H */
 diff --git a/drivers/hid/ipts/desc.h b/drivers/hid/ipts/desc.h
 new file mode 100644
-index 000000000000..307438c7c80c
+index 0000000000000..307438c7c80cd
 --- /dev/null
 +++ b/drivers/hid/ipts/desc.h
 @@ -0,0 +1,80 @@
@@ -1178,7 +1176,7 @@ index 000000000000..307438c7c80c
 +#endif /* IPTS_DESC_H */
 diff --git a/drivers/hid/ipts/eds1.c b/drivers/hid/ipts/eds1.c
 new file mode 100644
-index 000000000000..ecbb3a8bdaf6
+index 0000000000000..ecbb3a8bdaf60
 --- /dev/null
 +++ b/drivers/hid/ipts/eds1.c
 @@ -0,0 +1,103 @@
@@ -1287,7 +1285,7 @@ index 000000000000..ecbb3a8bdaf6
 +}
 diff --git a/drivers/hid/ipts/eds1.h b/drivers/hid/ipts/eds1.h
 new file mode 100644
-index 000000000000..eeeb6575e3e8
+index 0000000000000..eeeb6575e3e89
 --- /dev/null
 +++ b/drivers/hid/ipts/eds1.h
 @@ -0,0 +1,35 @@
@@ -1328,7 +1326,7 @@ index 000000000000..eeeb6575e3e8
 +			  enum hid_report_type report_type, enum hid_class_request request_type);
 diff --git a/drivers/hid/ipts/eds2.c b/drivers/hid/ipts/eds2.c
 new file mode 100644
-index 000000000000..198dc65d7887
+index 0000000000000..198dc65d78876
 --- /dev/null
 +++ b/drivers/hid/ipts/eds2.c
 @@ -0,0 +1,144 @@
@@ -1478,7 +1476,7 @@ index 000000000000..198dc65d7887
 +}
 diff --git a/drivers/hid/ipts/eds2.h b/drivers/hid/ipts/eds2.h
 new file mode 100644
-index 000000000000..064e3716907a
+index 0000000000000..064e3716907ab
 --- /dev/null
 +++ b/drivers/hid/ipts/eds2.h
 @@ -0,0 +1,35 @@
@@ -1519,7 +1517,7 @@ index 000000000000..064e3716907a
 +			  enum hid_report_type report_type, enum hid_class_request request_type);
 diff --git a/drivers/hid/ipts/hid.c b/drivers/hid/ipts/hid.c
 new file mode 100644
-index 000000000000..e34a1a4f9fa7
+index 0000000000000..e34a1a4f9fa77
 --- /dev/null
 +++ b/drivers/hid/ipts/hid.c
 @@ -0,0 +1,225 @@
@@ -1750,7 +1748,7 @@ index 000000000000..e34a1a4f9fa7
 +}
 diff --git a/drivers/hid/ipts/hid.h b/drivers/hid/ipts/hid.h
 new file mode 100644
-index 000000000000..1ebe77447903
+index 0000000000000..1ebe77447903a
 --- /dev/null
 +++ b/drivers/hid/ipts/hid.h
 @@ -0,0 +1,24 @@
@@ -1780,7 +1778,7 @@ index 000000000000..1ebe77447903
 +#endif /* IPTS_HID_H */
 diff --git a/drivers/hid/ipts/main.c b/drivers/hid/ipts/main.c
 new file mode 100644
-index 000000000000..fb5b5c13ee3e
+index 0000000000000..fb5b5c13ee3ea
 --- /dev/null
 +++ b/drivers/hid/ipts/main.c
 @@ -0,0 +1,126 @@
@@ -1912,7 +1910,7 @@ index 000000000000..fb5b5c13ee3e
 +MODULE_LICENSE("GPL");
 diff --git a/drivers/hid/ipts/mei.c b/drivers/hid/ipts/mei.c
 new file mode 100644
-index 000000000000..1e0395ceae4a
+index 0000000000000..1e0395ceae4a4
 --- /dev/null
 +++ b/drivers/hid/ipts/mei.c
 @@ -0,0 +1,188 @@
@@ -2106,7 +2104,7 @@ index 000000000000..1e0395ceae4a
 +}
 diff --git a/drivers/hid/ipts/mei.h b/drivers/hid/ipts/mei.h
 new file mode 100644
-index 000000000000..973bade6b0fd
+index 0000000000000..973bade6b0fdd
 --- /dev/null
 +++ b/drivers/hid/ipts/mei.h
 @@ -0,0 +1,66 @@
@@ -2178,7 +2176,7 @@ index 000000000000..973bade6b0fd
 +#endif /* IPTS_MEI_H */
 diff --git a/drivers/hid/ipts/receiver.c b/drivers/hid/ipts/receiver.c
 new file mode 100644
-index 000000000000..ef66c3c9db80
+index 0000000000000..ef66c3c9db807
 --- /dev/null
 +++ b/drivers/hid/ipts/receiver.c
 @@ -0,0 +1,250 @@
@@ -2434,7 +2432,7 @@ index 000000000000..ef66c3c9db80
 +}
 diff --git a/drivers/hid/ipts/receiver.h b/drivers/hid/ipts/receiver.h
 new file mode 100644
-index 000000000000..3de7da62d40c
+index 0000000000000..3de7da62d40c1
 --- /dev/null
 +++ b/drivers/hid/ipts/receiver.h
 @@ -0,0 +1,16 @@
@@ -2456,7 +2454,7 @@ index 000000000000..3de7da62d40c
 +#endif /* IPTS_RECEIVER_H */
 diff --git a/drivers/hid/ipts/resources.c b/drivers/hid/ipts/resources.c
 new file mode 100644
-index 000000000000..cc14653b2a9f
+index 0000000000000..cc14653b2a9f5
 --- /dev/null
 +++ b/drivers/hid/ipts/resources.c
 @@ -0,0 +1,131 @@
@@ -2593,7 +2591,7 @@ index 000000000000..cc14653b2a9f
 +}
 diff --git a/drivers/hid/ipts/resources.h b/drivers/hid/ipts/resources.h
 new file mode 100644
-index 000000000000..2068e13285f0
+index 0000000000000..2068e13285f0e
 --- /dev/null
 +++ b/drivers/hid/ipts/resources.h
 @@ -0,0 +1,41 @@
@@ -2640,7 +2638,7 @@ index 000000000000..2068e13285f0
 +#endif /* IPTS_RESOURCES_H */
 diff --git a/drivers/hid/ipts/spec-data.h b/drivers/hid/ipts/spec-data.h
 new file mode 100644
-index 000000000000..e8dd98895a7e
+index 0000000000000..e8dd98895a7ee
 --- /dev/null
 +++ b/drivers/hid/ipts/spec-data.h
 @@ -0,0 +1,100 @@
@@ -2746,7 +2744,7 @@ index 000000000000..e8dd98895a7e
 +#endif /* IPTS_SPEC_DATA_H */
 diff --git a/drivers/hid/ipts/spec-device.h b/drivers/hid/ipts/spec-device.h
 new file mode 100644
-index 000000000000..41845f9d9025
+index 0000000000000..41845f9d90257
 --- /dev/null
 +++ b/drivers/hid/ipts/spec-device.h
 @@ -0,0 +1,290 @@
@@ -3042,7 +3040,7 @@ index 000000000000..41845f9d9025
 +#endif /* IPTS_SPEC_DEVICE_H */
 diff --git a/drivers/hid/ipts/spec-hid.h b/drivers/hid/ipts/spec-hid.h
 new file mode 100644
-index 000000000000..5a58d4a0a610
+index 0000000000000..5a58d4a0a610f
 --- /dev/null
 +++ b/drivers/hid/ipts/spec-hid.h
 @@ -0,0 +1,34 @@
@@ -3082,7 +3080,7 @@ index 000000000000..5a58d4a0a610
 +#endif /* IPTS_SPEC_HID_H */
 diff --git a/drivers/hid/ipts/thread.c b/drivers/hid/ipts/thread.c
 new file mode 100644
-index 000000000000..355e92bea26f
+index 0000000000000..355e92bea26f8
 --- /dev/null
 +++ b/drivers/hid/ipts/thread.c
 @@ -0,0 +1,84 @@
@@ -3172,7 +3170,7 @@ index 000000000000..355e92bea26f
 +}
 diff --git a/drivers/hid/ipts/thread.h b/drivers/hid/ipts/thread.h
 new file mode 100644
-index 000000000000..1f966b8b32c4
+index 0000000000000..1f966b8b32c45
 --- /dev/null
 +++ b/drivers/hid/ipts/thread.h
 @@ -0,0 +1,59 @@
@@ -3236,14 +3234,13 @@ index 000000000000..1f966b8b32c4
 +
 +#endif /* IPTS_THREAD_H */
 -- 
-2.44.1
-
+2.45.1
 
-From 802ca4119a92827eddcb63610261fb8dbbae4eba Mon Sep 17 00:00:00 2001
+From ee8823ff409dc4507cc2f7c8f8c474735b005938 Mon Sep 17 00:00:00 2001
 From: Jasmin Huber <jasmin@jasisonee.ch>
 Date: Mon, 15 Apr 2024 10:22:55 +0200
-Subject: [PATCH 4/4] Inlude headers to avoid compiler warnings 6.8 kernels
- compile with -Wmissing-prototypes.
+Subject: [PATCH] Inlude headers to avoid compiler warnings 6.8 kernels compile
+ with -Wmissing-prototypes.
 
 Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
 Patchset: ipts
@@ -3254,7 +3251,7 @@ Patchset: ipts
  3 files changed, 3 insertions(+)
 
 diff --git a/drivers/hid/ipts/eds1.c b/drivers/hid/ipts/eds1.c
-index ecbb3a8bdaf6..7b9f54388a9f 100644
+index ecbb3a8bdaf60..7b9f54388a9f6 100644
 --- a/drivers/hid/ipts/eds1.c
 +++ b/drivers/hid/ipts/eds1.c
 @@ -14,6 +14,7 @@
@@ -3266,7 +3263,7 @@ index ecbb3a8bdaf6..7b9f54388a9f 100644
  
  int ipts_eds1_get_descriptor(struct ipts_context *ipts, u8 **desc_buffer, size_t *desc_size)
 diff --git a/drivers/hid/ipts/eds2.c b/drivers/hid/ipts/eds2.c
-index 198dc65d7887..639940794615 100644
+index 198dc65d78876..639940794615d 100644
 --- a/drivers/hid/ipts/eds2.c
 +++ b/drivers/hid/ipts/eds2.c
 @@ -15,6 +15,7 @@
@@ -3278,7 +3275,7 @@ index 198dc65d7887..639940794615 100644
  
  int ipts_eds2_get_descriptor(struct ipts_context *ipts, u8 **desc_buffer, size_t *desc_size)
 diff --git a/drivers/hid/ipts/receiver.c b/drivers/hid/ipts/receiver.c
-index ef66c3c9db80..977724c728c3 100644
+index ef66c3c9db807..977724c728c3e 100644
 --- a/drivers/hid/ipts/receiver.c
 +++ b/drivers/hid/ipts/receiver.c
 @@ -16,6 +16,7 @@
@@ -3290,5 +3287,5 @@ index ef66c3c9db80..977724c728c3 100644
  #include "spec-device.h"
  #include "thread.h"
 -- 
-2.44.1
+2.45.1
 

+ 45 - 46
patches/6.9/0005-ithc.patch → patches/6.9/0006-ithc.patch

@@ -1,7 +1,7 @@
-From c6eae6f4321c2daafedaaf1f81201eed78291c8b Mon Sep 17 00:00:00 2001
+From 4b17942da35790b0e703a87267545f5a9f08e1cf Mon Sep 17 00:00:00 2001
 From: Dorian Stoll <dorian.stoll@tmsp.io>
 Date: Sun, 11 Dec 2022 12:03:38 +0100
-Subject: [PATCH 1/3] iommu: intel: Disable source id verification for ITHC
+Subject: [PATCH] iommu: intel: Disable source id verification for ITHC
 
 Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
 Patchset: ithc
@@ -10,7 +10,7 @@ Patchset: ithc
  1 file changed, 16 insertions(+)
 
 diff --git a/drivers/iommu/intel/irq_remapping.c b/drivers/iommu/intel/irq_remapping.c
-index 566297bc87dd..a8cd8f12d593 100644
+index 566297bc87ddb..a8cd8f12d5937 100644
 --- a/drivers/iommu/intel/irq_remapping.c
 +++ b/drivers/iommu/intel/irq_remapping.c
 @@ -386,6 +386,22 @@ static int set_msi_sid(struct irte *irte, struct pci_dev *dev)
@@ -37,13 +37,12 @@ index 566297bc87dd..a8cd8f12d593 100644
  	 * DMA alias provides us with a PCI device and alias.  The only case
  	 * where the it will return an alias on a different bus than the
 -- 
-2.44.1
+2.45.1
 
-
-From 9269060ff3088a0d1c33cf7ca134f1db48c99fd6 Mon Sep 17 00:00:00 2001
+From 14baff1c79b6499868b48e6fb4ada851db35c941 Mon Sep 17 00:00:00 2001
 From: quo <tuple@list.ru>
 Date: Sun, 11 Dec 2022 12:10:54 +0100
-Subject: [PATCH 2/3] hid: Add support for Intel Touch Host Controller
+Subject: [PATCH] hid: Add support for Intel Touch Host Controller
 
 Based on quo/ithc-linux@0b8b45d
 
@@ -73,7 +72,7 @@ Patchset: ithc
  create mode 100644 drivers/hid/ithc/ithc.h
 
 diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
-index a263e49b2ae2..03f0f5af289a 100644
+index a263e49b2ae29..03f0f5af289a4 100644
 --- a/drivers/hid/Kconfig
 +++ b/drivers/hid/Kconfig
 @@ -1353,4 +1353,6 @@ source "drivers/hid/surface-hid/Kconfig"
@@ -84,7 +83,7 @@ index a263e49b2ae2..03f0f5af289a 100644
 +
  endif # HID_SUPPORT
 diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
-index f4bad1b8d813..d32c194400ae 100644
+index f4bad1b8d813f..d32c194400aea 100644
 --- a/drivers/hid/Makefile
 +++ b/drivers/hid/Makefile
 @@ -172,3 +172,4 @@ obj-$(CONFIG_AMD_SFH_HID)       += amd-sfh-hid/
@@ -94,7 +93,7 @@ index f4bad1b8d813..d32c194400ae 100644
 +obj-$(CONFIG_HID_ITHC)          += ithc/
 diff --git a/drivers/hid/ithc/Kbuild b/drivers/hid/ithc/Kbuild
 new file mode 100644
-index 000000000000..aea83f2ac07b
+index 0000000000000..aea83f2ac07b4
 --- /dev/null
 +++ b/drivers/hid/ithc/Kbuild
 @@ -0,0 +1,6 @@
@@ -106,7 +105,7 @@ index 000000000000..aea83f2ac07b
 +
 diff --git a/drivers/hid/ithc/Kconfig b/drivers/hid/ithc/Kconfig
 new file mode 100644
-index 000000000000..ede713023609
+index 0000000000000..ede7130236096
 --- /dev/null
 +++ b/drivers/hid/ithc/Kconfig
 @@ -0,0 +1,12 @@
@@ -124,7 +123,7 @@ index 000000000000..ede713023609
 +	  module will be called ithc.
 diff --git a/drivers/hid/ithc/ithc-debug.c b/drivers/hid/ithc/ithc-debug.c
 new file mode 100644
-index 000000000000..1f1f1e33f2e5
+index 0000000000000..1f1f1e33f2e5a
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-debug.c
 @@ -0,0 +1,130 @@
@@ -260,7 +259,7 @@ index 000000000000..1f1f1e33f2e5
 +
 diff --git a/drivers/hid/ithc/ithc-dma.c b/drivers/hid/ithc/ithc-dma.c
 new file mode 100644
-index 000000000000..ffb8689b8a78
+index 0000000000000..ffb8689b8a780
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-dma.c
 @@ -0,0 +1,373 @@
@@ -639,7 +638,7 @@ index 000000000000..ffb8689b8a78
 +
 diff --git a/drivers/hid/ithc/ithc-dma.h b/drivers/hid/ithc/ithc-dma.h
 new file mode 100644
-index 000000000000..93652e4476bf
+index 0000000000000..93652e4476bf8
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-dma.h
 @@ -0,0 +1,69 @@
@@ -714,7 +713,7 @@ index 000000000000..93652e4476bf
 +
 diff --git a/drivers/hid/ithc/ithc-main.c b/drivers/hid/ithc/ithc-main.c
 new file mode 100644
-index 000000000000..87ed4aa70fda
+index 0000000000000..87ed4aa70fda0
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-main.c
 @@ -0,0 +1,728 @@
@@ -1448,7 +1447,7 @@ index 000000000000..87ed4aa70fda
 +
 diff --git a/drivers/hid/ithc/ithc-regs.c b/drivers/hid/ithc/ithc-regs.c
 new file mode 100644
-index 000000000000..e058721886e3
+index 0000000000000..e058721886e37
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-regs.c
 @@ -0,0 +1,96 @@
@@ -1550,7 +1549,7 @@ index 000000000000..e058721886e3
 +
 diff --git a/drivers/hid/ithc/ithc-regs.h b/drivers/hid/ithc/ithc-regs.h
 new file mode 100644
-index 000000000000..d4007d9e2bac
+index 0000000000000..d4007d9e2bacc
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-regs.h
 @@ -0,0 +1,189 @@
@@ -1745,7 +1744,7 @@ index 000000000000..d4007d9e2bac
 +
 diff --git a/drivers/hid/ithc/ithc.h b/drivers/hid/ithc/ithc.h
 new file mode 100644
-index 000000000000..028e55a4ec53
+index 0000000000000..028e55a4ec53e
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc.h
 @@ -0,0 +1,67 @@
@@ -1817,13 +1816,12 @@ index 000000000000..028e55a4ec53
 +void ithc_log_regs(struct ithc *ithc);
 +
 -- 
-2.44.1
-
+2.45.1
 
-From b6f9694876ec4a59690a80e4ee6affcc740cca9a Mon Sep 17 00:00:00 2001
+From 2537922b2f0c1d0002a2afe6d0fc79695add8e60 Mon Sep 17 00:00:00 2001
 From: quo <tuple@list.ru>
 Date: Fri, 19 Apr 2024 22:11:09 +0200
-Subject: [PATCH 3/3] hid: ithc: Update from quo/ithc-linux
+Subject: [PATCH] hid: ithc: Update from quo/ithc-linux
 
  - Added QuickSPI support for Surface Laptop Studio 2
  - Use Latency Tolerance Reporting instead of manual CPU latency adjustments
@@ -1842,13 +1840,13 @@ Patchset: ithc
  drivers/hid/ithc/ithc-hid.h      |  32 ++
  drivers/hid/ithc/ithc-legacy.c   | 252 ++++++++++++++
  drivers/hid/ithc/ithc-legacy.h   |   8 +
- drivers/hid/ithc/ithc-main.c     | 384 ++++----------------
+ drivers/hid/ithc/ithc-main.c     | 386 ++++-----------------
  drivers/hid/ithc/ithc-quickspi.c | 578 +++++++++++++++++++++++++++++++
  drivers/hid/ithc/ithc-quickspi.h |  39 +++
  drivers/hid/ithc/ithc-regs.c     |  72 +++-
  drivers/hid/ithc/ithc-regs.h     | 143 ++++----
  drivers/hid/ithc/ithc.h          |  71 ++--
- 15 files changed, 1440 insertions(+), 537 deletions(-)
+ 15 files changed, 1441 insertions(+), 538 deletions(-)
  create mode 100644 drivers/hid/ithc/ithc-debug.h
  create mode 100644 drivers/hid/ithc/ithc-hid.c
  create mode 100644 drivers/hid/ithc/ithc-hid.h
@@ -1858,7 +1856,7 @@ Patchset: ithc
  create mode 100644 drivers/hid/ithc/ithc-quickspi.h
 
 diff --git a/drivers/hid/ithc/Kbuild b/drivers/hid/ithc/Kbuild
-index aea83f2ac07b..4937ba131297 100644
+index aea83f2ac07b4..4937ba1312973 100644
 --- a/drivers/hid/ithc/Kbuild
 +++ b/drivers/hid/ithc/Kbuild
 @@ -1,6 +1,6 @@
@@ -1870,7 +1868,7 @@ index aea83f2ac07b..4937ba131297 100644
  ccflags-y := -std=gnu11 -Wno-declaration-after-statement
  
 diff --git a/drivers/hid/ithc/ithc-debug.c b/drivers/hid/ithc/ithc-debug.c
-index 1f1f1e33f2e5..2d8c6afe9966 100644
+index 1f1f1e33f2e5a..2d8c6afe99663 100644
 --- a/drivers/hid/ithc/ithc-debug.c
 +++ b/drivers/hid/ithc/ithc-debug.c
 @@ -85,10 +85,11 @@ static ssize_t ithc_debugfs_cmd_write(struct file *f, const char __user *buf, si
@@ -1937,7 +1935,7 @@ index 1f1f1e33f2e5..2d8c6afe9966 100644
  	*dbgm = dbg;
 diff --git a/drivers/hid/ithc/ithc-debug.h b/drivers/hid/ithc/ithc-debug.h
 new file mode 100644
-index 000000000000..38c53d916bdb
+index 0000000000000..38c53d916bdb5
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-debug.h
 @@ -0,0 +1,7 @@
@@ -1949,7 +1947,7 @@ index 000000000000..38c53d916bdb
 +void ithc_log_regs(struct ithc *ithc);
 +
 diff --git a/drivers/hid/ithc/ithc-dma.c b/drivers/hid/ithc/ithc-dma.c
-index ffb8689b8a78..bf4eab33062b 100644
+index ffb8689b8a780..bf4eab33062b0 100644
 --- a/drivers/hid/ithc/ithc-dma.c
 +++ b/drivers/hid/ithc/ithc-dma.c
 @@ -173,10 +173,9 @@ int ithc_dma_rx_init(struct ithc *ithc, u8 channel)
@@ -2130,7 +2128,7 @@ index ffb8689b8a78..bf4eab33062b 100644
  	return ret;
  }
 diff --git a/drivers/hid/ithc/ithc-dma.h b/drivers/hid/ithc/ithc-dma.h
-index 93652e4476bf..1749a5819b3e 100644
+index 93652e4476bf8..1749a5819b3e7 100644
 --- a/drivers/hid/ithc/ithc-dma.h
 +++ b/drivers/hid/ithc/ithc-dma.h
 @@ -11,27 +11,6 @@ struct ithc_phys_region_desc {
@@ -2178,7 +2176,7 @@ index 93652e4476bf..1749a5819b3e 100644
  
 diff --git a/drivers/hid/ithc/ithc-hid.c b/drivers/hid/ithc/ithc-hid.c
 new file mode 100644
-index 000000000000..065646ab499e
+index 0000000000000..065646ab499ef
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-hid.c
 @@ -0,0 +1,207 @@
@@ -2391,7 +2389,7 @@ index 000000000000..065646ab499e
 +
 diff --git a/drivers/hid/ithc/ithc-hid.h b/drivers/hid/ithc/ithc-hid.h
 new file mode 100644
-index 000000000000..599eb912c8c8
+index 0000000000000..599eb912c8c84
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-hid.h
 @@ -0,0 +1,32 @@
@@ -2429,7 +2427,7 @@ index 000000000000..599eb912c8c8
 +
 diff --git a/drivers/hid/ithc/ithc-legacy.c b/drivers/hid/ithc/ithc-legacy.c
 new file mode 100644
-index 000000000000..5c1da11e3f1d
+index 0000000000000..5c1da11e3f1d2
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-legacy.c
 @@ -0,0 +1,252 @@
@@ -2687,7 +2685,7 @@ index 000000000000..5c1da11e3f1d
 +
 diff --git a/drivers/hid/ithc/ithc-legacy.h b/drivers/hid/ithc/ithc-legacy.h
 new file mode 100644
-index 000000000000..28d692462072
+index 0000000000000..28d6924620722
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-legacy.h
 @@ -0,0 +1,8 @@
@@ -2700,7 +2698,7 @@ index 000000000000..28d692462072
 +	size_t maxlen);
 +
 diff --git a/drivers/hid/ithc/ithc-main.c b/drivers/hid/ithc/ithc-main.c
-index 87ed4aa70fda..2acf02e41d40 100644
+index 87ed4aa70fda0..2acf02e41d40f 100644
 --- a/drivers/hid/ithc/ithc-main.c
 +++ b/drivers/hid/ithc/ithc-main.c
 @@ -5,28 +5,6 @@
@@ -3130,15 +3128,16 @@ index 87ed4aa70fda..2acf02e41d40 100644
 +		: cfg.has_config && cfg.has_idle_ltr ? (u64)cfg.idle_ltr << 10
 +		: 100 * 1000 * 1000;
 +	ithc_set_ltr_config(ithc, active_ltr_ns, idle_ltr_ns);
- 
--	// Waiting for the following status bit makes reading config much more reliable,
--	// however the official driver does not seem to do this...
--	CHECK(waitl, ithc, &ithc->regs->dma_rx[0].status, DMA_RX_STATUS_UNKNOWN_4, DMA_RX_STATUS_UNKNOWN_4);
++
 +	if (ithc->use_quickspi)
 +		CHECK_RET(ithc_quickspi_init, ithc, &cfg);
 +	else
 +		CHECK_RET(ithc_legacy_init, ithc);
  
+-	// Waiting for the following status bit makes reading config much more reliable,
+-	// however the official driver does not seem to do this...
+-	CHECK(waitl, ithc, &ithc->regs->dma_rx[0].status, DMA_RX_STATUS_UNKNOWN_4, DMA_RX_STATUS_UNKNOWN_4);
+-
 -	// Read configuration data.
 -	for (int retries = 0; ; retries++) {
 -		ithc_log_regs(ithc);
@@ -3230,10 +3229,10 @@ index 87ed4aa70fda..2acf02e41d40 100644
  	// because it calls ithc_hid_parse() which reads the report descriptor via DMA.
 -	CHECK_RET(hid_add_device, ithc->hid);
 +	CHECK_RET(hid_add_device, ithc->hid.dev);
++
++	CHECK(ithc_debug_init_device, ithc);
  
 -	CHECK(ithc_debug_init, ithc);
-+	CHECK(ithc_debug_init_device, ithc);
-+
 +	ithc_set_ltr_idle(ithc);
  
  	pci_dbg(pci, "started\n");
@@ -3261,7 +3260,7 @@ index 87ed4aa70fda..2acf02e41d40 100644
  module_init(ithc_init);
 diff --git a/drivers/hid/ithc/ithc-quickspi.c b/drivers/hid/ithc/ithc-quickspi.c
 new file mode 100644
-index 000000000000..760e55ead078
+index 0000000000000..760e55ead0788
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-quickspi.c
 @@ -0,0 +1,578 @@
@@ -3845,7 +3844,7 @@ index 000000000000..760e55ead078
 +
 diff --git a/drivers/hid/ithc/ithc-quickspi.h b/drivers/hid/ithc/ithc-quickspi.h
 new file mode 100644
-index 000000000000..74d882f6b2f0
+index 0000000000000..74d882f6b2f0a
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-quickspi.h
 @@ -0,0 +1,39 @@
@@ -3889,7 +3888,7 @@ index 000000000000..74d882f6b2f0
 +	size_t maxlen);
 +
 diff --git a/drivers/hid/ithc/ithc-regs.c b/drivers/hid/ithc/ithc-regs.c
-index e058721886e3..c0f13506af20 100644
+index e058721886e37..c0f13506af205 100644
 --- a/drivers/hid/ithc/ithc-regs.c
 +++ b/drivers/hid/ithc/ithc-regs.c
 @@ -22,46 +22,104 @@ void bitsb(__iomem u8 *reg, u8 mask, u8 val)
@@ -4005,7 +4004,7 @@ index e058721886e3..c0f13506af20 100644
  		return -EINVAL;
  
 diff --git a/drivers/hid/ithc/ithc-regs.h b/drivers/hid/ithc/ithc-regs.h
-index d4007d9e2bac..a9d236454644 100644
+index d4007d9e2bacc..a9d2364546442 100644
 --- a/drivers/hid/ithc/ithc-regs.h
 +++ b/drivers/hid/ithc/ithc-regs.h
 @@ -1,14 +1,34 @@
@@ -4226,7 +4225,7 @@ index d4007d9e2bac..a9d236454644 100644
  int ithc_spi_command(struct ithc *ithc, u8 command, u32 offset, u32 size, void *data);
  
 diff --git a/drivers/hid/ithc/ithc.h b/drivers/hid/ithc/ithc.h
-index 028e55a4ec53..e90c38044432 100644
+index 028e55a4ec53e..e90c380444325 100644
 --- a/drivers/hid/ithc/ithc.h
 +++ b/drivers/hid/ithc/ithc.h
 @@ -1,20 +1,19 @@
@@ -4337,5 +4336,5 @@ index 028e55a4ec53..e90c38044432 100644
 -void ithc_log_regs(struct ithc *ithc);
  
 -- 
-2.44.1
+2.45.1
 

+ 367 - 99
patches/6.9/0006-surface-sam.patch → patches/6.9/0007-surface-sam.patch

@@ -1,7 +1,279 @@
-From 9740f9a56b1dff713a6bde51386ceece9bf9b37a Mon Sep 17 00:00:00 2001
+From b4563a0da733d5759de36d9e555ce81324dca286 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Thu, 9 May 2024 16:15:49 +0200
+Subject: [PATCH] serial: Clear UPF_DEAD before calling
+ tty_port_register_device_attr_serdev()
+
+If a serdev_device_driver is already loaded for a serdev_tty_port when it
+gets registered by tty_port_register_device_attr_serdev() then that
+driver's probe() method will be called immediately.
+
+The serdev_device_driver's probe() method should then be able to call
+serdev_device_open() successfully, but because UPF_DEAD is still dead
+serdev_device_open() will fail with -ENXIO in this scenario:
+
+  serdev_device_open()
+  ctrl->ops->open()	/* this callback being ttyport_open() */
+  tty->ops->open()	/* this callback being uart_open() */
+  tty_port_open()
+  port->ops->activate()	/* this callback being uart_port_activate() */
+  Find bit UPF_DEAD is set in uport->flags and fail with errno -ENXIO.
+
+Fix this be clearing UPF_DEAD before tty_port_register_device_attr_serdev()
+note this only moves up the UPD_DEAD clearing a small bit, before:
+
+  tty_port_register_device_attr_serdev();
+  mutex_unlock(&tty_port.mutex);
+  uart_port.flags &= ~UPF_DEAD;
+  mutex_unlock(&port_mutex);
+
+after:
+
+  uart_port.flags &= ~UPF_DEAD;
+  tty_port_register_device_attr_serdev();
+  mutex_unlock(&tty_port.mutex);
+  mutex_unlock(&port_mutex);
+
+Reported-by: Weifeng Liu <weifeng.liu.z@gmail.com>
+Closes: https://lore.kernel.org/platform-driver-x86/20240505130800.2546640-1-weifeng.liu.z@gmail.com/
+Tested-by: Weifeng Liu <weifeng.liu.z@gmail.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Link: https://lore.kernel.org/r/20240509141549.63704-1-hdegoede@redhat.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Patchset: surface-sam
+---
+ drivers/tty/serial/serial_core.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
+index c476d884356db..b47a277978a0b 100644
+--- a/drivers/tty/serial/serial_core.c
++++ b/drivers/tty/serial/serial_core.c
+@@ -3211,6 +3211,9 @@ static int serial_core_add_one_port(struct uart_driver *drv, struct uart_port *u
+ 	if (uport->attr_group)
+ 		uport->tty_groups[1] = uport->attr_group;
+ 
++	/* Ensure serdev drivers can call serdev_device_open() right away */
++	uport->flags &= ~UPF_DEAD;
++
+ 	/*
+ 	 * Register the port whether it's detected or not.  This allows
+ 	 * setserial to be used to alter this port's parameters.
+@@ -3221,6 +3224,7 @@ static int serial_core_add_one_port(struct uart_driver *drv, struct uart_port *u
+ 	if (!IS_ERR(tty_dev)) {
+ 		device_set_wakeup_capable(tty_dev, 1);
+ 	} else {
++		uport->flags |= UPF_DEAD;
+ 		dev_err(uport->dev, "Cannot register tty device on line %d\n",
+ 		       uport->line);
+ 	}
+@@ -3426,8 +3430,6 @@ int serial_core_register_port(struct uart_driver *drv, struct uart_port *port)
+ 	if (ret)
+ 		goto err_unregister_port_dev;
+ 
+-	port->flags &= ~UPF_DEAD;
+-
+ 	mutex_unlock(&port_mutex);
+ 
+ 	return 0;
+-- 
+2.45.1
+
+From 0864ded554efe90dd9603b61e82c604481ee5125 Mon Sep 17 00:00:00 2001
+From: Weifeng Liu <weifeng.liu.z@gmail.com>
+Date: Sun, 5 May 2024 21:07:50 +0800
+Subject: [PATCH] platform/surface: aggregator: Log critical errors during SAM
+ probing
+
+Emits messages upon errors during probing of SAM.  Hopefully this could
+provide useful context to user for the purpose of diagnosis when
+something miserable happen.
+
+Reviewed-by: Maximilian Luz <luzmaximilian@gmail.com>
+Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Signed-off-by: Weifeng Liu <weifeng.liu.z@gmail.com>
+Link: https://lore.kernel.org/r/20240505130800.2546640-3-weifeng.liu.z@gmail.com
+Reviewed-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Patchset: surface-sam
+---
+ drivers/platform/surface/aggregator/core.c | 42 ++++++++++++++--------
+ 1 file changed, 28 insertions(+), 14 deletions(-)
+
+diff --git a/drivers/platform/surface/aggregator/core.c b/drivers/platform/surface/aggregator/core.c
+index ba550eaa06fcf..797d0645bd77f 100644
+--- a/drivers/platform/surface/aggregator/core.c
++++ b/drivers/platform/surface/aggregator/core.c
+@@ -618,15 +618,17 @@ static const struct acpi_gpio_mapping ssam_acpi_gpios[] = {
+ 
+ static int ssam_serial_hub_probe(struct serdev_device *serdev)
+ {
+-	struct acpi_device *ssh = ACPI_COMPANION(&serdev->dev);
++	struct device *dev = &serdev->dev;
++	struct acpi_device *ssh = ACPI_COMPANION(dev);
+ 	struct ssam_controller *ctrl;
+ 	acpi_status astatus;
+ 	int status;
+ 
+-	if (gpiod_count(&serdev->dev, NULL) < 0)
+-		return -ENODEV;
++	status = gpiod_count(dev, NULL);
++	if (status < 0)
++		return dev_err_probe(dev, status, "no GPIO found\n");
+ 
+-	status = devm_acpi_dev_add_driver_gpios(&serdev->dev, ssam_acpi_gpios);
++	status = devm_acpi_dev_add_driver_gpios(dev, ssam_acpi_gpios);
+ 	if (status)
+ 		return status;
+ 
+@@ -637,8 +639,10 @@ static int ssam_serial_hub_probe(struct serdev_device *serdev)
+ 
+ 	/* Initialize controller. */
+ 	status = ssam_controller_init(ctrl, serdev);
+-	if (status)
++	if (status) {
++		dev_err_probe(dev, status, "failed to initialize ssam controller\n");
+ 		goto err_ctrl_init;
++	}
+ 
+ 	ssam_controller_lock(ctrl);
+ 
+@@ -646,12 +650,14 @@ static int ssam_serial_hub_probe(struct serdev_device *serdev)
+ 	serdev_device_set_drvdata(serdev, ctrl);
+ 	serdev_device_set_client_ops(serdev, &ssam_serdev_ops);
+ 	status = serdev_device_open(serdev);
+-	if (status)
++	if (status) {
++		dev_err_probe(dev, status, "failed to open serdev device\n");
+ 		goto err_devopen;
++	}
+ 
+ 	astatus = ssam_serdev_setup_via_acpi(ssh->handle, serdev);
+ 	if (ACPI_FAILURE(astatus)) {
+-		status = -ENXIO;
++		status = dev_err_probe(dev, -ENXIO, "failed to setup serdev\n");
+ 		goto err_devinit;
+ 	}
+ 
+@@ -667,25 +673,33 @@ static int ssam_serial_hub_probe(struct serdev_device *serdev)
+ 	 * states.
+ 	 */
+ 	status = ssam_log_firmware_version(ctrl);
+-	if (status)
++	if (status) {
++		dev_err_probe(dev, status, "failed to get firmware version\n");
+ 		goto err_initrq;
++	}
+ 
+ 	status = ssam_ctrl_notif_d0_entry(ctrl);
+-	if (status)
++	if (status) {
++		dev_err_probe(dev, status, "D0-entry notification failed\n");
+ 		goto err_initrq;
++	}
+ 
+ 	status = ssam_ctrl_notif_display_on(ctrl);
+-	if (status)
++	if (status) {
++		dev_err_probe(dev, status, "display-on notification failed\n");
+ 		goto err_initrq;
++	}
+ 
+-	status = sysfs_create_group(&serdev->dev.kobj, &ssam_sam_group);
++	status = sysfs_create_group(&dev->kobj, &ssam_sam_group);
+ 	if (status)
+ 		goto err_initrq;
+ 
+ 	/* Set up IRQ. */
+ 	status = ssam_irq_setup(ctrl);
+-	if (status)
++	if (status) {
++		dev_err_probe(dev, status, "failed to setup IRQ\n");
+ 		goto err_irq;
++	}
+ 
+ 	/* Finally, set main controller reference. */
+ 	status = ssam_try_set_controller(ctrl);
+@@ -702,7 +716,7 @@ static int ssam_serial_hub_probe(struct serdev_device *serdev)
+ 	 *       resumed. In short, this causes some spurious unwanted wake-ups.
+ 	 *       For now let's thus default power/wakeup to false.
+ 	 */
+-	device_set_wakeup_capable(&serdev->dev, true);
++	device_set_wakeup_capable(dev, true);
+ 	acpi_dev_clear_dependencies(ssh);
+ 
+ 	return 0;
+@@ -710,7 +724,7 @@ static int ssam_serial_hub_probe(struct serdev_device *serdev)
+ err_mainref:
+ 	ssam_irq_free(ctrl);
+ err_irq:
+-	sysfs_remove_group(&serdev->dev.kobj, &ssam_sam_group);
++	sysfs_remove_group(&dev->kobj, &ssam_sam_group);
+ err_initrq:
+ 	ssam_controller_lock(ctrl);
+ 	ssam_controller_shutdown(ctrl);
+-- 
+2.45.1
+
+From d44985653441ba783a830bd5efde2fcf3a3ea271 Mon Sep 17 00:00:00 2001
+From: Maximilian Luz <luzmaximilian@gmail.com>
+Date: Fri, 19 Apr 2024 20:41:47 +0200
+Subject: [PATCH] platform/surface: aggregator: Fix warning when controller is
+ destroyed in probe
+
+There is a small window in ssam_serial_hub_probe() where the controller
+is initialized but has not been started yet. Specifically, between
+ssam_controller_init() and ssam_controller_start(). Any failure in this
+window, for example caused by a failure of serdev_device_open(),
+currently results in an incorrect warning being emitted.
+
+In particular, any failure in this window results in the controller
+being destroyed via ssam_controller_destroy(). This function checks the
+state of the controller and, in an attempt to validate that the
+controller has been cleanly shut down before we try and deallocate any
+resources, emits a warning if that state is not SSAM_CONTROLLER_STOPPED.
+
+However, since we have only just initialized the controller and have not
+yet started it, its state is SSAM_CONTROLLER_INITIALIZED. Note that this
+is the only point at which the controller has this state, as it will
+change after we start the controller with ssam_controller_start() and
+never revert back. Further, at this point no communication has taken
+place and the sender and receiver threads have not been started yet (and
+we may not even have an open serdev device either).
+
+Therefore, it is perfectly safe to call ssam_controller_destroy() with a
+state of SSAM_CONTROLLER_INITIALIZED. This, however, means that the
+warning currently being emitted is incorrect. Fix it by extending the
+check.
+
+Fixes: c167b9c7e3d6 ("platform/surface: Add Surface Aggregator subsystem")
+Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
+Patchset: surface-sam
+---
+ drivers/platform/surface/aggregator/controller.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/platform/surface/aggregator/controller.c b/drivers/platform/surface/aggregator/controller.c
+index 7fc602e01487d..7e89f547999b2 100644
+--- a/drivers/platform/surface/aggregator/controller.c
++++ b/drivers/platform/surface/aggregator/controller.c
+@@ -1354,7 +1354,8 @@ void ssam_controller_destroy(struct ssam_controller *ctrl)
+ 	if (ctrl->state == SSAM_CONTROLLER_UNINITIALIZED)
+ 		return;
+ 
+-	WARN_ON(ctrl->state != SSAM_CONTROLLER_STOPPED);
++	WARN_ON(ctrl->state != SSAM_CONTROLLER_STOPPED &&
++		ctrl->state != SSAM_CONTROLLER_INITIALIZED);
+ 
+ 	/*
+ 	 * Note: New events could still have been received after the previous
+-- 
+2.45.1
+
+From 6b6f860bbef0ba3f10f8dc151ac4e27d0a34c223 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sun, 22 Oct 2023 14:57:11 +0200
-Subject: [PATCH 1/7] platform/surface: aggregator_registry: Add support for
+Subject: [PATCH] platform/surface: aggregator_registry: Add support for
  Surface Laptop Go 3
 
 Add SAM client device nodes for the Surface Laptop Go 3. It seems to use
@@ -15,7 +287,7 @@ Patchset: surface-sam
  1 file changed, 3 insertions(+)
 
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
-index 035d6b4105cd..74688a2ed4b2 100644
+index 035d6b4105cd6..74688a2ed4b2e 100644
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/drivers/platform/surface/surface_aggregator_registry.c
 @@ -374,6 +374,9 @@ static const struct acpi_device_id ssam_platform_hub_match[] = {
@@ -29,13 +301,12 @@ index 035d6b4105cd..74688a2ed4b2 100644
  	{ "MSHW0123", (unsigned long)ssam_node_group_sls },
  
 -- 
-2.44.1
-
+2.45.1
 
-From 3bd7bc9cf8aa02303245ed2e6a18d86d8bd8ff80 Mon Sep 17 00:00:00 2001
+From 31b312c25822404e52a81de2525da5c7bae12864 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Mon, 20 Nov 2023 19:47:00 +0100
-Subject: [PATCH 2/7] platform/surface: aggregator_registry: Add support for
+Subject: [PATCH] platform/surface: aggregator_registry: Add support for
  Surface Laptop Studio 2
 
 Add SAM client device nodes for the Surface Laptop Studio 2 (SLS2). The
@@ -50,7 +321,7 @@ Patchset: surface-sam
  1 file changed, 21 insertions(+), 4 deletions(-)
 
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
-index 74688a2ed4b2..f02a933160ff 100644
+index 74688a2ed4b2e..f02a933160ff2 100644
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/drivers/platform/surface/surface_aggregator_registry.c
 @@ -253,8 +253,8 @@ static const struct software_node *ssam_node_group_sl5[] = {
@@ -100,13 +371,69 @@ index 74688a2ed4b2..f02a933160ff 100644
  	{ },
  };
 -- 
-2.44.1
+2.45.1
 
+From 42f6d14bda5e69c2b5a8d27cfcbd063a5922f876 Mon Sep 17 00:00:00 2001
+From: Maximilian Luz <luzmaximilian@gmail.com>
+Date: Sun, 9 Jun 2024 20:05:57 +0200
+Subject: [PATCH] platform/surface: aggregator_registry: Add support for
+ Surface Laptop 6
+
+Add SAM client device nodes for the Surface Laptop Studio 6 (SL6). The
+SL6 is similar to the SL5, with the typical battery/AC, platform
+profile, and HID nodes. It also has support for the newly supported fan
+interface.
+
+Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
+Patchset: surface-sam
+---
+ .../surface/surface_aggregator_registry.c     | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
 
-From 04d066bc571f06c406ee0837e3db5dfedbba7859 Mon Sep 17 00:00:00 2001
+diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
+index f02a933160ff2..34df1bdad83bd 100644
+--- a/drivers/platform/surface/surface_aggregator_registry.c
++++ b/drivers/platform/surface/surface_aggregator_registry.c
+@@ -253,6 +253,22 @@ static const struct software_node *ssam_node_group_sl5[] = {
+ 	NULL,
+ };
+ 
++/* Devices for Surface Laptop 6. */
++static const struct software_node *ssam_node_group_sl6[] = {
++	&ssam_node_root,
++	&ssam_node_bat_ac,
++	&ssam_node_bat_main,
++	&ssam_node_tmp_perf_profile_with_fan,
++	&ssam_node_tmp_sensors,
++	&ssam_node_fan_speed,
++	&ssam_node_hid_main_keyboard,
++	&ssam_node_hid_main_touchpad,
++	&ssam_node_hid_main_iid5,
++	&ssam_node_hid_sam_sensors,
++	&ssam_node_hid_sam_ucm_ucsi,
++	NULL,
++};
++
+ /* Devices for Surface Laptop Studio 1. */
+ static const struct software_node *ssam_node_group_sls1[] = {
+ 	&ssam_node_root,
+@@ -382,6 +398,9 @@ static const struct acpi_device_id ssam_platform_hub_match[] = {
+ 	/* Surface Laptop 5 */
+ 	{ "MSHW0350", (unsigned long)ssam_node_group_sl5 },
+ 
++	/* Surface Laptop 6 */
++	{ "MSHW0530", (unsigned long)ssam_node_group_sl5 },
++
+ 	/* Surface Laptop Go 1 */
+ 	{ "MSHW0118", (unsigned long)ssam_node_group_slg1 },
+ 
+-- 
+2.45.1
+
+From 88fda328aea3bb7077cd39f854148276dcffcea3 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 30 Dec 2023 18:07:54 +0100
-Subject: [PATCH 3/7] hwmon: Add thermal sensor driver for Surface Aggregator
+Subject: [PATCH] hwmon: Add thermal sensor driver for Surface Aggregator
  Module
 
 Some of the newer Microsoft Surface devices (such as the Surface Book
@@ -125,7 +452,7 @@ Patchset: surface-sam
  create mode 100644 drivers/hwmon/surface_temp.c
 
 diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
-index 83945397b6eb..338ef73c96a3 100644
+index 83945397b6eb1..338ef73c96a3a 100644
 --- a/drivers/hwmon/Kconfig
 +++ b/drivers/hwmon/Kconfig
 @@ -2070,6 +2070,16 @@ config SENSORS_SURFACE_FAN
@@ -146,7 +473,7 @@ index 83945397b6eb..338ef73c96a3 100644
  	tristate "Texas Instruments ADC128D818"
  	depends on I2C
 diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
-index 5c31808f6378..de8bc99719e6 100644
+index 5c31808f6378d..de8bc99719e63 100644
 --- a/drivers/hwmon/Makefile
 +++ b/drivers/hwmon/Makefile
 @@ -208,6 +208,7 @@ obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
@@ -159,7 +486,7 @@ index 5c31808f6378..de8bc99719e6 100644
  obj-$(CONFIG_SENSORS_TC74)	+= tc74.o
 diff --git a/drivers/hwmon/surface_temp.c b/drivers/hwmon/surface_temp.c
 new file mode 100644
-index 000000000000..48c3e826713f
+index 0000000000000..48c3e826713f6
 --- /dev/null
 +++ b/drivers/hwmon/surface_temp.c
 @@ -0,0 +1,165 @@
@@ -329,13 +656,12 @@ index 000000000000..48c3e826713f
 +MODULE_DESCRIPTION("Thermal sensor subsystem driver for Surface System Aggregator Module");
 +MODULE_LICENSE("GPL");
 -- 
-2.44.1
-
+2.45.1
 
-From f97fa8fb9a6a94abd17c9fbc3fa3c719e6012ca8 Mon Sep 17 00:00:00 2001
+From 17f0ec6ef1bc95e152af3a9f2b05ea669c75d24a Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 30 Dec 2023 18:12:23 +0100
-Subject: [PATCH 4/7] hwmon: surface_temp: Add support for sensor names
+Subject: [PATCH] hwmon: surface_temp: Add support for sensor names
 
 The thermal subsystem of the Surface Aggregator Module allows us to
 query the names of the respective thermal sensors. Forward those to
@@ -350,7 +676,7 @@ Patchset: surface-sam
  1 file changed, 96 insertions(+), 17 deletions(-)
 
 diff --git a/drivers/hwmon/surface_temp.c b/drivers/hwmon/surface_temp.c
-index 48c3e826713f..4c08926139db 100644
+index 48c3e826713f6..4c08926139dbf 100644
 --- a/drivers/hwmon/surface_temp.c
 +++ b/drivers/hwmon/surface_temp.c
 @@ -17,6 +17,27 @@
@@ -525,13 +851,12 @@ index 48c3e826713f..4c08926139db 100644
  			"surface_thermal", ssam_temp, &ssam_temp_hwmon_chip_info,
  			NULL);
 -- 
-2.44.1
-
+2.45.1
 
-From 680b16d7ac234ebc3885a898d69105cc00da1c49 Mon Sep 17 00:00:00 2001
+From 54bfa02fe865b9f22d79b112a5244ce81e4961f1 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 30 Dec 2023 18:21:12 +0100
-Subject: [PATCH 5/7] platform/surface: aggregator_registry: Add support for
+Subject: [PATCH] platform/surface: aggregator_registry: Add support for
  thermal sensors on the Surface Pro 9
 
 The Surface Pro 9 has thermal sensors connected via the Surface
@@ -544,7 +869,7 @@ Patchset: surface-sam
  1 file changed, 7 insertions(+)
 
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
-index f02a933160ff..67686042e009 100644
+index 34df1bdad83bd..c0bf0cadcd258 100644
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/drivers/platform/surface/surface_aggregator_registry.c
 @@ -74,6 +74,12 @@ static const struct software_node ssam_node_tmp_pprof = {
@@ -560,7 +885,7 @@ index f02a933160ff..67686042e009 100644
  /* Fan speed function. */
  static const struct software_node ssam_node_fan_speed = {
  	.name = "ssam:01:05:01:01:01",
-@@ -325,6 +331,7 @@ static const struct software_node *ssam_node_group_sp9[] = {
+@@ -341,6 +347,7 @@ static const struct software_node *ssam_node_group_sp9[] = {
  	&ssam_node_bat_ac,
  	&ssam_node_bat_main,
  	&ssam_node_tmp_pprof,
@@ -569,14 +894,12 @@ index f02a933160ff..67686042e009 100644
  	&ssam_node_pos_tablet_switch,
  	&ssam_node_hid_kip_keyboard,
 -- 
-2.44.1
+2.45.1
 
-
-From 500f45035aa04b231d9b7406a0e6f9ade8d6afb0 Mon Sep 17 00:00:00 2001
+From 06c4b5ac6b6357227e45c53643729140d794b48d Mon Sep 17 00:00:00 2001
 From: Ivor Wanders <ivor@iwanders.net>
 Date: Sat, 16 Dec 2023 15:56:39 -0500
-Subject: [PATCH 6/7] platform/surface: platform_profile: add fan profile
- switching
+Subject: [PATCH] platform/surface: platform_profile: add fan profile switching
 
 Change naming from tmp to platform profile to clarify the module may
 interact with both the TMP and FAN subystems. Add functionality that
@@ -590,7 +913,7 @@ Patchset: surface-sam
  2 files changed, 100 insertions(+), 24 deletions(-)
 
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
-index 67686042e009..058b6654a91a 100644
+index c0bf0cadcd258..07a4c4e1120d3 100644
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/drivers/platform/surface/surface_aggregator_registry.c
 @@ -68,8 +68,8 @@ static const struct software_node ssam_node_bat_sb3base = {
@@ -661,7 +984,7 @@ index 67686042e009..058b6654a91a 100644
  	&ssam_node_hid_main_keyboard,
  	&ssam_node_hid_main_touchpad,
  	&ssam_node_hid_main_iid5,
-@@ -264,7 +278,7 @@ static const struct software_node *ssam_node_group_sls1[] = {
+@@ -280,7 +294,7 @@ static const struct software_node *ssam_node_group_sls1[] = {
  	&ssam_node_root,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_main,
@@ -670,7 +993,7 @@ index 67686042e009..058b6654a91a 100644
  	&ssam_node_pos_tablet_switch,
  	&ssam_node_hid_sam_keyboard,
  	&ssam_node_hid_sam_penstash,
-@@ -280,7 +294,7 @@ static const struct software_node *ssam_node_group_sls2[] = {
+@@ -296,7 +310,7 @@ static const struct software_node *ssam_node_group_sls2[] = {
  	&ssam_node_root,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_main,
@@ -679,7 +1002,7 @@ index 67686042e009..058b6654a91a 100644
  	&ssam_node_pos_tablet_switch,
  	&ssam_node_hid_sam_keyboard,
  	&ssam_node_hid_sam_penstash,
-@@ -294,7 +308,7 @@ static const struct software_node *ssam_node_group_slg1[] = {
+@@ -310,7 +324,7 @@ static const struct software_node *ssam_node_group_slg1[] = {
  	&ssam_node_root,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_main,
@@ -688,7 +1011,7 @@ index 67686042e009..058b6654a91a 100644
  	NULL,
  };
  
-@@ -303,7 +317,7 @@ static const struct software_node *ssam_node_group_sp7[] = {
+@@ -319,7 +333,7 @@ static const struct software_node *ssam_node_group_sp7[] = {
  	&ssam_node_root,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_main,
@@ -697,7 +1020,7 @@ index 67686042e009..058b6654a91a 100644
  	NULL,
  };
  
-@@ -313,7 +327,7 @@ static const struct software_node *ssam_node_group_sp8[] = {
+@@ -329,7 +343,7 @@ static const struct software_node *ssam_node_group_sp8[] = {
  	&ssam_node_hub_kip,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_main,
@@ -706,7 +1029,7 @@ index 67686042e009..058b6654a91a 100644
  	&ssam_node_kip_tablet_switch,
  	&ssam_node_hid_kip_keyboard,
  	&ssam_node_hid_kip_penstash,
-@@ -330,7 +344,7 @@ static const struct software_node *ssam_node_group_sp9[] = {
+@@ -346,7 +360,7 @@ static const struct software_node *ssam_node_group_sp9[] = {
  	&ssam_node_hub_kip,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_main,
@@ -716,7 +1039,7 @@ index 67686042e009..058b6654a91a 100644
  	&ssam_node_fan_speed,
  	&ssam_node_pos_tablet_switch,
 diff --git a/drivers/platform/surface/surface_platform_profile.c b/drivers/platform/surface/surface_platform_profile.c
-index a5a3941b3f43..e54d0a8f7daa 100644
+index a5a3941b3f43a..e54d0a8f7daa5 100644
 --- a/drivers/platform/surface/surface_platform_profile.c
 +++ b/drivers/platform/surface/surface_platform_profile.c
 @@ -1,7 +1,7 @@
@@ -860,17 +1183,17 @@ index a5a3941b3f43..e54d0a8f7daa 100644
  
 -	tpd = container_of(pprof, struct ssam_tmp_profile_device, handler);
 +	tpd = container_of(pprof, struct ssam_platform_profile_device, handler);
++
++	tp = convert_profile_to_ssam_tmp(tpd->sdev, profile);
++	if (tp < 0)
++		return tp;
  
 -	tp = convert_profile_to_ssam(tpd->sdev, profile);
-+	tp = convert_profile_to_ssam_tmp(tpd->sdev, profile);
++	tp = ssam_tmp_profile_set(tpd->sdev, tp);
  	if (tp < 0)
  		return tp;
  
 -	return ssam_tmp_profile_set(tpd->sdev, tp);
-+	tp = ssam_tmp_profile_set(tpd->sdev, tp);
-+	if (tp < 0)
-+		return tp;
-+
 +	if (tpd->has_fan) {
 +		tp = convert_profile_to_ssam_fan(tpd->sdev, profile);
 +		if (tp < 0)
@@ -898,60 +1221,5 @@ index a5a3941b3f43..e54d0a8f7daa 100644
  	set_bit(PLATFORM_PROFILE_BALANCED, tpd->handler.choices);
  	set_bit(PLATFORM_PROFILE_BALANCED_PERFORMANCE, tpd->handler.choices);
 -- 
-2.44.1
-
-
-From 0826fa5b802cae18967e733b525ea175cace518d Mon Sep 17 00:00:00 2001
-From: Maximilian Luz <luzmaximilian@gmail.com>
-Date: Fri, 19 Apr 2024 20:41:47 +0200
-Subject: [PATCH 7/7] platform/surface: aggregator: Fix warning when controller
- is destroyed in probe
-
-There is a small window in ssam_serial_hub_probe() where the controller
-is initialized but has not been started yet. Specifically, between
-ssam_controller_init() and ssam_controller_start(). Any failure in this
-window, for example caused by a failure of serdev_device_open(),
-currently results in an incorrect warning being emitted.
-
-In particular, any failure in this window results in the controller
-being destroyed via ssam_controller_destroy(). This function checks the
-state of the controller and, in an attempt to validate that the
-controller has been cleanly shut down before we try and deallocate any
-resources, emits a warning if that state is not SSAM_CONTROLLER_STOPPED.
-
-However, since we have only just initialized the controller and have not
-yet started it, its state is SSAM_CONTROLLER_INITIALIZED. Note that this
-is the only point at which the controller has this state, as it will
-change after we start the controller with ssam_controller_start() and
-never revert back. Further, at this point no communication has taken
-place and the sender and receiver threads have not been started yet (and
-we may not even have an open serdev device either).
-
-Therefore, it is perfectly safe to call ssam_controller_destroy() with a
-state of SSAM_CONTROLLER_INITIALIZED. This, however, means that the
-warning currently being emitted is incorrect. Fix it by extending the
-check.
-
-Fixes: c167b9c7e3d6 ("platform/surface: Add Surface Aggregator subsystem")
-Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
----
- drivers/platform/surface/aggregator/controller.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/platform/surface/aggregator/controller.c b/drivers/platform/surface/aggregator/controller.c
-index 7fc602e01487..7e89f547999b 100644
---- a/drivers/platform/surface/aggregator/controller.c
-+++ b/drivers/platform/surface/aggregator/controller.c
-@@ -1354,7 +1354,8 @@ void ssam_controller_destroy(struct ssam_controller *ctrl)
- 	if (ctrl->state == SSAM_CONTROLLER_UNINITIALIZED)
- 		return;
- 
--	WARN_ON(ctrl->state != SSAM_CONTROLLER_STOPPED);
-+	WARN_ON(ctrl->state != SSAM_CONTROLLER_STOPPED &&
-+		ctrl->state != SSAM_CONTROLLER_INITIALIZED);
- 
- 	/*
- 	 * Note: New events could still have been received after the previous
--- 
-2.44.1
+2.45.1
 

+ 10 - 12
patches/6.9/0007-surface-sam-over-hid.patch → patches/6.9/0008-surface-sam-over-hid.patch

@@ -1,7 +1,7 @@
-From 8586d7576a7338e5811b3eb86bfac1bf7b434e06 Mon Sep 17 00:00:00 2001
+From bf55987e82f9ae913b51a6a269fc1a397930f049 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 25 Jul 2020 17:19:53 +0200
-Subject: [PATCH 1/2] i2c: acpi: Implement RawBytes read access
+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
@@ -55,7 +55,7 @@ Patchset: surface-sam-over-hid
  1 file changed, 35 insertions(+)
 
 diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
-index d6037a328669..a290ebc77aea 100644
+index d6037a3286690..a290ebc77aea2 100644
 --- a/drivers/i2c/i2c-core-acpi.c
 +++ b/drivers/i2c/i2c-core-acpi.c
 @@ -628,6 +628,28 @@ static int acpi_gsb_i2c_write_bytes(struct i2c_client *client,
@@ -108,14 +108,12 @@ index d6037a328669..a290ebc77aea 100644
  		dev_warn(&adapter->dev, "protocol 0x%02x not supported for client 0x%02x\n",
  			 accessor_type, client->addr);
 -- 
-2.44.1
+2.45.1
 
-
-From c9ed90b27e8847666c754779ba2cbcd11a53efc6 Mon Sep 17 00:00:00 2001
+From ebfda7ad73dd90971be10e9d6f59c51c781accbb Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 13 Feb 2021 16:41:18 +0100
-Subject: [PATCH 2/2] platform/surface: Add driver for Surface Book 1 dGPU
- switch
+Subject: [PATCH] platform/surface: 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.
@@ -135,7 +133,7 @@ Patchset: surface-sam-over-hid
  create mode 100644 drivers/platform/surface/surfacebook1_dgpu_switch.c
 
 diff --git a/drivers/platform/surface/Kconfig b/drivers/platform/surface/Kconfig
-index b629e82af97c..68656e8f309e 100644
+index b629e82af97c0..68656e8f309ed 100644
 --- a/drivers/platform/surface/Kconfig
 +++ b/drivers/platform/surface/Kconfig
 @@ -149,6 +149,13 @@ config SURFACE_AGGREGATOR_TABLET_SWITCH
@@ -153,7 +151,7 @@ index b629e82af97c..68656e8f309e 100644
  	tristate "Surface DTX (Detachment System) Driver"
  	depends on SURFACE_AGGREGATOR
 diff --git a/drivers/platform/surface/Makefile b/drivers/platform/surface/Makefile
-index 53344330939b..7efcd0cdb532 100644
+index 53344330939bf..7efcd0cdb5329 100644
 --- a/drivers/platform/surface/Makefile
 +++ b/drivers/platform/surface/Makefile
 @@ -12,6 +12,7 @@ obj-$(CONFIG_SURFACE_AGGREGATOR_CDEV)	+= surface_aggregator_cdev.o
@@ -166,7 +164,7 @@ index 53344330939b..7efcd0cdb532 100644
  obj-$(CONFIG_SURFACE_HOTPLUG)		+= surface_hotplug.o
 diff --git a/drivers/platform/surface/surfacebook1_dgpu_switch.c b/drivers/platform/surface/surfacebook1_dgpu_switch.c
 new file mode 100644
-index 000000000000..8b816ed8f35c
+index 0000000000000..8b816ed8f35c6
 --- /dev/null
 +++ b/drivers/platform/surface/surfacebook1_dgpu_switch.c
 @@ -0,0 +1,162 @@
@@ -333,5 +331,5 @@ index 000000000000..8b816ed8f35c
 +MODULE_DESCRIPTION("Discrete GPU Power-Switch for Surface Book 1");
 +MODULE_LICENSE("GPL");
 -- 
-2.44.1
+2.45.1
 

+ 19 - 21
patches/6.9/0008-surface-button.patch → patches/6.9/0009-surface-button.patch

@@ -1,8 +1,7 @@
-From 4d98c340e8182909ec39477fb382e22952f557c0 Mon Sep 17 00:00:00 2001
+From 1e315f586b0b2bc375b96bb538a3be4c0b09d1ea Mon Sep 17 00:00:00 2001
 From: Sachi King <nakato@nakato.io>
 Date: Tue, 5 Oct 2021 00:05:09 +1100
-Subject: [PATCH 1/2] Input: soc_button_array - support AMD variant Surface
- devices
+Subject: [PATCH] Input: soc_button_array - support AMD variant Surface devices
 
 The power button on the AMD variant of the Surface Laptop uses the
 same MSHW0040 device ID as the 5th and later generation of Surface
@@ -21,7 +20,7 @@ Patchset: surface-button
  1 file changed, 8 insertions(+), 25 deletions(-)
 
 diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c
-index f6d060377d18..b8603f74eb28 100644
+index f6d060377d189..b8603f74eb286 100644
 --- a/drivers/input/misc/soc_button_array.c
 +++ b/drivers/input/misc/soc_button_array.c
 @@ -540,8 +540,8 @@ static const struct soc_device_data soc_device_MSHW0028 = {
@@ -41,18 +40,13 @@ index f6d060377d18..b8603f74eb28 100644
  	acpi_handle handle = ACPI_HANDLE(dev);
 -	union acpi_object *result;
 -	u64 oem_platform_rev = 0;	// valid revisions are nonzero
-+	bool exists;
- 
+-
 -	// get OEM platform revision
 -	result = acpi_evaluate_dsm_typed(handle, &MSHW0040_DSM_UUID,
 -					 MSHW0040_DSM_REVISION,
 -					 MSHW0040_DSM_GET_OMPR, NULL,
 -					 ACPI_TYPE_INTEGER);
-+	// check if OEM platform revision DSM call exists
-+	exists = acpi_check_dsm(handle, &MSHW0040_DSM_UUID,
-+				MSHW0040_DSM_REVISION,
-+				BIT(MSHW0040_DSM_GET_OMPR));
- 
+-
 -	if (result) {
 -		oem_platform_rev = result->integer.value;
 -		ACPI_FREE(result);
@@ -65,22 +59,26 @@ index f6d060377d18..b8603f74eb28 100644
 -	 */
 -	if (oem_platform_rev == 0)
 -		return -ENODEV;
--
++	bool exists;
+ 
 -	dev_dbg(dev, "OEM Platform Revision %llu\n", oem_platform_rev);
--
++	// check if OEM platform revision DSM call exists
++	exists = acpi_check_dsm(handle, &MSHW0040_DSM_UUID,
++				MSHW0040_DSM_REVISION,
++				BIT(MSHW0040_DSM_GET_OMPR));
+ 
 -	return 0;
 +	return exists ? 0 : -ENODEV;
  }
  
  /*
 -- 
-2.44.1
+2.45.1
 
-
-From cf5cec4b4b5d7dfe98710b232c9e1227599ada1a Mon Sep 17 00:00:00 2001
+From ac551644781bce2145c901b16779114b273c4d49 Mon Sep 17 00:00:00 2001
 From: Sachi King <nakato@nakato.io>
 Date: Tue, 5 Oct 2021 00:22:57 +1100
-Subject: [PATCH 2/2] platform/surface: surfacepro3_button: don't load on amd
+Subject: [PATCH] platform/surface: surfacepro3_button: don't load on amd
  variant
 
 The AMD variant of the Surface Laptop report 0 for their OEM platform
@@ -98,7 +96,7 @@ Patchset: surface-button
  1 file changed, 6 insertions(+), 24 deletions(-)
 
 diff --git a/drivers/platform/surface/surfacepro3_button.c b/drivers/platform/surface/surfacepro3_button.c
-index 2755601f979c..4240c98ca226 100644
+index 2755601f979cd..4240c98ca2265 100644
 --- a/drivers/platform/surface/surfacepro3_button.c
 +++ b/drivers/platform/surface/surfacepro3_button.c
 @@ -149,7 +149,8 @@ static int surface_button_resume(struct device *dev)
@@ -117,7 +115,7 @@ index 2755601f979c..4240c98ca226 100644
  	acpi_handle handle = dev->handle;
 -	union acpi_object *result;
 -	u64 oem_platform_rev = 0;	// valid revisions are nonzero
- 
+-
 -	// get OEM platform revision
 -	result = acpi_evaluate_dsm_typed(handle, &MSHW0040_DSM_UUID,
 -					 MSHW0040_DSM_REVISION,
@@ -137,7 +135,7 @@ index 2755601f979c..4240c98ca226 100644
 -	}
 -
 -	dev_dbg(&dev->dev, "OEM Platform Revision %llu\n", oem_platform_rev);
--
+ 
 -	return oem_platform_rev == 0;
 +	// make sure that OEM platform revision DSM call does not exist
 +	return !acpi_check_dsm(handle, &MSHW0040_DSM_UUID,
@@ -147,5 +145,5 @@ index 2755601f979c..4240c98ca226 100644
  
  
 -- 
-2.44.1
+2.45.1
 

+ 14 - 16
patches/6.9/0009-surface-typecover.patch → patches/6.9/0010-surface-typecover.patch

@@ -1,7 +1,7 @@
-From ce569f6ee0bb24bfe2efc37a8aadc287aef1c5eb Mon Sep 17 00:00:00 2001
+From dbe49f128699931e317242ba589c1c22a63eed5f Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 18 Feb 2023 01:02:49 +0100
-Subject: [PATCH 1/3] USB: quirks: Add USB_QUIRK_DELAY_INIT for Surface Go 3
+Subject: [PATCH] USB: quirks: Add USB_QUIRK_DELAY_INIT for Surface Go 3
  Type-Cover
 
 The touchpad on the Type-Cover of the Surface Go 3 is sometimes not
@@ -23,7 +23,7 @@ Patchset: surface-typecover
  1 file changed, 3 insertions(+)
 
 diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
-index b4783574b8e6..360970620589 100644
+index b4783574b8e66..360970620589a 100644
 --- a/drivers/usb/core/quirks.c
 +++ b/drivers/usb/core/quirks.c
 @@ -223,6 +223,9 @@ static const struct usb_device_id usb_quirk_list[] = {
@@ -37,14 +37,13 @@ index b4783574b8e6..360970620589 100644
  	{ USB_DEVICE(0x046a, 0x0023), .driver_info = USB_QUIRK_RESET_RESUME },
  
 -- 
-2.44.1
+2.45.1
 
-
-From 6ec5d78cb24e61fe7601c40032bc1a713a87ad42 Mon Sep 17 00:00:00 2001
+From 89a3afeae85bd60a46bc4c2f0b23fb886452f5be Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Thu, 5 Nov 2020 13:09:45 +0100
-Subject: [PATCH 2/3] hid/multitouch: Turn off Type Cover keyboard backlight
- when suspending
+Subject: [PATCH] hid/multitouch: Turn off Type Cover keyboard backlight when
+ suspending
 
 The Type Cover for Microsoft Surface devices supports a special usb
 control request to disable or enable the built-in keyboard backlight.
@@ -76,7 +75,7 @@ Patchset: surface-typecover
  1 file changed, 98 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
-index 04a014cd2a2f..89c9b00e6371 100644
+index 04a014cd2a2f6..89c9b00e63712 100644
 --- a/drivers/hid/hid-multitouch.c
 +++ b/drivers/hid/hid-multitouch.c
 @@ -34,7 +34,10 @@
@@ -271,14 +270,13 @@ index 04a014cd2a2f..89c9b00e6371 100644
  	{ .driver_data = MT_CLS_GOOGLE,
  		HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, USB_VENDOR_ID_GOOGLE,
 -- 
-2.44.1
-
+2.45.1
 
-From a62411b28850e81c704a44339d15e29049310efb Mon Sep 17 00:00:00 2001
+From 3e3ecb44c93d8259a2a9e97ccfa09eb5b54d1a90 Mon Sep 17 00:00:00 2001
 From: PJungkamp <p.jungkamp@gmail.com>
 Date: Fri, 25 Feb 2022 12:04:25 +0100
-Subject: [PATCH 3/3] hid/multitouch: Add support for surface pro type cover
- tablet switch
+Subject: [PATCH] hid/multitouch: Add support for surface pro type cover tablet
+ switch
 
 The Surface Pro Type Cover has several non standard HID usages in it's
 hid report descriptor.
@@ -303,7 +301,7 @@ Patchset: surface-typecover
  1 file changed, 122 insertions(+), 26 deletions(-)
 
 diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
-index 89c9b00e6371..be131488161c 100644
+index 89c9b00e63712..be131488161cd 100644
 --- a/drivers/hid/hid-multitouch.c
 +++ b/drivers/hid/hid-multitouch.c
 @@ -77,6 +77,7 @@ MODULE_LICENSE("GPL");
@@ -571,5 +569,5 @@ index 89c9b00e6371..be131488161c 100644
  	unregister_pm_notifier(&td->pm_notifier);
  	del_timer_sync(&td->release_timer);
 -- 
-2.44.1
+2.45.1
 

+ 5 - 5
patches/6.9/0010-surface-shutdown.patch → patches/6.9/0011-surface-shutdown.patch

@@ -1,4 +1,4 @@
-From 045c80e1a685de8aa6a306600e5715c320ba3de5 Mon Sep 17 00:00:00 2001
+From 9e0b83c9668c3d0e8e5ce9c254697056940a205d Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sun, 19 Feb 2023 22:12:24 +0100
 Subject: [PATCH] PCI: Add quirk to prevent calling shutdown mehtod
@@ -23,7 +23,7 @@ Patchset: surface-shutdown
  3 files changed, 40 insertions(+)
 
 diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
-index af2996d0d17f..3ce0fb61257d 100644
+index af2996d0d17ff..3ce0fb61257dc 100644
 --- a/drivers/pci/pci-driver.c
 +++ b/drivers/pci/pci-driver.c
 @@ -505,6 +505,9 @@ static void pci_device_shutdown(struct device *dev)
@@ -37,7 +37,7 @@ index af2996d0d17f..3ce0fb61257d 100644
  
  	if (drv && drv->shutdown)
 diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index eff7f5df08e2..d1cb4ff3ebc5 100644
+index eff7f5df08e27..d1cb4ff3ebc57 100644
 --- a/drivers/pci/quirks.c
 +++ b/drivers/pci/quirks.c
 @@ -6253,3 +6253,39 @@ static void pci_fixup_d3cold_delay_1sec(struct pci_dev *pdev)
@@ -81,7 +81,7 @@ index eff7f5df08e2..d1cb4ff3ebc5 100644
 +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x466d, quirk_no_shutdown);  // Thunderbolt 4 NHI
 +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x46a8, quirk_no_shutdown);  // GPU
 diff --git a/include/linux/pci.h b/include/linux/pci.h
-index 16493426a04f..0eb821624056 100644
+index 16493426a04ff..0eb821624056d 100644
 --- a/include/linux/pci.h
 +++ b/include/linux/pci.h
 @@ -465,6 +465,7 @@ struct pci_dev {
@@ -93,5 +93,5 @@ index 16493426a04f..0eb821624056 100644
  	atomic_t	enable_cnt;	/* pci_enable_device has been called */
  
 -- 
-2.44.1
+2.45.1
 

+ 3 - 3
patches/6.9/0011-surface-gpe.patch → patches/6.9/0012-surface-gpe.patch

@@ -1,4 +1,4 @@
-From f5431b805f716b745dd631d8e4919c03ad0a7e76 Mon Sep 17 00:00:00 2001
+From 739ab84095d8ea8ec8fe05447706c6eb2ffa3f35 Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sun, 12 Mar 2023 01:41:57 +0100
 Subject: [PATCH] platform/surface: gpe: Add support for Surface Pro 9
@@ -12,7 +12,7 @@ Patchset: surface-gpe
  1 file changed, 17 insertions(+)
 
 diff --git a/drivers/platform/surface/surface_gpe.c b/drivers/platform/surface/surface_gpe.c
-index 62fd4004db31..103fc4468262 100644
+index 62fd4004db31a..103fc4468262a 100644
 --- a/drivers/platform/surface/surface_gpe.c
 +++ b/drivers/platform/surface/surface_gpe.c
 @@ -41,6 +41,11 @@ static const struct property_entry lid_device_props_l4F[] = {
@@ -47,5 +47,5 @@ index 62fd4004db31..103fc4468262 100644
  		.ident = "Surface Book 1",
  		.matches = {
 -- 
-2.44.1
+2.45.1
 

+ 51 - 61
patches/6.9/0012-cameras.patch → patches/6.9/0013-cameras.patch

@@ -1,8 +1,8 @@
-From 9bb6322136d802c4a42df455f0bce54e1691a206 Mon Sep 17 00:00:00 2001
+From 44ed44fe421e484bcf2de223d7e8077302635772 Mon Sep 17 00:00:00 2001
 From: Hans de Goede <hdegoede@redhat.com>
 Date: Sun, 10 Oct 2021 20:56:57 +0200
-Subject: [PATCH 01/11] ACPI: delay enumeration of devices with a _DEP pointing
- to an INT3472 device
+Subject: [PATCH] ACPI: delay enumeration of devices with a _DEP pointing to an
+ INT3472 device
 
 The clk and regulator frameworks expect clk/regulator consumer-devices
 to have info about the consumed clks/regulators described in the device's
@@ -58,7 +58,7 @@ Patchset: cameras
  1 file changed, 3 insertions(+)
 
 diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
-index d1464324de95..5d865a34dd9d 100644
+index d1464324de951..5d865a34dd9db 100644
 --- a/drivers/acpi/scan.c
 +++ b/drivers/acpi/scan.c
 @@ -2181,6 +2181,9 @@ static acpi_status acpi_bus_check_add_2(acpi_handle handle, u32 lvl_not_used,
@@ -72,14 +72,12 @@ index d1464324de95..5d865a34dd9d 100644
  	 * Do not enumerate devices with enumeration_by_parent flag set as
  	 * they will be enumerated by their respective parents.
 -- 
-2.44.1
+2.45.1
 
-
-From e2f50feee091c07295594805eabe9be3b124352c Mon Sep 17 00:00:00 2001
+From d9d5afcea9880a957d6a8d975a122b4f54ec28c2 Mon Sep 17 00:00:00 2001
 From: zouxiaoh <xiaohong.zou@intel.com>
 Date: Fri, 25 Jun 2021 08:52:59 +0800
-Subject: [PATCH 02/11] iommu: intel-ipu: use IOMMU passthrough mode for Intel
- IPUs
+Subject: [PATCH] iommu: intel-ipu: use IOMMU passthrough mode for Intel IPUs
 
 Intel IPU(Image Processing Unit) has its own (IO)MMU hardware,
 The IPU driver allocates its own page table that is not mapped
@@ -102,7 +100,7 @@ Patchset: cameras
  1 file changed, 30 insertions(+)
 
 diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
-index 61bc54299a59..a61af0f4e9fc 100644
+index 61bc54299a591..a61af0f4e9fce 100644
 --- a/drivers/iommu/intel/iommu.c
 +++ b/drivers/iommu/intel/iommu.c
 @@ -44,6 +44,13 @@
@@ -184,13 +182,12 @@ index 61bc54299a59..a61af0f4e9fc 100644
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9D3E, quirk_iommu_ipts);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x34E4, quirk_iommu_ipts);
 -- 
-2.44.1
-
+2.45.1
 
-From d2fd30586a30e3d32063ea33d50d33919ce521c7 Mon Sep 17 00:00:00 2001
+From bbf2fb14fae6c6bda12e156ff9d027913ab7860f Mon Sep 17 00:00:00 2001
 From: Daniel Scally <djrscally@gmail.com>
 Date: Sun, 10 Oct 2021 20:57:02 +0200
-Subject: [PATCH 03/11] platform/x86: int3472: Enable I2c daisy chain
+Subject: [PATCH] platform/x86: int3472: Enable I2c daisy chain
 
 The TPS68470 PMIC has an I2C passthrough mode through which I2C traffic
 can be forwarded to a device connected to the PMIC as though it were
@@ -204,7 +201,7 @@ Patchset: cameras
  1 file changed, 7 insertions(+)
 
 diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platform/x86/intel/int3472/tps68470.c
-index 1e107fd49f82..e3e1696e7f0e 100644
+index 1e107fd49f828..e3e1696e7f0ee 100644
 --- a/drivers/platform/x86/intel/int3472/tps68470.c
 +++ b/drivers/platform/x86/intel/int3472/tps68470.c
 @@ -46,6 +46,13 @@ static int tps68470_chip_init(struct device *dev, struct regmap *regmap)
@@ -222,13 +219,12 @@ index 1e107fd49f82..e3e1696e7f0e 100644
  
  	return 0;
 -- 
-2.44.1
-
+2.45.1
 
-From 2d9a4443e87df40907e443e63435ead7a3bfe88f Mon Sep 17 00:00:00 2001
+From bc2732708fc2a71f7fe3808aa84cc6eabbdd1285 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <dan.scally@ideasonboard.com>
 Date: Thu, 2 Mar 2023 12:59:39 +0000
-Subject: [PATCH 04/11] platform/x86: int3472: Remap reset GPIO for INT347E
+Subject: [PATCH] platform/x86: int3472: Remap reset GPIO for INT347E
 
 ACPI _HID INT347E represents the OmniVision 7251 camera sensor. The
 driver for this sensor expects a single pin named "enable", but on
@@ -247,7 +243,7 @@ Patchset: cameras
  1 file changed, 14 insertions(+)
 
 diff --git a/drivers/platform/x86/intel/int3472/discrete.c b/drivers/platform/x86/intel/int3472/discrete.c
-index 07b302e09340..1d3097bc7e48 100644
+index 07b302e093407..1d3097bc7e487 100644
 --- a/drivers/platform/x86/intel/int3472/discrete.c
 +++ b/drivers/platform/x86/intel/int3472/discrete.c
 @@ -83,12 +83,26 @@ static int skl_int3472_map_gpio_to_sensor(struct int3472_discrete_device *int347
@@ -278,14 +274,12 @@ index 07b302e09340..1d3097bc7e48 100644
  					    agpio, func, polarity);
  	if (ret)
 -- 
-2.44.1
+2.45.1
 
-
-From 1aadc03192c2591c7b07470948df39a1792f2f70 Mon Sep 17 00:00:00 2001
+From 0180b848e145642574d2a91175f92050dcec1ec7 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <dan.scally@ideasonboard.com>
 Date: Tue, 21 Mar 2023 13:45:26 +0000
-Subject: [PATCH 05/11] media: i2c: Clarify that gain is Analogue gain in
- OV7251
+Subject: [PATCH] media: i2c: Clarify that gain is Analogue gain in OV7251
 
 Update the control ID for the gain control in the ov7251 driver to
 V4L2_CID_ANALOGUE_GAIN.
@@ -297,7 +291,7 @@ Patchset: cameras
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/media/i2c/ov7251.c b/drivers/media/i2c/ov7251.c
-index 30f61e04ecaf..9c1292ca8552 100644
+index 30f61e04ecaf5..9c1292ca85522 100644
 --- a/drivers/media/i2c/ov7251.c
 +++ b/drivers/media/i2c/ov7251.c
 @@ -1051,7 +1051,7 @@ static int ov7251_s_ctrl(struct v4l2_ctrl *ctrl)
@@ -319,13 +313,12 @@ index 30f61e04ecaf..9c1292ca8552 100644
  				     V4L2_CID_TEST_PATTERN,
  				     ARRAY_SIZE(ov7251_test_pattern_menu) - 1,
 -- 
-2.44.1
-
+2.45.1
 
-From 1a66fcaa0d09216340a495e1e87900833a456f78 Mon Sep 17 00:00:00 2001
+From 67553f37af4ea73f824108a08666b537c68972e5 Mon Sep 17 00:00:00 2001
 From: Daniel Scally <dan.scally@ideasonboard.com>
 Date: Wed, 22 Mar 2023 11:01:42 +0000
-Subject: [PATCH 06/11] media: v4l2-core: Acquire privacy led in
+Subject: [PATCH] media: v4l2-core: Acquire privacy led in
  v4l2_async_register_subdev()
 
 The current call to v4l2_subdev_get_privacy_led() is contained in
@@ -341,7 +334,7 @@ Patchset: cameras
  2 files changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c
-index 3ec323bd528b..b55570a0142c 100644
+index 3ec323bd528b1..b55570a0142cb 100644
 --- a/drivers/media/v4l2-core/v4l2-async.c
 +++ b/drivers/media/v4l2-core/v4l2-async.c
 @@ -796,6 +796,10 @@ int v4l2_async_register_subdev(struct v4l2_subdev *sd)
@@ -356,7 +349,7 @@ index 3ec323bd528b..b55570a0142c 100644
  	 * No reference taken. The reference is held by the device (struct
  	 * v4l2_subdev.dev), and async sub-device does not exist independently
 diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
-index 89c7192148df..44eca113e772 100644
+index 89c7192148dfb..44eca113e7727 100644
 --- a/drivers/media/v4l2-core/v4l2-fwnode.c
 +++ b/drivers/media/v4l2-core/v4l2-fwnode.c
 @@ -1219,10 +1219,6 @@ int v4l2_async_register_subdev_sensor(struct v4l2_subdev *sd)
@@ -371,13 +364,12 @@ index 89c7192148df..44eca113e772 100644
  	if (ret < 0)
  		goto out_cleanup;
 -- 
-2.44.1
-
+2.45.1
 
-From ba1f6c4984abef2e5d47f07da45018980d5dabc0 Mon Sep 17 00:00:00 2001
+From 82dff76b0fc0e6d8fec20339edcb52fcb3eb1fac Mon Sep 17 00:00:00 2001
 From: Kate Hsuan <hpa@redhat.com>
 Date: Tue, 21 Mar 2023 23:37:16 +0800
-Subject: [PATCH 07/11] platform: x86: int3472: Add MFD cell for tps68470 LED
+Subject: [PATCH] platform: x86: int3472: Add MFD cell for tps68470 LED
 
 Add MFD cell for tps68470-led.
 
@@ -390,7 +382,7 @@ Patchset: cameras
  1 file changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platform/x86/intel/int3472/tps68470.c
-index e3e1696e7f0e..423dc555093f 100644
+index e3e1696e7f0ee..423dc555093f7 100644
 --- a/drivers/platform/x86/intel/int3472/tps68470.c
 +++ b/drivers/platform/x86/intel/int3472/tps68470.c
 @@ -17,7 +17,7 @@
@@ -413,13 +405,12 @@ index e3e1696e7f0e..423dc555093f 100644
  		for (i = 0; i < board_data->n_gpiod_lookups; i++)
  			gpiod_add_lookup_table(board_data->tps68470_gpio_lookup_tables[i]);
 -- 
-2.44.1
+2.45.1
 
-
-From f9b20b31ae21ea4762c963a5fb1e6c01bde3e726 Mon Sep 17 00:00:00 2001
+From ac5b449b3e7da53dfff6ab59dc32d9714eb2f106 Mon Sep 17 00:00:00 2001
 From: Kate Hsuan <hpa@redhat.com>
 Date: Tue, 21 Mar 2023 23:37:17 +0800
-Subject: [PATCH 08/11] include: mfd: tps68470: Add masks for LEDA and LEDB
+Subject: [PATCH] include: mfd: tps68470: Add masks for LEDA and LEDB
 
 Add flags for both LEDA(TPS68470_ILEDCTL_ENA), LEDB
 (TPS68470_ILEDCTL_ENB), and current control mask for LEDB
@@ -434,7 +425,7 @@ Patchset: cameras
  1 file changed, 5 insertions(+)
 
 diff --git a/include/linux/mfd/tps68470.h b/include/linux/mfd/tps68470.h
-index 7807fa329db0..2d2abb25b944 100644
+index 7807fa329db00..2d2abb25b944f 100644
 --- a/include/linux/mfd/tps68470.h
 +++ b/include/linux/mfd/tps68470.h
 @@ -34,6 +34,7 @@
@@ -455,13 +446,12 @@ index 7807fa329db0..2d2abb25b944 100644
 +
  #endif /* __LINUX_MFD_TPS68470_H */
 -- 
-2.44.1
-
+2.45.1
 
-From adecf115a9a05225e4eb55172f7d0160a8e50b8f Mon Sep 17 00:00:00 2001
+From 3bdaa0c3e0b7dfa3b441e7d19d3f08ff3708e354 Mon Sep 17 00:00:00 2001
 From: Kate Hsuan <hpa@redhat.com>
 Date: Tue, 21 Mar 2023 23:37:18 +0800
-Subject: [PATCH 09/11] leds: tps68470: Add LED control for tps68470
+Subject: [PATCH] leds: tps68470: Add LED control for tps68470
 
 There are two LED controllers, LEDA indicator LED and LEDB flash LED for
 tps68470. LEDA can be enabled by setting TPS68470_ILEDCTL_ENA. Moreover,
@@ -481,7 +471,7 @@ Patchset: cameras
  create mode 100644 drivers/leds/leds-tps68470.c
 
 diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
-index 05e6af88b88c..c120eb0b5aa8 100644
+index 05e6af88b88cd..c120eb0b5aa8e 100644
 --- a/drivers/leds/Kconfig
 +++ b/drivers/leds/Kconfig
 @@ -909,6 +909,18 @@ config LEDS_TPS6105X
@@ -504,7 +494,7 @@ index 05e6af88b88c..c120eb0b5aa8 100644
  	tristate "LED support for SGI Octane machines"
  	depends on LEDS_CLASS
 diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
-index effdfc6f1e95..6ce609b2cdac 100644
+index effdfc6f1e951..6ce609b2cdac6 100644
 --- a/drivers/leds/Makefile
 +++ b/drivers/leds/Makefile
 @@ -86,6 +86,7 @@ obj-$(CONFIG_LEDS_TCA6507)		+= leds-tca6507.o
@@ -517,7 +507,7 @@ index effdfc6f1e95..6ce609b2cdac 100644
  obj-$(CONFIG_LEDS_WM8350)		+= leds-wm8350.o
 diff --git a/drivers/leds/leds-tps68470.c b/drivers/leds/leds-tps68470.c
 new file mode 100644
-index 000000000000..35aeb5db89c8
+index 0000000000000..35aeb5db89c8f
 --- /dev/null
 +++ b/drivers/leds/leds-tps68470.c
 @@ -0,0 +1,185 @@
@@ -707,14 +697,13 @@ index 000000000000..35aeb5db89c8
 +MODULE_DESCRIPTION("LED driver for TPS68470 PMIC");
 +MODULE_LICENSE("GPL v2");
 -- 
-2.44.1
-
+2.45.1
 
-From 3bcfebe8b0d2ddccbabcfd43a083beec6cc896fe Mon Sep 17 00:00:00 2001
+From 05501de0dab9bc531918dcf2b8aa7e679760fd7b Mon Sep 17 00:00:00 2001
 From: mojyack <mojyack@gmail.com>
 Date: Sat, 3 Feb 2024 12:59:53 +0900
-Subject: [PATCH 10/11] media: staging: ipu3-imgu: Fix multiple calls of
- s_stream on stream stop
+Subject: [PATCH] media: staging: ipu3-imgu: Fix multiple calls of s_stream on
+ stream stop
 
 Adapt to 009905e "media: v4l2-subdev: Document and enforce .s_stream() requirements"
 
@@ -724,7 +713,7 @@ Patchset: cameras
  1 file changed, 8 insertions(+), 8 deletions(-)
 
 diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
-index 3df58eb3e882..81aff2d5d898 100644
+index 3df58eb3e8822..81aff2d5d8988 100644
 --- a/drivers/staging/media/ipu3/ipu3-v4l2.c
 +++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
 @@ -538,18 +538,18 @@ static void imgu_vb2_stop_streaming(struct vb2_queue *vq)
@@ -755,24 +744,25 @@ index 3df58eb3e882..81aff2d5d898 100644
  		r = imgu_s_stream(imgu, false);
  		if (!r)
 -- 
-2.44.1
+2.45.1
 
-
-From 5d94cfe88d69350e66c38909a243fcd9f36cb7dd Mon Sep 17 00:00:00 2001
+From c85328d7df3de31a574e42f66192c6a944f48bde Mon Sep 17 00:00:00 2001
 From: mojyack <mojyack@gmail.com>
 Date: Tue, 26 Mar 2024 05:55:44 +0900
-Subject: [PATCH 11/11] media: i2c: dw9719: fix probe error on surface go 2
+Subject: [PATCH] media: i2c: dw9719: fix probe error on surface go 2
 
 On surface go 2, sometimes probing dw9719 fails with "dw9719: probe of i2c-INT347A:00-VCM failed with error -121".
 The -121(-EREMOTEIO) is came from drivers/i2c/busses/i2c-designware-common.c:575, and indicates the initialize occurs too early.
 So just add some delay.
 There is no exact reason for this 10000us, but 100us failed.
+
+Patchset: cameras
 ---
  drivers/media/i2c/dw9719.c | 3 +++
  1 file changed, 3 insertions(+)
 
 diff --git a/drivers/media/i2c/dw9719.c b/drivers/media/i2c/dw9719.c
-index c626ed845928..0094cfda57ea 100644
+index c626ed845928c..0094cfda57ea8 100644
 --- a/drivers/media/i2c/dw9719.c
 +++ b/drivers/media/i2c/dw9719.c
 @@ -82,6 +82,9 @@ static int dw9719_power_up(struct dw9719_device *dw9719)
@@ -786,5 +776,5 @@ index c626ed845928..0094cfda57ea 100644
  	cci_write(dw9719->regmap, DW9719_CONTROL, 1, &ret);
  
 -- 
-2.44.1
+2.45.1
 

+ 9 - 10
patches/6.9/0013-amd-gpio.patch → patches/6.9/0014-amd-gpio.patch

@@ -1,7 +1,7 @@
-From df9777d27612996bc9fb66392c4501ede5bc0b40 Mon Sep 17 00:00:00 2001
+From e0b584d3054d7c69d2e1b4f2ca54e42b79ee5446 Mon Sep 17 00:00:00 2001
 From: Sachi King <nakato@nakato.io>
 Date: Sat, 29 May 2021 17:47:38 +1000
-Subject: [PATCH 1/2] ACPI: Add quirk for Surface Laptop 4 AMD missing irq 7
+Subject: [PATCH] ACPI: Add quirk for Surface Laptop 4 AMD missing irq 7
  override
 
 This patch is the work of Thomas Gleixner <tglx@linutronix.de> and is
@@ -21,7 +21,7 @@ Patchset: amd-gpio
  1 file changed, 17 insertions(+)
 
 diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
-index 4bf82dbd2a6b..7a8cb090c656 100644
+index 4bf82dbd2a6b5..7a8cb090c6568 100644
 --- a/arch/x86/kernel/acpi/boot.c
 +++ b/arch/x86/kernel/acpi/boot.c
 @@ -22,6 +22,7 @@
@@ -63,14 +63,13 @@ index 4bf82dbd2a6b..7a8cb090c656 100644
  	mp_config_acpi_legacy_irqs();
  
 -- 
-2.44.1
+2.45.1
 
-
-From 8952d7102223ba7b0509b0883fdd136ad1b4d51a Mon Sep 17 00:00:00 2001
+From dafa7b45eecb1e02dc857158566d2fb3087fa71f Mon Sep 17 00:00:00 2001
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Thu, 3 Jun 2021 14:04:26 +0200
-Subject: [PATCH 2/2] ACPI: Add AMD 13" Surface Laptop 4 model to irq 7
- override quirk
+Subject: [PATCH] ACPI: Add AMD 13" Surface Laptop 4 model to irq 7 override
+ quirk
 
 The 13" version of the Surface Laptop 4 has the same problem as the 15"
 version, but uses a different SKU. Add that SKU to the quirk as well.
@@ -81,7 +80,7 @@ Patchset: amd-gpio
  1 file changed, 8 insertions(+), 1 deletion(-)
 
 diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
-index 7a8cb090c656..0faafc323e67 100644
+index 7a8cb090c6568..0faafc323e673 100644
 --- a/arch/x86/kernel/acpi/boot.c
 +++ b/arch/x86/kernel/acpi/boot.c
 @@ -1219,12 +1219,19 @@ static void __init mp_config_acpi_legacy_irqs(void)
@@ -106,5 +105,5 @@ index 7a8cb090c656..0faafc323e67 100644
  };
  
 -- 
-2.44.1
+2.45.1
 

+ 3 - 3
patches/6.9/0014-rtc.patch → patches/6.9/0015-rtc.patch

@@ -1,4 +1,4 @@
-From a3e68b456c60e19282771143c322f05fb85a6fb7 Mon Sep 17 00:00:00 2001
+From e3e62473f885786f1b57421f5fed86ac5ba402ac Mon Sep 17 00:00:00 2001
 From: "Bart Groeneveld | GPX Solutions B.V" <bart@gpxbv.nl>
 Date: Mon, 5 Dec 2022 16:08:46 +0100
 Subject: [PATCH] acpi: allow usage of acpi_tad on HW-reduced platforms
@@ -21,7 +21,7 @@ Patchset: rtc
  1 file changed, 24 insertions(+), 12 deletions(-)
 
 diff --git a/drivers/acpi/acpi_tad.c b/drivers/acpi/acpi_tad.c
-index 1d670dbe4d1d..71c9e375ca1c 100644
+index 1d670dbe4d1dd..71c9e375ca1ca 100644
 --- a/drivers/acpi/acpi_tad.c
 +++ b/drivers/acpi/acpi_tad.c
 @@ -432,6 +432,14 @@ static ssize_t caps_show(struct device *dev, struct device_attribute *attr,
@@ -106,5 +106,5 @@ index 1d670dbe4d1d..71c9e375ca1c 100644
  		ret = sysfs_create_group(&dev->kobj, &acpi_tad_dc_attr_group);
  		if (ret)
 -- 
-2.44.1
+2.45.1