Ver Fonte

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 há 1 ano atrás
pai
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>
 From: Tsuchiya Yuto <kitakar@gmail.com>
 Date: Sun, 18 Oct 2020 16:42:44 +0900
 Date: Sun, 18 Oct 2020 16:42:44 +0900
 Subject: [PATCH] (surface3-oemb) add DMI matches for Surface 3 with broken DMI
 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(+)
  3 files changed, 24 insertions(+)
 
 
 diff --git a/drivers/platform/surface/surface3-wmi.c b/drivers/platform/surface/surface3-wmi.c
 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
 --- a/drivers/platform/surface/surface3-wmi.c
 +++ b/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[] = {
 @@ -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
 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
 --- a/sound/soc/codecs/rt5645.c
 +++ b/sound/soc/codecs/rt5645.c
 +++ b/sound/soc/codecs/rt5645.c
 @@ -3777,6 +3777,15 @@ static const struct dmi_system_id dmi_platform_data[] = {
 @@ -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
  		 * 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
 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
 --- a/sound/soc/intel/common/soc-acpi-intel-cht-match.c
 +++ b/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[] = {
 @@ -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>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Tue, 3 Nov 2020 13:28:04 +0100
 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
  devices
 
 
 The most recent firmware of the 88W8897 card reports a hardcoded LTR
 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(-)
  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
 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
 --- a/drivers/net/wireless/marvell/mwifiex/pcie.c
 +++ b/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)
 @@ -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);
  	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
 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
 --- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
 +++ b/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[] = {
 @@ -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)
  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
 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
 --- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
 +++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
 +++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
 @@ -4,6 +4,7 @@
 @@ -4,6 +4,7 @@
@@ -163,13 +163,12 @@ index d6ff964aec5b..5d30ae39d65e 100644
  void mwifiex_initialize_quirks(struct pcie_service_card *card);
  void mwifiex_initialize_quirks(struct pcie_service_card *card);
  int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
  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>
 From: Tsuchiya Yuto <kitakar@gmail.com>
 Date: Sun, 4 Oct 2020 00:11:49 +0900
 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.
 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
 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(-)
  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
 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
 --- a/drivers/net/wireless/marvell/mwifiex/pcie.c
 +++ b/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,
 @@ -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
 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
 --- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
 +++ b/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[] = {
 @@ -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)
  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
 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
 --- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
 +++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
 +++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
 @@ -5,6 +5,7 @@
 @@ -5,6 +5,7 @@
@@ -319,14 +318,13 @@ index 5d30ae39d65e..c14eb56eb911 100644
  void mwifiex_initialize_quirks(struct pcie_service_card *card);
  void mwifiex_initialize_quirks(struct pcie_service_card *card);
  int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
  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>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Thu, 25 Mar 2021 11:33:02 +0100
 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)
 The Marvell 88W8897 combined wifi and bluetooth card (pcie+usb version)
 is used in a lot of Microsoft Surface devices, and all those devices
 is used in a lot of Microsoft Surface devices, and all those devices
@@ -358,7 +356,7 @@ Patchset: mwifiex
  1 file changed, 15 insertions(+)
  1 file changed, 15 insertions(+)
 
 
 diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
 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
 --- a/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
 +++ b/drivers/bluetooth/btusb.c
 @@ -65,6 +65,7 @@ static struct usb_driver btusb_driver;
 @@ -65,6 +65,7 @@ static struct usb_driver btusb_driver;
@@ -398,5 +396,5 @@ index fb716849b60f..1e7b3798108f 100644
  	    (id->driver_info & BTUSB_MEDIATEK)) {
  	    (id->driver_info & BTUSB_MEDIATEK)) {
  		hdev->setup = btusb_mtk_setup;
  		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>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 27 Feb 2021 00:45:52 +0100
 Date: Sat, 27 Feb 2021 00:45:52 +0100
 Subject: [PATCH] ath10k: Add module parameters to override board files
 Subject: [PATCH] ath10k: Add module parameters to override board files
@@ -20,7 +20,7 @@ Patchset: ath10k
  1 file changed, 58 insertions(+)
  1 file changed, 58 insertions(+)
 
 
 diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
 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
 --- a/drivers/net/wireless/ath/ath10k/core.c
 +++ b/drivers/net/wireless/ath/ath10k/core.c
 +++ b/drivers/net/wireless/ath/ath10k/core.c
 @@ -39,6 +39,9 @@ static bool fw_diag_log;
 @@ -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);
  	ret = firmware_request_nowarn(&fw, filename, ar->dev);
  	ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot fw request '%s': %d\n",
  	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>
 From: Dorian Stoll <dorian.stoll@tmsp.io>
 Date: Thu, 30 Jul 2020 13:21:53 +0200
 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>
 Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
 Patchset: ipts
 Patchset: ipts
@@ -11,7 +11,7 @@ Patchset: ipts
  2 files changed, 2 insertions(+)
  2 files changed, 2 insertions(+)
 
 
 diff --git a/drivers/misc/mei/hw-me-regs.h b/drivers/misc/mei/hw-me-regs.h
 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
 --- a/drivers/misc/mei/hw-me-regs.h
 +++ b/drivers/misc/mei/hw-me-regs.h
 +++ b/drivers/misc/mei/hw-me-regs.h
 @@ -92,6 +92,7 @@
 @@ -92,6 +92,7 @@
@@ -23,7 +23,7 @@ index c3a6657dcd4a..82eef2f4eb0a 100644
  
  
  #define MEI_DEV_ID_JSP_N      0x4DE0  /* Jasper Lake Point N */
  #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
 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
 --- a/drivers/misc/mei/pci-me.c
 +++ b/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[] = {
 @@ -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)},
  	{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>
 From: Liban Hannan <liban.p@gmail.com>
 Date: Tue, 12 Apr 2022 23:31:12 +0100
 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.
 Adds a quirk so that IOMMU uses passthrough mode for the IPTS device.
 Otherwise, when IOMMU is enabled, IPTS produces DMAR errors like:
 Otherwise, when IOMMU is enabled, IPTS produces DMAR errors like:
@@ -62,7 +61,7 @@ Patchset: ipts
  1 file changed, 29 insertions(+)
  1 file changed, 29 insertions(+)
 
 
 diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
 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
 --- a/drivers/iommu/intel/iommu.c
 +++ b/drivers/iommu/intel/iommu.c
 +++ b/drivers/iommu/intel/iommu.c
 @@ -39,6 +39,11 @@
 @@ -39,6 +39,11 @@
@@ -143,13 +142,12 @@ index e4a03588a8a0..61bc54299a59 100644
  {
  {
  	if (risky_device(dev))
  	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>
 From: Dorian Stoll <dorian.stoll@tmsp.io>
 Date: Sun, 11 Dec 2022 12:00:59 +0100
 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
 Based on linux-surface/intel-precise-touch@8abe268
 
 
@@ -213,7 +211,7 @@ Patchset: ipts
  create mode 100644 drivers/hid/ipts/thread.h
  create mode 100644 drivers/hid/ipts/thread.h
 
 
 diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
 diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
-index 4c682c650704..a263e49b2ae2 100644
+index 4c682c6507040..a263e49b2ae29 100644
 --- a/drivers/hid/Kconfig
 --- a/drivers/hid/Kconfig
 +++ b/drivers/hid/Kconfig
 +++ b/drivers/hid/Kconfig
 @@ -1351,4 +1351,6 @@ source "drivers/hid/amd-sfh-hid/Kconfig"
 @@ -1351,4 +1351,6 @@ source "drivers/hid/amd-sfh-hid/Kconfig"
@@ -224,7 +222,7 @@ index 4c682c650704..a263e49b2ae2 100644
 +
 +
  endif # HID_SUPPORT
  endif # HID_SUPPORT
 diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
 diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
-index 082a728eac60..f4bad1b8d813 100644
+index 082a728eac600..f4bad1b8d813f 100644
 --- a/drivers/hid/Makefile
 --- a/drivers/hid/Makefile
 +++ b/drivers/hid/Makefile
 +++ b/drivers/hid/Makefile
 @@ -170,3 +170,5 @@ obj-$(INTEL_ISH_FIRMWARE_DOWNLOADER)	+= intel-ish-hid/
 @@ -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/
 +obj-$(CONFIG_HID_IPTS)          += ipts/
 diff --git a/drivers/hid/ipts/Kconfig b/drivers/hid/ipts/Kconfig
 diff --git a/drivers/hid/ipts/Kconfig b/drivers/hid/ipts/Kconfig
 new file mode 100644
 new file mode 100644
-index 000000000000..297401bd388d
+index 0000000000000..297401bd388dd
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/Kconfig
 +++ b/drivers/hid/ipts/Kconfig
 @@ -0,0 +1,14 @@
 @@ -0,0 +1,14 @@
@@ -255,7 +253,7 @@ index 000000000000..297401bd388d
 +	  module will be called ipts.
 +	  module will be called ipts.
 diff --git a/drivers/hid/ipts/Makefile b/drivers/hid/ipts/Makefile
 diff --git a/drivers/hid/ipts/Makefile b/drivers/hid/ipts/Makefile
 new file mode 100644
 new file mode 100644
-index 000000000000..883896f68e6a
+index 0000000000000..883896f68e6ad
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/Makefile
 +++ b/drivers/hid/ipts/Makefile
 @@ -0,0 +1,16 @@
 @@ -0,0 +1,16 @@
@@ -277,7 +275,7 @@ index 000000000000..883896f68e6a
 +ipts-objs += thread.o
 +ipts-objs += thread.o
 diff --git a/drivers/hid/ipts/cmd.c b/drivers/hid/ipts/cmd.c
 diff --git a/drivers/hid/ipts/cmd.c b/drivers/hid/ipts/cmd.c
 new file mode 100644
 new file mode 100644
-index 000000000000..63a4934bbc5f
+index 0000000000000..63a4934bbc5fa
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/cmd.c
 +++ b/drivers/hid/ipts/cmd.c
 @@ -0,0 +1,61 @@
 @@ -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
 diff --git a/drivers/hid/ipts/cmd.h b/drivers/hid/ipts/cmd.h
 new file mode 100644
 new file mode 100644
-index 000000000000..2b4079075b64
+index 0000000000000..2b4079075b642
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/cmd.h
 +++ b/drivers/hid/ipts/cmd.h
 @@ -0,0 +1,60 @@
 @@ -0,0 +1,60 @@
@@ -410,7 +408,7 @@ index 000000000000..2b4079075b64
 +#endif /* IPTS_CMD_H */
 +#endif /* IPTS_CMD_H */
 diff --git a/drivers/hid/ipts/context.h b/drivers/hid/ipts/context.h
 diff --git a/drivers/hid/ipts/context.h b/drivers/hid/ipts/context.h
 new file mode 100644
 new file mode 100644
-index 000000000000..ba33259f1f7c
+index 0000000000000..ba33259f1f7c5
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/context.h
 +++ b/drivers/hid/ipts/context.h
 @@ -0,0 +1,52 @@
 @@ -0,0 +1,52 @@
@@ -468,7 +466,7 @@ index 000000000000..ba33259f1f7c
 +#endif /* IPTS_CONTEXT_H */
 +#endif /* IPTS_CONTEXT_H */
 diff --git a/drivers/hid/ipts/control.c b/drivers/hid/ipts/control.c
 diff --git a/drivers/hid/ipts/control.c b/drivers/hid/ipts/control.c
 new file mode 100644
 new file mode 100644
-index 000000000000..5360842d260b
+index 0000000000000..5360842d260ba
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/control.c
 +++ b/drivers/hid/ipts/control.c
 @@ -0,0 +1,486 @@
 @@ -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
 diff --git a/drivers/hid/ipts/control.h b/drivers/hid/ipts/control.h
 new file mode 100644
 new file mode 100644
-index 000000000000..26629c5144ed
+index 0000000000000..26629c5144edb
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/control.h
 +++ b/drivers/hid/ipts/control.h
 @@ -0,0 +1,126 @@
 @@ -0,0 +1,126 @@
@@ -1092,7 +1090,7 @@ index 000000000000..26629c5144ed
 +#endif /* IPTS_CONTROL_H */
 +#endif /* IPTS_CONTROL_H */
 diff --git a/drivers/hid/ipts/desc.h b/drivers/hid/ipts/desc.h
 diff --git a/drivers/hid/ipts/desc.h b/drivers/hid/ipts/desc.h
 new file mode 100644
 new file mode 100644
-index 000000000000..307438c7c80c
+index 0000000000000..307438c7c80cd
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/desc.h
 +++ b/drivers/hid/ipts/desc.h
 @@ -0,0 +1,80 @@
 @@ -0,0 +1,80 @@
@@ -1178,7 +1176,7 @@ index 000000000000..307438c7c80c
 +#endif /* IPTS_DESC_H */
 +#endif /* IPTS_DESC_H */
 diff --git a/drivers/hid/ipts/eds1.c b/drivers/hid/ipts/eds1.c
 diff --git a/drivers/hid/ipts/eds1.c b/drivers/hid/ipts/eds1.c
 new file mode 100644
 new file mode 100644
-index 000000000000..ecbb3a8bdaf6
+index 0000000000000..ecbb3a8bdaf60
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/eds1.c
 +++ b/drivers/hid/ipts/eds1.c
 @@ -0,0 +1,103 @@
 @@ -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
 diff --git a/drivers/hid/ipts/eds1.h b/drivers/hid/ipts/eds1.h
 new file mode 100644
 new file mode 100644
-index 000000000000..eeeb6575e3e8
+index 0000000000000..eeeb6575e3e89
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/eds1.h
 +++ b/drivers/hid/ipts/eds1.h
 @@ -0,0 +1,35 @@
 @@ -0,0 +1,35 @@
@@ -1328,7 +1326,7 @@ index 000000000000..eeeb6575e3e8
 +			  enum hid_report_type report_type, enum hid_class_request request_type);
 +			  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
 diff --git a/drivers/hid/ipts/eds2.c b/drivers/hid/ipts/eds2.c
 new file mode 100644
 new file mode 100644
-index 000000000000..198dc65d7887
+index 0000000000000..198dc65d78876
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/eds2.c
 +++ b/drivers/hid/ipts/eds2.c
 @@ -0,0 +1,144 @@
 @@ -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
 diff --git a/drivers/hid/ipts/eds2.h b/drivers/hid/ipts/eds2.h
 new file mode 100644
 new file mode 100644
-index 000000000000..064e3716907a
+index 0000000000000..064e3716907ab
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/eds2.h
 +++ b/drivers/hid/ipts/eds2.h
 @@ -0,0 +1,35 @@
 @@ -0,0 +1,35 @@
@@ -1519,7 +1517,7 @@ index 000000000000..064e3716907a
 +			  enum hid_report_type report_type, enum hid_class_request request_type);
 +			  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
 diff --git a/drivers/hid/ipts/hid.c b/drivers/hid/ipts/hid.c
 new file mode 100644
 new file mode 100644
-index 000000000000..e34a1a4f9fa7
+index 0000000000000..e34a1a4f9fa77
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/hid.c
 +++ b/drivers/hid/ipts/hid.c
 @@ -0,0 +1,225 @@
 @@ -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
 diff --git a/drivers/hid/ipts/hid.h b/drivers/hid/ipts/hid.h
 new file mode 100644
 new file mode 100644
-index 000000000000..1ebe77447903
+index 0000000000000..1ebe77447903a
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/hid.h
 +++ b/drivers/hid/ipts/hid.h
 @@ -0,0 +1,24 @@
 @@ -0,0 +1,24 @@
@@ -1780,7 +1778,7 @@ index 000000000000..1ebe77447903
 +#endif /* IPTS_HID_H */
 +#endif /* IPTS_HID_H */
 diff --git a/drivers/hid/ipts/main.c b/drivers/hid/ipts/main.c
 diff --git a/drivers/hid/ipts/main.c b/drivers/hid/ipts/main.c
 new file mode 100644
 new file mode 100644
-index 000000000000..fb5b5c13ee3e
+index 0000000000000..fb5b5c13ee3ea
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/main.c
 +++ b/drivers/hid/ipts/main.c
 @@ -0,0 +1,126 @@
 @@ -0,0 +1,126 @@
@@ -1912,7 +1910,7 @@ index 000000000000..fb5b5c13ee3e
 +MODULE_LICENSE("GPL");
 +MODULE_LICENSE("GPL");
 diff --git a/drivers/hid/ipts/mei.c b/drivers/hid/ipts/mei.c
 diff --git a/drivers/hid/ipts/mei.c b/drivers/hid/ipts/mei.c
 new file mode 100644
 new file mode 100644
-index 000000000000..1e0395ceae4a
+index 0000000000000..1e0395ceae4a4
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/mei.c
 +++ b/drivers/hid/ipts/mei.c
 @@ -0,0 +1,188 @@
 @@ -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
 diff --git a/drivers/hid/ipts/mei.h b/drivers/hid/ipts/mei.h
 new file mode 100644
 new file mode 100644
-index 000000000000..973bade6b0fd
+index 0000000000000..973bade6b0fdd
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/mei.h
 +++ b/drivers/hid/ipts/mei.h
 @@ -0,0 +1,66 @@
 @@ -0,0 +1,66 @@
@@ -2178,7 +2176,7 @@ index 000000000000..973bade6b0fd
 +#endif /* IPTS_MEI_H */
 +#endif /* IPTS_MEI_H */
 diff --git a/drivers/hid/ipts/receiver.c b/drivers/hid/ipts/receiver.c
 diff --git a/drivers/hid/ipts/receiver.c b/drivers/hid/ipts/receiver.c
 new file mode 100644
 new file mode 100644
-index 000000000000..ef66c3c9db80
+index 0000000000000..ef66c3c9db807
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/receiver.c
 +++ b/drivers/hid/ipts/receiver.c
 @@ -0,0 +1,250 @@
 @@ -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
 diff --git a/drivers/hid/ipts/receiver.h b/drivers/hid/ipts/receiver.h
 new file mode 100644
 new file mode 100644
-index 000000000000..3de7da62d40c
+index 0000000000000..3de7da62d40c1
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/receiver.h
 +++ b/drivers/hid/ipts/receiver.h
 @@ -0,0 +1,16 @@
 @@ -0,0 +1,16 @@
@@ -2456,7 +2454,7 @@ index 000000000000..3de7da62d40c
 +#endif /* IPTS_RECEIVER_H */
 +#endif /* IPTS_RECEIVER_H */
 diff --git a/drivers/hid/ipts/resources.c b/drivers/hid/ipts/resources.c
 diff --git a/drivers/hid/ipts/resources.c b/drivers/hid/ipts/resources.c
 new file mode 100644
 new file mode 100644
-index 000000000000..cc14653b2a9f
+index 0000000000000..cc14653b2a9f5
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/resources.c
 +++ b/drivers/hid/ipts/resources.c
 @@ -0,0 +1,131 @@
 @@ -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
 diff --git a/drivers/hid/ipts/resources.h b/drivers/hid/ipts/resources.h
 new file mode 100644
 new file mode 100644
-index 000000000000..2068e13285f0
+index 0000000000000..2068e13285f0e
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/resources.h
 +++ b/drivers/hid/ipts/resources.h
 @@ -0,0 +1,41 @@
 @@ -0,0 +1,41 @@
@@ -2640,7 +2638,7 @@ index 000000000000..2068e13285f0
 +#endif /* IPTS_RESOURCES_H */
 +#endif /* IPTS_RESOURCES_H */
 diff --git a/drivers/hid/ipts/spec-data.h b/drivers/hid/ipts/spec-data.h
 diff --git a/drivers/hid/ipts/spec-data.h b/drivers/hid/ipts/spec-data.h
 new file mode 100644
 new file mode 100644
-index 000000000000..e8dd98895a7e
+index 0000000000000..e8dd98895a7ee
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/spec-data.h
 +++ b/drivers/hid/ipts/spec-data.h
 @@ -0,0 +1,100 @@
 @@ -0,0 +1,100 @@
@@ -2746,7 +2744,7 @@ index 000000000000..e8dd98895a7e
 +#endif /* IPTS_SPEC_DATA_H */
 +#endif /* IPTS_SPEC_DATA_H */
 diff --git a/drivers/hid/ipts/spec-device.h b/drivers/hid/ipts/spec-device.h
 diff --git a/drivers/hid/ipts/spec-device.h b/drivers/hid/ipts/spec-device.h
 new file mode 100644
 new file mode 100644
-index 000000000000..41845f9d9025
+index 0000000000000..41845f9d90257
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/spec-device.h
 +++ b/drivers/hid/ipts/spec-device.h
 @@ -0,0 +1,290 @@
 @@ -0,0 +1,290 @@
@@ -3042,7 +3040,7 @@ index 000000000000..41845f9d9025
 +#endif /* IPTS_SPEC_DEVICE_H */
 +#endif /* IPTS_SPEC_DEVICE_H */
 diff --git a/drivers/hid/ipts/spec-hid.h b/drivers/hid/ipts/spec-hid.h
 diff --git a/drivers/hid/ipts/spec-hid.h b/drivers/hid/ipts/spec-hid.h
 new file mode 100644
 new file mode 100644
-index 000000000000..5a58d4a0a610
+index 0000000000000..5a58d4a0a610f
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/spec-hid.h
 +++ b/drivers/hid/ipts/spec-hid.h
 @@ -0,0 +1,34 @@
 @@ -0,0 +1,34 @@
@@ -3082,7 +3080,7 @@ index 000000000000..5a58d4a0a610
 +#endif /* IPTS_SPEC_HID_H */
 +#endif /* IPTS_SPEC_HID_H */
 diff --git a/drivers/hid/ipts/thread.c b/drivers/hid/ipts/thread.c
 diff --git a/drivers/hid/ipts/thread.c b/drivers/hid/ipts/thread.c
 new file mode 100644
 new file mode 100644
-index 000000000000..355e92bea26f
+index 0000000000000..355e92bea26f8
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/thread.c
 +++ b/drivers/hid/ipts/thread.c
 @@ -0,0 +1,84 @@
 @@ -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
 diff --git a/drivers/hid/ipts/thread.h b/drivers/hid/ipts/thread.h
 new file mode 100644
 new file mode 100644
-index 000000000000..1f966b8b32c4
+index 0000000000000..1f966b8b32c45
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ipts/thread.h
 +++ b/drivers/hid/ipts/thread.h
 @@ -0,0 +1,59 @@
 @@ -0,0 +1,59 @@
@@ -3236,14 +3234,13 @@ index 000000000000..1f966b8b32c4
 +
 +
 +#endif /* IPTS_THREAD_H */
 +#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>
 From: Jasmin Huber <jasmin@jasisonee.ch>
 Date: Mon, 15 Apr 2024 10:22:55 +0200
 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>
 Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
 Patchset: ipts
 Patchset: ipts
@@ -3254,7 +3251,7 @@ Patchset: ipts
  3 files changed, 3 insertions(+)
  3 files changed, 3 insertions(+)
 
 
 diff --git a/drivers/hid/ipts/eds1.c b/drivers/hid/ipts/eds1.c
 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
 --- a/drivers/hid/ipts/eds1.c
 +++ b/drivers/hid/ipts/eds1.c
 +++ b/drivers/hid/ipts/eds1.c
 @@ -14,6 +14,7 @@
 @@ -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)
  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
 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
 --- a/drivers/hid/ipts/eds2.c
 +++ b/drivers/hid/ipts/eds2.c
 +++ b/drivers/hid/ipts/eds2.c
 @@ -15,6 +15,7 @@
 @@ -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)
  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
 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
 --- a/drivers/hid/ipts/receiver.c
 +++ b/drivers/hid/ipts/receiver.c
 +++ b/drivers/hid/ipts/receiver.c
 @@ -16,6 +16,7 @@
 @@ -16,6 +16,7 @@
@@ -3290,5 +3287,5 @@ index ef66c3c9db80..977724c728c3 100644
  #include "spec-device.h"
  #include "spec-device.h"
  #include "thread.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>
 From: Dorian Stoll <dorian.stoll@tmsp.io>
 Date: Sun, 11 Dec 2022 12:03:38 +0100
 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>
 Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
 Patchset: ithc
 Patchset: ithc
@@ -10,7 +10,7 @@ Patchset: ithc
  1 file changed, 16 insertions(+)
  1 file changed, 16 insertions(+)
 
 
 diff --git a/drivers/iommu/intel/irq_remapping.c b/drivers/iommu/intel/irq_remapping.c
 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
 --- a/drivers/iommu/intel/irq_remapping.c
 +++ b/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)
 @@ -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
  	 * 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
  	 * 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>
 From: quo <tuple@list.ru>
 Date: Sun, 11 Dec 2022 12:10:54 +0100
 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
 Based on quo/ithc-linux@0b8b45d
 
 
@@ -73,7 +72,7 @@ Patchset: ithc
  create mode 100644 drivers/hid/ithc/ithc.h
  create mode 100644 drivers/hid/ithc/ithc.h
 
 
 diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
 diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
-index a263e49b2ae2..03f0f5af289a 100644
+index a263e49b2ae29..03f0f5af289a4 100644
 --- a/drivers/hid/Kconfig
 --- a/drivers/hid/Kconfig
 +++ b/drivers/hid/Kconfig
 +++ b/drivers/hid/Kconfig
 @@ -1353,4 +1353,6 @@ source "drivers/hid/surface-hid/Kconfig"
 @@ -1353,4 +1353,6 @@ source "drivers/hid/surface-hid/Kconfig"
@@ -84,7 +83,7 @@ index a263e49b2ae2..03f0f5af289a 100644
 +
 +
  endif # HID_SUPPORT
  endif # HID_SUPPORT
 diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
 diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
-index f4bad1b8d813..d32c194400ae 100644
+index f4bad1b8d813f..d32c194400aea 100644
 --- a/drivers/hid/Makefile
 --- a/drivers/hid/Makefile
 +++ b/drivers/hid/Makefile
 +++ b/drivers/hid/Makefile
 @@ -172,3 +172,4 @@ obj-$(CONFIG_AMD_SFH_HID)       += amd-sfh-hid/
 @@ -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/
 +obj-$(CONFIG_HID_ITHC)          += ithc/
 diff --git a/drivers/hid/ithc/Kbuild b/drivers/hid/ithc/Kbuild
 diff --git a/drivers/hid/ithc/Kbuild b/drivers/hid/ithc/Kbuild
 new file mode 100644
 new file mode 100644
-index 000000000000..aea83f2ac07b
+index 0000000000000..aea83f2ac07b4
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/Kbuild
 +++ b/drivers/hid/ithc/Kbuild
 @@ -0,0 +1,6 @@
 @@ -0,0 +1,6 @@
@@ -106,7 +105,7 @@ index 000000000000..aea83f2ac07b
 +
 +
 diff --git a/drivers/hid/ithc/Kconfig b/drivers/hid/ithc/Kconfig
 diff --git a/drivers/hid/ithc/Kconfig b/drivers/hid/ithc/Kconfig
 new file mode 100644
 new file mode 100644
-index 000000000000..ede713023609
+index 0000000000000..ede7130236096
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/Kconfig
 +++ b/drivers/hid/ithc/Kconfig
 @@ -0,0 +1,12 @@
 @@ -0,0 +1,12 @@
@@ -124,7 +123,7 @@ index 000000000000..ede713023609
 +	  module will be called ithc.
 +	  module will be called ithc.
 diff --git a/drivers/hid/ithc/ithc-debug.c b/drivers/hid/ithc/ithc-debug.c
 diff --git a/drivers/hid/ithc/ithc-debug.c b/drivers/hid/ithc/ithc-debug.c
 new file mode 100644
 new file mode 100644
-index 000000000000..1f1f1e33f2e5
+index 0000000000000..1f1f1e33f2e5a
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-debug.c
 +++ b/drivers/hid/ithc/ithc-debug.c
 @@ -0,0 +1,130 @@
 @@ -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
 diff --git a/drivers/hid/ithc/ithc-dma.c b/drivers/hid/ithc/ithc-dma.c
 new file mode 100644
 new file mode 100644
-index 000000000000..ffb8689b8a78
+index 0000000000000..ffb8689b8a780
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-dma.c
 +++ b/drivers/hid/ithc/ithc-dma.c
 @@ -0,0 +1,373 @@
 @@ -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
 diff --git a/drivers/hid/ithc/ithc-dma.h b/drivers/hid/ithc/ithc-dma.h
 new file mode 100644
 new file mode 100644
-index 000000000000..93652e4476bf
+index 0000000000000..93652e4476bf8
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-dma.h
 +++ b/drivers/hid/ithc/ithc-dma.h
 @@ -0,0 +1,69 @@
 @@ -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
 diff --git a/drivers/hid/ithc/ithc-main.c b/drivers/hid/ithc/ithc-main.c
 new file mode 100644
 new file mode 100644
-index 000000000000..87ed4aa70fda
+index 0000000000000..87ed4aa70fda0
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-main.c
 +++ b/drivers/hid/ithc/ithc-main.c
 @@ -0,0 +1,728 @@
 @@ -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
 diff --git a/drivers/hid/ithc/ithc-regs.c b/drivers/hid/ithc/ithc-regs.c
 new file mode 100644
 new file mode 100644
-index 000000000000..e058721886e3
+index 0000000000000..e058721886e37
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-regs.c
 +++ b/drivers/hid/ithc/ithc-regs.c
 @@ -0,0 +1,96 @@
 @@ -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
 diff --git a/drivers/hid/ithc/ithc-regs.h b/drivers/hid/ithc/ithc-regs.h
 new file mode 100644
 new file mode 100644
-index 000000000000..d4007d9e2bac
+index 0000000000000..d4007d9e2bacc
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-regs.h
 +++ b/drivers/hid/ithc/ithc-regs.h
 @@ -0,0 +1,189 @@
 @@ -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
 diff --git a/drivers/hid/ithc/ithc.h b/drivers/hid/ithc/ithc.h
 new file mode 100644
 new file mode 100644
-index 000000000000..028e55a4ec53
+index 0000000000000..028e55a4ec53e
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc.h
 +++ b/drivers/hid/ithc/ithc.h
 @@ -0,0 +1,67 @@
 @@ -0,0 +1,67 @@
@@ -1817,13 +1816,12 @@ index 000000000000..028e55a4ec53
 +void ithc_log_regs(struct ithc *ithc);
 +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>
 From: quo <tuple@list.ru>
 Date: Fri, 19 Apr 2024 22:11:09 +0200
 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
  - Added QuickSPI support for Surface Laptop Studio 2
  - Use Latency Tolerance Reporting instead of manual CPU latency adjustments
  - 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-hid.h      |  32 ++
  drivers/hid/ithc/ithc-legacy.c   | 252 ++++++++++++++
  drivers/hid/ithc/ithc-legacy.c   | 252 ++++++++++++++
  drivers/hid/ithc/ithc-legacy.h   |   8 +
  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.c | 578 +++++++++++++++++++++++++++++++
  drivers/hid/ithc/ithc-quickspi.h |  39 +++
  drivers/hid/ithc/ithc-quickspi.h |  39 +++
  drivers/hid/ithc/ithc-regs.c     |  72 +++-
  drivers/hid/ithc/ithc-regs.c     |  72 +++-
  drivers/hid/ithc/ithc-regs.h     | 143 ++++----
  drivers/hid/ithc/ithc-regs.h     | 143 ++++----
  drivers/hid/ithc/ithc.h          |  71 ++--
  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-debug.h
  create mode 100644 drivers/hid/ithc/ithc-hid.c
  create mode 100644 drivers/hid/ithc/ithc-hid.c
  create mode 100644 drivers/hid/ithc/ithc-hid.h
  create mode 100644 drivers/hid/ithc/ithc-hid.h
@@ -1858,7 +1856,7 @@ Patchset: ithc
  create mode 100644 drivers/hid/ithc/ithc-quickspi.h
  create mode 100644 drivers/hid/ithc/ithc-quickspi.h
 
 
 diff --git a/drivers/hid/ithc/Kbuild b/drivers/hid/ithc/Kbuild
 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
 --- a/drivers/hid/ithc/Kbuild
 +++ b/drivers/hid/ithc/Kbuild
 +++ b/drivers/hid/ithc/Kbuild
 @@ -1,6 +1,6 @@
 @@ -1,6 +1,6 @@
@@ -1870,7 +1868,7 @@ index aea83f2ac07b..4937ba131297 100644
  ccflags-y := -std=gnu11 -Wno-declaration-after-statement
  ccflags-y := -std=gnu11 -Wno-declaration-after-statement
  
  
 diff --git a/drivers/hid/ithc/ithc-debug.c b/drivers/hid/ithc/ithc-debug.c
 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
 --- a/drivers/hid/ithc/ithc-debug.c
 +++ b/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
 @@ -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;
  	*dbgm = dbg;
 diff --git a/drivers/hid/ithc/ithc-debug.h b/drivers/hid/ithc/ithc-debug.h
 diff --git a/drivers/hid/ithc/ithc-debug.h b/drivers/hid/ithc/ithc-debug.h
 new file mode 100644
 new file mode 100644
-index 000000000000..38c53d916bdb
+index 0000000000000..38c53d916bdb5
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-debug.h
 +++ b/drivers/hid/ithc/ithc-debug.h
 @@ -0,0 +1,7 @@
 @@ -0,0 +1,7 @@
@@ -1949,7 +1947,7 @@ index 000000000000..38c53d916bdb
 +void ithc_log_regs(struct ithc *ithc);
 +void ithc_log_regs(struct ithc *ithc);
 +
 +
 diff --git a/drivers/hid/ithc/ithc-dma.c b/drivers/hid/ithc/ithc-dma.c
 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
 --- a/drivers/hid/ithc/ithc-dma.c
 +++ b/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)
 @@ -173,10 +173,9 @@ int ithc_dma_rx_init(struct ithc *ithc, u8 channel)
@@ -2130,7 +2128,7 @@ index ffb8689b8a78..bf4eab33062b 100644
  	return ret;
  	return ret;
  }
  }
 diff --git a/drivers/hid/ithc/ithc-dma.h b/drivers/hid/ithc/ithc-dma.h
 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
 --- a/drivers/hid/ithc/ithc-dma.h
 +++ b/drivers/hid/ithc/ithc-dma.h
 +++ b/drivers/hid/ithc/ithc-dma.h
 @@ -11,27 +11,6 @@ struct ithc_phys_region_desc {
 @@ -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
 diff --git a/drivers/hid/ithc/ithc-hid.c b/drivers/hid/ithc/ithc-hid.c
 new file mode 100644
 new file mode 100644
-index 000000000000..065646ab499e
+index 0000000000000..065646ab499ef
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-hid.c
 +++ b/drivers/hid/ithc/ithc-hid.c
 @@ -0,0 +1,207 @@
 @@ -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
 diff --git a/drivers/hid/ithc/ithc-hid.h b/drivers/hid/ithc/ithc-hid.h
 new file mode 100644
 new file mode 100644
-index 000000000000..599eb912c8c8
+index 0000000000000..599eb912c8c84
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-hid.h
 +++ b/drivers/hid/ithc/ithc-hid.h
 @@ -0,0 +1,32 @@
 @@ -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
 diff --git a/drivers/hid/ithc/ithc-legacy.c b/drivers/hid/ithc/ithc-legacy.c
 new file mode 100644
 new file mode 100644
-index 000000000000..5c1da11e3f1d
+index 0000000000000..5c1da11e3f1d2
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-legacy.c
 +++ b/drivers/hid/ithc/ithc-legacy.c
 @@ -0,0 +1,252 @@
 @@ -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
 diff --git a/drivers/hid/ithc/ithc-legacy.h b/drivers/hid/ithc/ithc-legacy.h
 new file mode 100644
 new file mode 100644
-index 000000000000..28d692462072
+index 0000000000000..28d6924620722
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-legacy.h
 +++ b/drivers/hid/ithc/ithc-legacy.h
 @@ -0,0 +1,8 @@
 @@ -0,0 +1,8 @@
@@ -2700,7 +2698,7 @@ index 000000000000..28d692462072
 +	size_t maxlen);
 +	size_t maxlen);
 +
 +
 diff --git a/drivers/hid/ithc/ithc-main.c b/drivers/hid/ithc/ithc-main.c
 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
 --- a/drivers/hid/ithc/ithc-main.c
 +++ b/drivers/hid/ithc/ithc-main.c
 +++ b/drivers/hid/ithc/ithc-main.c
 @@ -5,28 +5,6 @@
 @@ -5,28 +5,6 @@
@@ -3130,15 +3128,16 @@ index 87ed4aa70fda..2acf02e41d40 100644
 +		: cfg.has_config && cfg.has_idle_ltr ? (u64)cfg.idle_ltr << 10
 +		: cfg.has_config && cfg.has_idle_ltr ? (u64)cfg.idle_ltr << 10
 +		: 100 * 1000 * 1000;
 +		: 100 * 1000 * 1000;
 +	ithc_set_ltr_config(ithc, active_ltr_ns, idle_ltr_ns);
 +	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)
 +	if (ithc->use_quickspi)
 +		CHECK_RET(ithc_quickspi_init, ithc, &cfg);
 +		CHECK_RET(ithc_quickspi_init, ithc, &cfg);
 +	else
 +	else
 +		CHECK_RET(ithc_legacy_init, ithc);
 +		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.
 -	// Read configuration data.
 -	for (int retries = 0; ; retries++) {
 -	for (int retries = 0; ; retries++) {
 -		ithc_log_regs(ithc);
 -		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.
  	// 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);
 +	CHECK_RET(hid_add_device, ithc->hid.dev);
 +	CHECK_RET(hid_add_device, ithc->hid.dev);
++
++	CHECK(ithc_debug_init_device, ithc);
  
  
 -	CHECK(ithc_debug_init, ithc);
 -	CHECK(ithc_debug_init, ithc);
-+	CHECK(ithc_debug_init_device, ithc);
-+
 +	ithc_set_ltr_idle(ithc);
 +	ithc_set_ltr_idle(ithc);
  
  
  	pci_dbg(pci, "started\n");
  	pci_dbg(pci, "started\n");
@@ -3261,7 +3260,7 @@ index 87ed4aa70fda..2acf02e41d40 100644
  module_init(ithc_init);
  module_init(ithc_init);
 diff --git a/drivers/hid/ithc/ithc-quickspi.c b/drivers/hid/ithc/ithc-quickspi.c
 diff --git a/drivers/hid/ithc/ithc-quickspi.c b/drivers/hid/ithc/ithc-quickspi.c
 new file mode 100644
 new file mode 100644
-index 000000000000..760e55ead078
+index 0000000000000..760e55ead0788
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-quickspi.c
 +++ b/drivers/hid/ithc/ithc-quickspi.c
 @@ -0,0 +1,578 @@
 @@ -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
 diff --git a/drivers/hid/ithc/ithc-quickspi.h b/drivers/hid/ithc/ithc-quickspi.h
 new file mode 100644
 new file mode 100644
-index 000000000000..74d882f6b2f0
+index 0000000000000..74d882f6b2f0a
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hid/ithc/ithc-quickspi.h
 +++ b/drivers/hid/ithc/ithc-quickspi.h
 @@ -0,0 +1,39 @@
 @@ -0,0 +1,39 @@
@@ -3889,7 +3888,7 @@ index 000000000000..74d882f6b2f0
 +	size_t maxlen);
 +	size_t maxlen);
 +
 +
 diff --git a/drivers/hid/ithc/ithc-regs.c b/drivers/hid/ithc/ithc-regs.c
 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
 --- a/drivers/hid/ithc/ithc-regs.c
 +++ b/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)
 @@ -22,46 +22,104 @@ void bitsb(__iomem u8 *reg, u8 mask, u8 val)
@@ -4005,7 +4004,7 @@ index e058721886e3..c0f13506af20 100644
  		return -EINVAL;
  		return -EINVAL;
  
  
 diff --git a/drivers/hid/ithc/ithc-regs.h b/drivers/hid/ithc/ithc-regs.h
 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
 --- a/drivers/hid/ithc/ithc-regs.h
 +++ b/drivers/hid/ithc/ithc-regs.h
 +++ b/drivers/hid/ithc/ithc-regs.h
 @@ -1,14 +1,34 @@
 @@ -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);
  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
 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
 --- a/drivers/hid/ithc/ithc.h
 +++ b/drivers/hid/ithc/ithc.h
 +++ b/drivers/hid/ithc/ithc.h
 @@ -1,20 +1,19 @@
 @@ -1,20 +1,19 @@
@@ -4337,5 +4336,5 @@ index 028e55a4ec53..e90c38044432 100644
 -void ithc_log_regs(struct ithc *ithc);
 -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>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sun, 22 Oct 2023 14:57:11 +0200
 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
  Surface Laptop Go 3
 
 
 Add SAM client device nodes for the Surface Laptop Go 3. It seems to use
 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(+)
  1 file changed, 3 insertions(+)
 
 
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
 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
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/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[] = {
 @@ -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 },
  	{ "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>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Mon, 20 Nov 2023 19:47:00 +0100
 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
  Surface Laptop Studio 2
 
 
 Add SAM client device nodes for the Surface Laptop Studio 2 (SLS2). The
 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(-)
  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
 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
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/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[] = {
 @@ -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>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 30 Dec 2023 18:07:54 +0100
 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
  Module
 
 
 Some of the newer Microsoft Surface devices (such as the Surface Book
 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
  create mode 100644 drivers/hwmon/surface_temp.c
 
 
 diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
 diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
-index 83945397b6eb..338ef73c96a3 100644
+index 83945397b6eb1..338ef73c96a3a 100644
 --- a/drivers/hwmon/Kconfig
 --- a/drivers/hwmon/Kconfig
 +++ b/drivers/hwmon/Kconfig
 +++ b/drivers/hwmon/Kconfig
 @@ -2070,6 +2070,16 @@ config SENSORS_SURFACE_FAN
 @@ -2070,6 +2070,16 @@ config SENSORS_SURFACE_FAN
@@ -146,7 +473,7 @@ index 83945397b6eb..338ef73c96a3 100644
  	tristate "Texas Instruments ADC128D818"
  	tristate "Texas Instruments ADC128D818"
  	depends on I2C
  	depends on I2C
 diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
 diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
-index 5c31808f6378..de8bc99719e6 100644
+index 5c31808f6378d..de8bc99719e63 100644
 --- a/drivers/hwmon/Makefile
 --- a/drivers/hwmon/Makefile
 +++ b/drivers/hwmon/Makefile
 +++ b/drivers/hwmon/Makefile
 @@ -208,6 +208,7 @@ obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
 @@ -208,6 +208,7 @@ obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
@@ -159,7 +486,7 @@ index 5c31808f6378..de8bc99719e6 100644
  obj-$(CONFIG_SENSORS_TC74)	+= tc74.o
  obj-$(CONFIG_SENSORS_TC74)	+= tc74.o
 diff --git a/drivers/hwmon/surface_temp.c b/drivers/hwmon/surface_temp.c
 diff --git a/drivers/hwmon/surface_temp.c b/drivers/hwmon/surface_temp.c
 new file mode 100644
 new file mode 100644
-index 000000000000..48c3e826713f
+index 0000000000000..48c3e826713f6
 --- /dev/null
 --- /dev/null
 +++ b/drivers/hwmon/surface_temp.c
 +++ b/drivers/hwmon/surface_temp.c
 @@ -0,0 +1,165 @@
 @@ -0,0 +1,165 @@
@@ -329,13 +656,12 @@ index 000000000000..48c3e826713f
 +MODULE_DESCRIPTION("Thermal sensor subsystem driver for Surface System Aggregator Module");
 +MODULE_DESCRIPTION("Thermal sensor subsystem driver for Surface System Aggregator Module");
 +MODULE_LICENSE("GPL");
 +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>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 30 Dec 2023 18:12:23 +0100
 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
 The thermal subsystem of the Surface Aggregator Module allows us to
 query the names of the respective thermal sensors. Forward those 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(-)
  1 file changed, 96 insertions(+), 17 deletions(-)
 
 
 diff --git a/drivers/hwmon/surface_temp.c b/drivers/hwmon/surface_temp.c
 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
 --- a/drivers/hwmon/surface_temp.c
 +++ b/drivers/hwmon/surface_temp.c
 +++ b/drivers/hwmon/surface_temp.c
 @@ -17,6 +17,27 @@
 @@ -17,6 +17,27 @@
@@ -525,13 +851,12 @@ index 48c3e826713f..4c08926139db 100644
  			"surface_thermal", ssam_temp, &ssam_temp_hwmon_chip_info,
  			"surface_thermal", ssam_temp, &ssam_temp_hwmon_chip_info,
  			NULL);
  			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>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 30 Dec 2023 18:21:12 +0100
 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
  thermal sensors on the Surface Pro 9
 
 
 The Surface Pro 9 has thermal sensors connected via the Surface
 The Surface Pro 9 has thermal sensors connected via the Surface
@@ -544,7 +869,7 @@ Patchset: surface-sam
  1 file changed, 7 insertions(+)
  1 file changed, 7 insertions(+)
 
 
 diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
 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
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/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 = {
 @@ -74,6 +74,12 @@ static const struct software_node ssam_node_tmp_pprof = {
@@ -560,7 +885,7 @@ index f02a933160ff..67686042e009 100644
  /* Fan speed function. */
  /* Fan speed function. */
  static const struct software_node ssam_node_fan_speed = {
  static const struct software_node ssam_node_fan_speed = {
  	.name = "ssam:01:05:01:01:01",
  	.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_ac,
  	&ssam_node_bat_main,
  	&ssam_node_bat_main,
  	&ssam_node_tmp_pprof,
  	&ssam_node_tmp_pprof,
@@ -569,14 +894,12 @@ index f02a933160ff..67686042e009 100644
  	&ssam_node_pos_tablet_switch,
  	&ssam_node_pos_tablet_switch,
  	&ssam_node_hid_kip_keyboard,
  	&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>
 From: Ivor Wanders <ivor@iwanders.net>
 Date: Sat, 16 Dec 2023 15:56:39 -0500
 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
 Change naming from tmp to platform profile to clarify the module may
 interact with both the TMP and FAN subystems. Add functionality that
 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(-)
  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
 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
 --- a/drivers/platform/surface/surface_aggregator_registry.c
 +++ b/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 = {
 @@ -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_keyboard,
  	&ssam_node_hid_main_touchpad,
  	&ssam_node_hid_main_touchpad,
  	&ssam_node_hid_main_iid5,
  	&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_root,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_main,
  	&ssam_node_bat_main,
@@ -670,7 +993,7 @@ index 67686042e009..058b6654a91a 100644
  	&ssam_node_pos_tablet_switch,
  	&ssam_node_pos_tablet_switch,
  	&ssam_node_hid_sam_keyboard,
  	&ssam_node_hid_sam_keyboard,
  	&ssam_node_hid_sam_penstash,
  	&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_root,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_main,
  	&ssam_node_bat_main,
@@ -679,7 +1002,7 @@ index 67686042e009..058b6654a91a 100644
  	&ssam_node_pos_tablet_switch,
  	&ssam_node_pos_tablet_switch,
  	&ssam_node_hid_sam_keyboard,
  	&ssam_node_hid_sam_keyboard,
  	&ssam_node_hid_sam_penstash,
  	&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_root,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_main,
  	&ssam_node_bat_main,
@@ -688,7 +1011,7 @@ index 67686042e009..058b6654a91a 100644
  	NULL,
  	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_root,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_main,
  	&ssam_node_bat_main,
@@ -697,7 +1020,7 @@ index 67686042e009..058b6654a91a 100644
  	NULL,
  	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_hub_kip,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_main,
  	&ssam_node_bat_main,
@@ -706,7 +1029,7 @@ index 67686042e009..058b6654a91a 100644
  	&ssam_node_kip_tablet_switch,
  	&ssam_node_kip_tablet_switch,
  	&ssam_node_hid_kip_keyboard,
  	&ssam_node_hid_kip_keyboard,
  	&ssam_node_hid_kip_penstash,
  	&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_hub_kip,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_ac,
  	&ssam_node_bat_main,
  	&ssam_node_bat_main,
@@ -716,7 +1039,7 @@ index 67686042e009..058b6654a91a 100644
  	&ssam_node_fan_speed,
  	&ssam_node_fan_speed,
  	&ssam_node_pos_tablet_switch,
  	&ssam_node_pos_tablet_switch,
 diff --git a/drivers/platform/surface/surface_platform_profile.c b/drivers/platform/surface/surface_platform_profile.c
 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
 --- a/drivers/platform/surface/surface_platform_profile.c
 +++ b/drivers/platform/surface/surface_platform_profile.c
 +++ b/drivers/platform/surface/surface_platform_profile.c
 @@ -1,7 +1,7 @@
 @@ -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_tmp_profile_device, handler);
 +	tpd = container_of(pprof, struct ssam_platform_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(tpd->sdev, profile);
-+	tp = convert_profile_to_ssam_tmp(tpd->sdev, profile);
++	tp = ssam_tmp_profile_set(tpd->sdev, tp);
  	if (tp < 0)
  	if (tp < 0)
  		return tp;
  		return tp;
  
  
 -	return ssam_tmp_profile_set(tpd->sdev, 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) {
 +	if (tpd->has_fan) {
 +		tp = convert_profile_to_ssam_fan(tpd->sdev, profile);
 +		tp = convert_profile_to_ssam_fan(tpd->sdev, profile);
 +		if (tp < 0)
 +		if (tp < 0)
@@ -898,60 +1221,5 @@ index a5a3941b3f43..e54d0a8f7daa 100644
  	set_bit(PLATFORM_PROFILE_BALANCED, tpd->handler.choices);
  	set_bit(PLATFORM_PROFILE_BALANCED, tpd->handler.choices);
  	set_bit(PLATFORM_PROFILE_BALANCED_PERFORMANCE, 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>
 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 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
 Microsoft Surface Pro 4 and Book 1 devices access the MSHW0030 I2C
 device via a generic serial bus operation region and RawBytes read
 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(+)
  1 file changed, 35 insertions(+)
 
 
 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 d6037a328669..a290ebc77aea 100644
+index d6037a3286690..a290ebc77aea2 100644
 --- a/drivers/i2c/i2c-core-acpi.c
 --- a/drivers/i2c/i2c-core-acpi.c
 +++ b/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,
 @@ -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",
  		dev_warn(&adapter->dev, "protocol 0x%02x not supported for client 0x%02x\n",
  			 accessor_type, client->addr);
  			 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>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 13 Feb 2021 16:41:18 +0100
 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
 Add driver exposing the discrete GPU power-switch of the  Microsoft
 Surface Book 1 to user-space.
 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
  create mode 100644 drivers/platform/surface/surfacebook1_dgpu_switch.c
 
 
 diff --git a/drivers/platform/surface/Kconfig b/drivers/platform/surface/Kconfig
 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
 --- a/drivers/platform/surface/Kconfig
 +++ b/drivers/platform/surface/Kconfig
 +++ b/drivers/platform/surface/Kconfig
 @@ -149,6 +149,13 @@ config SURFACE_AGGREGATOR_TABLET_SWITCH
 @@ -149,6 +149,13 @@ config SURFACE_AGGREGATOR_TABLET_SWITCH
@@ -153,7 +151,7 @@ index b629e82af97c..68656e8f309e 100644
  	tristate "Surface DTX (Detachment System) Driver"
  	tristate "Surface DTX (Detachment System) Driver"
  	depends on SURFACE_AGGREGATOR
  	depends on SURFACE_AGGREGATOR
 diff --git a/drivers/platform/surface/Makefile b/drivers/platform/surface/Makefile
 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
 --- a/drivers/platform/surface/Makefile
 +++ b/drivers/platform/surface/Makefile
 +++ b/drivers/platform/surface/Makefile
 @@ -12,6 +12,7 @@ obj-$(CONFIG_SURFACE_AGGREGATOR_CDEV)	+= surface_aggregator_cdev.o
 @@ -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
  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
 diff --git a/drivers/platform/surface/surfacebook1_dgpu_switch.c b/drivers/platform/surface/surfacebook1_dgpu_switch.c
 new file mode 100644
 new file mode 100644
-index 000000000000..8b816ed8f35c
+index 0000000000000..8b816ed8f35c6
 --- /dev/null
 --- /dev/null
 +++ b/drivers/platform/surface/surfacebook1_dgpu_switch.c
 +++ b/drivers/platform/surface/surfacebook1_dgpu_switch.c
 @@ -0,0 +1,162 @@
 @@ -0,0 +1,162 @@
@@ -333,5 +331,5 @@ index 000000000000..8b816ed8f35c
 +MODULE_DESCRIPTION("Discrete GPU Power-Switch for Surface Book 1");
 +MODULE_DESCRIPTION("Discrete GPU Power-Switch for Surface Book 1");
 +MODULE_LICENSE("GPL");
 +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>
 From: Sachi King <nakato@nakato.io>
 Date: Tue, 5 Oct 2021 00:05:09 +1100
 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
 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
 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(-)
  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
 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
 --- a/drivers/input/misc/soc_button_array.c
 +++ b/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 = {
 @@ -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);
  	acpi_handle handle = ACPI_HANDLE(dev);
 -	union acpi_object *result;
 -	union acpi_object *result;
 -	u64 oem_platform_rev = 0;	// valid revisions are nonzero
 -	u64 oem_platform_rev = 0;	// valid revisions are nonzero
-+	bool exists;
- 
+-
 -	// get OEM platform revision
 -	// get OEM platform revision
 -	result = acpi_evaluate_dsm_typed(handle, &MSHW0040_DSM_UUID,
 -	result = acpi_evaluate_dsm_typed(handle, &MSHW0040_DSM_UUID,
 -					 MSHW0040_DSM_REVISION,
 -					 MSHW0040_DSM_REVISION,
 -					 MSHW0040_DSM_GET_OMPR, NULL,
 -					 MSHW0040_DSM_GET_OMPR, NULL,
 -					 ACPI_TYPE_INTEGER);
 -					 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) {
 -	if (result) {
 -		oem_platform_rev = result->integer.value;
 -		oem_platform_rev = result->integer.value;
 -		ACPI_FREE(result);
 -		ACPI_FREE(result);
@@ -65,22 +59,26 @@ index f6d060377d18..b8603f74eb28 100644
 -	 */
 -	 */
 -	if (oem_platform_rev == 0)
 -	if (oem_platform_rev == 0)
 -		return -ENODEV;
 -		return -ENODEV;
--
++	bool exists;
+ 
 -	dev_dbg(dev, "OEM Platform Revision %llu\n", oem_platform_rev);
 -	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 0;
 +	return exists ? 0 : -ENODEV;
 +	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>
 From: Sachi King <nakato@nakato.io>
 Date: Tue, 5 Oct 2021 00:22:57 +1100
 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
  variant
 
 
 The AMD variant of the Surface Laptop report 0 for their OEM platform
 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(-)
  1 file changed, 6 insertions(+), 24 deletions(-)
 
 
 diff --git a/drivers/platform/surface/surfacepro3_button.c b/drivers/platform/surface/surfacepro3_button.c
 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
 --- a/drivers/platform/surface/surfacepro3_button.c
 +++ b/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)
 @@ -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;
  	acpi_handle handle = dev->handle;
 -	union acpi_object *result;
 -	union acpi_object *result;
 -	u64 oem_platform_rev = 0;	// valid revisions are nonzero
 -	u64 oem_platform_rev = 0;	// valid revisions are nonzero
- 
+-
 -	// get OEM platform revision
 -	// get OEM platform revision
 -	result = acpi_evaluate_dsm_typed(handle, &MSHW0040_DSM_UUID,
 -	result = acpi_evaluate_dsm_typed(handle, &MSHW0040_DSM_UUID,
 -					 MSHW0040_DSM_REVISION,
 -					 MSHW0040_DSM_REVISION,
@@ -137,7 +135,7 @@ index 2755601f979c..4240c98ca226 100644
 -	}
 -	}
 -
 -
 -	dev_dbg(&dev->dev, "OEM Platform Revision %llu\n", oem_platform_rev);
 -	dev_dbg(&dev->dev, "OEM Platform Revision %llu\n", oem_platform_rev);
--
+ 
 -	return oem_platform_rev == 0;
 -	return oem_platform_rev == 0;
 +	// make sure that OEM platform revision DSM call does not exist
 +	// make sure that OEM platform revision DSM call does not exist
 +	return !acpi_check_dsm(handle, &MSHW0040_DSM_UUID,
 +	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>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sat, 18 Feb 2023 01:02:49 +0100
 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
  Type-Cover
 
 
 The touchpad on the Type-Cover of the Surface Go 3 is sometimes not
 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(+)
  1 file changed, 3 insertions(+)
 
 
 diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
 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
 --- a/drivers/usb/core/quirks.c
 +++ b/drivers/usb/core/quirks.c
 +++ b/drivers/usb/core/quirks.c
 @@ -223,6 +223,9 @@ static const struct usb_device_id usb_quirk_list[] = {
 @@ -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 },
  	{ 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>
 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
 Date: Thu, 5 Nov 2020 13:09:45 +0100
 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
 The Type Cover for Microsoft Surface devices supports a special usb
 control request to disable or enable the built-in keyboard backlight.
 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(-)
  1 file changed, 98 insertions(+), 2 deletions(-)
 
 
 diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
 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
 --- a/drivers/hid/hid-multitouch.c
 +++ b/drivers/hid/hid-multitouch.c
 +++ b/drivers/hid/hid-multitouch.c
 @@ -34,7 +34,10 @@
 @@ -34,7 +34,10 @@
@@ -271,14 +270,13 @@ index 04a014cd2a2f..89c9b00e6371 100644
  	{ .driver_data = MT_CLS_GOOGLE,
  	{ .driver_data = MT_CLS_GOOGLE,
  		HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, USB_VENDOR_ID_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>
 From: PJungkamp <p.jungkamp@gmail.com>
 Date: Fri, 25 Feb 2022 12:04:25 +0100
 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
 The Surface Pro Type Cover has several non standard HID usages in it's
 hid report descriptor.
 hid report descriptor.
@@ -303,7 +301,7 @@ Patchset: surface-typecover
  1 file changed, 122 insertions(+), 26 deletions(-)
  1 file changed, 122 insertions(+), 26 deletions(-)
 
 
 diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
 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
 --- a/drivers/hid/hid-multitouch.c
 +++ b/drivers/hid/hid-multitouch.c
 +++ b/drivers/hid/hid-multitouch.c
 @@ -77,6 +77,7 @@ MODULE_LICENSE("GPL");
 @@ -77,6 +77,7 @@ MODULE_LICENSE("GPL");
@@ -571,5 +569,5 @@ index 89c9b00e6371..be131488161c 100644
  	unregister_pm_notifier(&td->pm_notifier);
  	unregister_pm_notifier(&td->pm_notifier);
  	del_timer_sync(&td->release_timer);
  	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>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sun, 19 Feb 2023 22:12:24 +0100
 Date: Sun, 19 Feb 2023 22:12:24 +0100
 Subject: [PATCH] PCI: Add quirk to prevent calling shutdown mehtod
 Subject: [PATCH] PCI: Add quirk to prevent calling shutdown mehtod
@@ -23,7 +23,7 @@ Patchset: surface-shutdown
  3 files changed, 40 insertions(+)
  3 files changed, 40 insertions(+)
 
 
 diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
 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
 --- a/drivers/pci/pci-driver.c
 +++ b/drivers/pci/pci-driver.c
 +++ b/drivers/pci/pci-driver.c
 @@ -505,6 +505,9 @@ static void pci_device_shutdown(struct device *dev)
 @@ -505,6 +505,9 @@ static void pci_device_shutdown(struct device *dev)
@@ -37,7 +37,7 @@ index af2996d0d17f..3ce0fb61257d 100644
  
  
  	if (drv && drv->shutdown)
  	if (drv && drv->shutdown)
 diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
 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
 --- a/drivers/pci/quirks.c
 +++ b/drivers/pci/quirks.c
 +++ b/drivers/pci/quirks.c
 @@ -6253,3 +6253,39 @@ static void pci_fixup_d3cold_delay_1sec(struct pci_dev *pdev)
 @@ -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, 0x466d, quirk_no_shutdown);  // Thunderbolt 4 NHI
 +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x46a8, quirk_no_shutdown);  // GPU
 +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
 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
 --- a/include/linux/pci.h
 +++ b/include/linux/pci.h
 +++ b/include/linux/pci.h
 @@ -465,6 +465,7 @@ struct pci_dev {
 @@ -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 */
  	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>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Sun, 12 Mar 2023 01:41:57 +0100
 Date: Sun, 12 Mar 2023 01:41:57 +0100
 Subject: [PATCH] platform/surface: gpe: Add support for Surface Pro 9
 Subject: [PATCH] platform/surface: gpe: Add support for Surface Pro 9
@@ -12,7 +12,7 @@ Patchset: surface-gpe
  1 file changed, 17 insertions(+)
  1 file changed, 17 insertions(+)
 
 
 diff --git a/drivers/platform/surface/surface_gpe.c b/drivers/platform/surface/surface_gpe.c
 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
 --- a/drivers/platform/surface/surface_gpe.c
 +++ b/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[] = {
 @@ -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",
  		.ident = "Surface Book 1",
  		.matches = {
  		.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>
 From: Hans de Goede <hdegoede@redhat.com>
 Date: Sun, 10 Oct 2021 20:56:57 +0200
 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
 The clk and regulator frameworks expect clk/regulator consumer-devices
 to have info about the consumed clks/regulators described in the device's
 to have info about the consumed clks/regulators described in the device's
@@ -58,7 +58,7 @@ Patchset: cameras
  1 file changed, 3 insertions(+)
  1 file changed, 3 insertions(+)
 
 
 diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
 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
 --- a/drivers/acpi/scan.c
 +++ b/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,
 @@ -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
  	 * Do not enumerate devices with enumeration_by_parent flag set as
  	 * they will be enumerated by their respective parents.
  	 * 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>
 From: zouxiaoh <xiaohong.zou@intel.com>
 Date: Fri, 25 Jun 2021 08:52:59 +0800
 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,
 Intel IPU(Image Processing Unit) has its own (IO)MMU hardware,
 The IPU driver allocates its own page table that is not mapped
 The IPU driver allocates its own page table that is not mapped
@@ -102,7 +100,7 @@ Patchset: cameras
  1 file changed, 30 insertions(+)
  1 file changed, 30 insertions(+)
 
 
 diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
 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
 --- a/drivers/iommu/intel/iommu.c
 +++ b/drivers/iommu/intel/iommu.c
 +++ b/drivers/iommu/intel/iommu.c
 @@ -44,6 +44,13 @@
 @@ -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, 0x9D3E, quirk_iommu_ipts);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x34E4, 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>
 From: Daniel Scally <djrscally@gmail.com>
 Date: Sun, 10 Oct 2021 20:57:02 +0200
 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
 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
 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(+)
  1 file changed, 7 insertions(+)
 
 
 diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platform/x86/intel/int3472/tps68470.c
 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
 --- a/drivers/platform/x86/intel/int3472/tps68470.c
 +++ b/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)
 @@ -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;
  	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>
 From: Daniel Scally <dan.scally@ideasonboard.com>
 Date: Thu, 2 Mar 2023 12:59:39 +0000
 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
 ACPI _HID INT347E represents the OmniVision 7251 camera sensor. The
 driver for this sensor expects a single pin named "enable", but on
 driver for this sensor expects a single pin named "enable", but on
@@ -247,7 +243,7 @@ Patchset: cameras
  1 file changed, 14 insertions(+)
  1 file changed, 14 insertions(+)
 
 
 diff --git a/drivers/platform/x86/intel/int3472/discrete.c b/drivers/platform/x86/intel/int3472/discrete.c
 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
 --- a/drivers/platform/x86/intel/int3472/discrete.c
 +++ b/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
 @@ -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);
  					    agpio, func, polarity);
  	if (ret)
  	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>
 From: Daniel Scally <dan.scally@ideasonboard.com>
 Date: Tue, 21 Mar 2023 13:45:26 +0000
 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
 Update the control ID for the gain control in the ov7251 driver to
 V4L2_CID_ANALOGUE_GAIN.
 V4L2_CID_ANALOGUE_GAIN.
@@ -297,7 +291,7 @@ Patchset: cameras
  1 file changed, 2 insertions(+), 2 deletions(-)
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 
 diff --git a/drivers/media/i2c/ov7251.c b/drivers/media/i2c/ov7251.c
 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
 --- a/drivers/media/i2c/ov7251.c
 +++ b/drivers/media/i2c/ov7251.c
 +++ b/drivers/media/i2c/ov7251.c
 @@ -1051,7 +1051,7 @@ static int ov7251_s_ctrl(struct v4l2_ctrl *ctrl)
 @@ -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,
  				     V4L2_CID_TEST_PATTERN,
  				     ARRAY_SIZE(ov7251_test_pattern_menu) - 1,
  				     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>
 From: Daniel Scally <dan.scally@ideasonboard.com>
 Date: Wed, 22 Mar 2023 11:01:42 +0000
 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()
  v4l2_async_register_subdev()
 
 
 The current call to v4l2_subdev_get_privacy_led() is contained in
 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(-)
  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
 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
 --- a/drivers/media/v4l2-core/v4l2-async.c
 +++ b/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)
 @@ -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
  	 * No reference taken. The reference is held by the device (struct
  	 * v4l2_subdev.dev), and async sub-device does not exist independently
  	 * 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
 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
 --- a/drivers/media/v4l2-core/v4l2-fwnode.c
 +++ b/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)
 @@ -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)
  	if (ret < 0)
  		goto out_cleanup;
  		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>
 From: Kate Hsuan <hpa@redhat.com>
 Date: Tue, 21 Mar 2023 23:37:16 +0800
 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.
 Add MFD cell for tps68470-led.
 
 
@@ -390,7 +382,7 @@ Patchset: cameras
  1 file changed, 3 insertions(+), 2 deletions(-)
  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
 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
 --- a/drivers/platform/x86/intel/int3472/tps68470.c
 +++ b/drivers/platform/x86/intel/int3472/tps68470.c
 +++ b/drivers/platform/x86/intel/int3472/tps68470.c
 @@ -17,7 +17,7 @@
 @@ -17,7 +17,7 @@
@@ -413,13 +405,12 @@ index e3e1696e7f0e..423dc555093f 100644
  		for (i = 0; i < board_data->n_gpiod_lookups; i++)
  		for (i = 0; i < board_data->n_gpiod_lookups; i++)
  			gpiod_add_lookup_table(board_data->tps68470_gpio_lookup_tables[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>
 From: Kate Hsuan <hpa@redhat.com>
 Date: Tue, 21 Mar 2023 23:37:17 +0800
 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
 Add flags for both LEDA(TPS68470_ILEDCTL_ENA), LEDB
 (TPS68470_ILEDCTL_ENB), and current control mask for LEDB
 (TPS68470_ILEDCTL_ENB), and current control mask for LEDB
@@ -434,7 +425,7 @@ Patchset: cameras
  1 file changed, 5 insertions(+)
  1 file changed, 5 insertions(+)
 
 
 diff --git a/include/linux/mfd/tps68470.h b/include/linux/mfd/tps68470.h
 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
 --- a/include/linux/mfd/tps68470.h
 +++ b/include/linux/mfd/tps68470.h
 +++ b/include/linux/mfd/tps68470.h
 @@ -34,6 +34,7 @@
 @@ -34,6 +34,7 @@
@@ -455,13 +446,12 @@ index 7807fa329db0..2d2abb25b944 100644
 +
 +
  #endif /* __LINUX_MFD_TPS68470_H */
  #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>
 From: Kate Hsuan <hpa@redhat.com>
 Date: Tue, 21 Mar 2023 23:37:18 +0800
 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
 There are two LED controllers, LEDA indicator LED and LEDB flash LED for
 tps68470. LEDA can be enabled by setting TPS68470_ILEDCTL_ENA. Moreover,
 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
  create mode 100644 drivers/leds/leds-tps68470.c
 
 
 diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
 diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
-index 05e6af88b88c..c120eb0b5aa8 100644
+index 05e6af88b88cd..c120eb0b5aa8e 100644
 --- a/drivers/leds/Kconfig
 --- a/drivers/leds/Kconfig
 +++ b/drivers/leds/Kconfig
 +++ b/drivers/leds/Kconfig
 @@ -909,6 +909,18 @@ config LEDS_TPS6105X
 @@ -909,6 +909,18 @@ config LEDS_TPS6105X
@@ -504,7 +494,7 @@ index 05e6af88b88c..c120eb0b5aa8 100644
  	tristate "LED support for SGI Octane machines"
  	tristate "LED support for SGI Octane machines"
  	depends on LEDS_CLASS
  	depends on LEDS_CLASS
 diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
 diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
-index effdfc6f1e95..6ce609b2cdac 100644
+index effdfc6f1e951..6ce609b2cdac6 100644
 --- a/drivers/leds/Makefile
 --- a/drivers/leds/Makefile
 +++ b/drivers/leds/Makefile
 +++ b/drivers/leds/Makefile
 @@ -86,6 +86,7 @@ obj-$(CONFIG_LEDS_TCA6507)		+= leds-tca6507.o
 @@ -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
  obj-$(CONFIG_LEDS_WM8350)		+= leds-wm8350.o
 diff --git a/drivers/leds/leds-tps68470.c b/drivers/leds/leds-tps68470.c
 diff --git a/drivers/leds/leds-tps68470.c b/drivers/leds/leds-tps68470.c
 new file mode 100644
 new file mode 100644
-index 000000000000..35aeb5db89c8
+index 0000000000000..35aeb5db89c8f
 --- /dev/null
 --- /dev/null
 +++ b/drivers/leds/leds-tps68470.c
 +++ b/drivers/leds/leds-tps68470.c
 @@ -0,0 +1,185 @@
 @@ -0,0 +1,185 @@
@@ -707,14 +697,13 @@ index 000000000000..35aeb5db89c8
 +MODULE_DESCRIPTION("LED driver for TPS68470 PMIC");
 +MODULE_DESCRIPTION("LED driver for TPS68470 PMIC");
 +MODULE_LICENSE("GPL v2");
 +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>
 From: mojyack <mojyack@gmail.com>
 Date: Sat, 3 Feb 2024 12:59:53 +0900
 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"
 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(-)
  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
 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
 --- a/drivers/staging/media/ipu3/ipu3-v4l2.c
 +++ b/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)
 @@ -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);
  		r = imgu_s_stream(imgu, false);
  		if (!r)
  		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>
 From: mojyack <mojyack@gmail.com>
 Date: Tue, 26 Mar 2024 05:55:44 +0900
 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".
 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.
 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.
 So just add some delay.
 There is no exact reason for this 10000us, but 100us failed.
 There is no exact reason for this 10000us, but 100us failed.
+
+Patchset: cameras
 ---
 ---
  drivers/media/i2c/dw9719.c | 3 +++
  drivers/media/i2c/dw9719.c | 3 +++
  1 file changed, 3 insertions(+)
  1 file changed, 3 insertions(+)
 
 
 diff --git a/drivers/media/i2c/dw9719.c b/drivers/media/i2c/dw9719.c
 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
 --- a/drivers/media/i2c/dw9719.c
 +++ b/drivers/media/i2c/dw9719.c
 +++ b/drivers/media/i2c/dw9719.c
 @@ -82,6 +82,9 @@ static int dw9719_power_up(struct dw9719_device *dw9719)
 @@ -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);
  	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>
 From: Sachi King <nakato@nakato.io>
 Date: Sat, 29 May 2021 17:47:38 +1000
 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
  override
 
 
 This patch is the work of Thomas Gleixner <tglx@linutronix.de> and is
 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(+)
  1 file changed, 17 insertions(+)
 
 
 diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
 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
 --- a/arch/x86/kernel/acpi/boot.c
 +++ b/arch/x86/kernel/acpi/boot.c
 +++ b/arch/x86/kernel/acpi/boot.c
 @@ -22,6 +22,7 @@
 @@ -22,6 +22,7 @@
@@ -63,14 +63,13 @@ index 4bf82dbd2a6b..7a8cb090c656 100644
  	mp_config_acpi_legacy_irqs();
  	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>
 From: Maximilian Luz <luzmaximilian@gmail.com>
 Date: Thu, 3 Jun 2021 14:04:26 +0200
 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"
 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.
 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(-)
  1 file changed, 8 insertions(+), 1 deletion(-)
 
 
 diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
 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
 --- a/arch/x86/kernel/acpi/boot.c
 +++ b/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)
 @@ -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>
 From: "Bart Groeneveld | GPX Solutions B.V" <bart@gpxbv.nl>
 Date: Mon, 5 Dec 2022 16:08:46 +0100
 Date: Mon, 5 Dec 2022 16:08:46 +0100
 Subject: [PATCH] acpi: allow usage of acpi_tad on HW-reduced platforms
 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(-)
  1 file changed, 24 insertions(+), 12 deletions(-)
 
 
 diff --git a/drivers/acpi/acpi_tad.c b/drivers/acpi/acpi_tad.c
 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
 --- a/drivers/acpi/acpi_tad.c
 +++ b/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,
 @@ -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);
  		ret = sysfs_create_group(&dev->kobj, &acpi_tad_dc_attr_group);
  		if (ret)
  		if (ret)
 -- 
 -- 
-2.44.1
+2.45.1