patches.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: Abhishek Tamboli <abhishektamboli9@gmail.com>,
	Even Xu <even.xu@intel.com>, Jiri Kosina <jkosina@suse.com>,
	Sasha Levin <sashal@kernel.org>,
	jikos@kernel.org, xinpeng.sun@intel.com,
	srinivas.pandruvada@linux.intel.com, mpearson-lenovo@squebb.ca,
	phasta@kernel.org, alexandre.f.demers@gmail.com
Subject: [PATCH AUTOSEL 6.17] HID: intel-thc-hid: intel-quickspi: Add ARL PCI Device Id's
Date: Mon, 27 Oct 2025 20:39:08 -0400	[thread overview]
Message-ID: <20251028003940.884625-24-sashal@kernel.org> (raw)
In-Reply-To: <20251028003940.884625-1-sashal@kernel.org>

From: Abhishek Tamboli <abhishektamboli9@gmail.com>

[ Upstream commit 50f1f782f8d621a90108340c632bcb6ab4307d2e ]

Add the missing PCI ID for the quickspi device used on
the Lenovo Yoga Pro 9i 16IAH10.

Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=220567

Signed-off-by: Abhishek Tamboli <abhishektamboli9@gmail.com>
Reviewed-by: Even Xu <even.xu@intel.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---

LLM Generated explanations, may be completely bogus:

## ANALYSIS COMPLETE

**BACKPORT STATUS: YES**

### Detailed Analysis:

#### 1. **Semantic Code Analysis Results:**

**Tool: mcp__semcode__find_function**
- Located `quickspi_probe` function (drivers/hid/intel-thc-hid/intel-
  quickspi/pci-quickspi.c:578-689)
- Found `quickspi_dev_init` function which uses the driver_data
  structure
- Both functions show this is the standard PCI driver probe path

**Tool: mcp__semcode__find_callers**
- `quickspi_probe` has 0 direct callers (called via PCI subsystem
  function pointer in `quickspi_driver` struct)
- This is expected behavior for PCI drivers

**Tool: mcp__semcode__diff_functions**
- Analysis confirms: 0 functions modified, only adds data structures and
  table entries
- Only uses existing `PCI_DEVICE_DATA` macro
- **Conclusion: Purely additive change with zero behavioral
  modifications**

**Tool: mcp__semcode__find_type**
- `struct quickspi_driver_data` contains only one field:
  `max_packet_size_value`
- Used at pci-quickspi.c:194 to configure SPI packet size for device
  communication
- Missing this configuration would cause device malfunction

#### 2. **Impact Analysis:**

**User Impact:** HIGH
- Without this commit, Arrow Lake (ARL) systems with THC QuickSPI
  touchscreens/touchpads (like Lenovo Yoga Pro 9i 16IAH10) will have
  **completely non-functional touch input**
- Bug report linked: https://bugzilla.kernel.org/show_bug.cgi?id=220567
- This is a user-visible hardware support regression

**Scope:** MINIMAL
- Only 2 files changed: pci-quickspi.c (+6 lines), quickspi-dev.h (+2
  lines)
- Total addition: 8 lines of code
- Zero lines removed or modified

#### 3. **Risk Assessment:**

**Regression Risk:** ZERO
- Change is **purely additive** - adds new PCI device IDs only
- No existing code paths are modified
- Existing hardware (MTL, LNL, PTL, WCL) completely unaffected
- Uses existing constant `MAX_PACKET_SIZE_VALUE_MTL` (defined since
  driver introduction)

**Dependencies:** NONE
- Driver was introduced in v6.14-rc1 (commit c8f3027dd2a5b)
- All required infrastructure exists in kernels >= v6.14
- No new kernel APIs or features required
- Reuses existing MTL packet size value

#### 4. **Stable Tree Compliance:**

**Fits stable tree criteria:**
- ✅ **Bug fix:** Enables missing hardware support (touchscreen/touchpad
  broken on ARL systems)
- ✅ **Small and self-contained:** 8 lines, 2 files, purely additive
- ✅ **Zero regression risk:** No existing functionality affected
- ✅ **User-visible benefit:** Makes hardware functional
- ✅ **Well-tested pattern:** Identical to WCL device ID addition
  (cc54ed51c7617)
- ❌ **Explicit stable tag:** Not present (but not required for all
  backports)

**Not a new feature:**
- This is NOT adding new driver functionality
- This is enabling existing driver for new hardware variant
- The driver already supports the ARL architecture; just needs PCI ID
  matching

#### 5. **Historical Context:**

**Similar commits:**
- cc54ed51c7617: "HID: intel-thc-hid: intel-quickspi: Add WCL Device
  IDs" - identical pattern
- Multiple commits added device IDs for PTL-H, PTL-U, LNL platforms
- None had explicit stable tags, but all are good backport candidates

**Driver maturity:**
- Driver introduced in v6.14 (released ~Jan 2025)
- Available in stable branches: 6.14.y, 6.15.y, 6.16.y, 6.17.y
- Sufficient time in mainline for stabilization

#### 6. **Recommendation:**

**BACKPORT: YES** to stable kernels **6.14+**

**Rationale:**
1. **Fixes real user pain:** Users with Arrow Lake laptops have non-
   functional touchscreens without this
2. **Zero risk:** Purely additive, cannot break existing systems
3. **Trivial change:** 8 lines following established pattern
4. **Proper scope:** Only backport to kernels containing the base driver
   (6.14+)
5. **Aligns with stable rules:** Small, obvious fix for user-visible
   hardware issue

**Target stable branches:**
- linux-6.14.y
- linux-6.15.y
- linux-6.16.y
- linux-6.17.y

This commit should NOT be backported to kernels older than 6.14 since
the base intel-quickspi driver doesn't exist in those versions.

 drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c | 6 ++++++
 drivers/hid/intel-thc-hid/intel-quickspi/quickspi-dev.h | 2 ++
 2 files changed, 8 insertions(+)

diff --git a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
index 84314989dc534..14cabd5dc6ddb 100644
--- a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
+++ b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
@@ -33,6 +33,10 @@ struct quickspi_driver_data ptl = {
 	.max_packet_size_value = MAX_PACKET_SIZE_VALUE_LNL,
 };
 
+struct quickspi_driver_data arl = {
+	.max_packet_size_value = MAX_PACKET_SIZE_VALUE_MTL,
+};
+
 /* THC QuickSPI ACPI method to get device properties */
 /* HIDSPI Method: {6e2ac436-0fcf-41af-a265-b32a220dcfab} */
 static guid_t hidspi_guid =
@@ -978,6 +982,8 @@ static const struct pci_device_id quickspi_pci_tbl[] = {
 	{PCI_DEVICE_DATA(INTEL, THC_PTL_U_DEVICE_ID_SPI_PORT2, &ptl), },
 	{PCI_DEVICE_DATA(INTEL, THC_WCL_DEVICE_ID_SPI_PORT1, &ptl), },
 	{PCI_DEVICE_DATA(INTEL, THC_WCL_DEVICE_ID_SPI_PORT2, &ptl), },
+	{PCI_DEVICE_DATA(INTEL, THC_ARL_DEVICE_ID_SPI_PORT1, &arl), },
+	{PCI_DEVICE_DATA(INTEL, THC_ARL_DEVICE_ID_SPI_PORT2, &arl), },
 	{}
 };
 MODULE_DEVICE_TABLE(pci, quickspi_pci_tbl);
diff --git a/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-dev.h b/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-dev.h
index f3532d866749c..c30e1a42eb098 100644
--- a/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-dev.h
+++ b/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-dev.h
@@ -21,6 +21,8 @@
 #define PCI_DEVICE_ID_INTEL_THC_PTL_U_DEVICE_ID_SPI_PORT2	0xE44B
 #define PCI_DEVICE_ID_INTEL_THC_WCL_DEVICE_ID_SPI_PORT1 	0x4D49
 #define PCI_DEVICE_ID_INTEL_THC_WCL_DEVICE_ID_SPI_PORT2 	0x4D4B
+#define PCI_DEVICE_ID_INTEL_THC_ARL_DEVICE_ID_SPI_PORT1 	0x7749
+#define PCI_DEVICE_ID_INTEL_THC_ARL_DEVICE_ID_SPI_PORT2 	0x774B
 
 /* HIDSPI special ACPI parameters DSM methods */
 #define ACPI_QUICKSPI_REVISION_NUM			2
-- 
2.51.0


  parent reply	other threads:[~2025-10-28  0:40 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-28  0:38 [PATCH AUTOSEL 6.17-6.1] smb/server: fix possible memory leak in smb2_read() Sasha Levin
2025-10-28  0:38 ` [PATCH AUTOSEL 6.17-5.4] NFS4: Fix state renewals missing after boot Sasha Levin
2025-10-28  0:38 ` [PATCH AUTOSEL 6.17-6.12] drm/amdgpu: remove two invalid BUG_ON()s Sasha Levin
2025-10-28  0:38 ` [PATCH AUTOSEL 6.17-5.15] NFS: check if suid/sgid was cleared after a write as needed Sasha Levin
2025-10-28  0:38 ` [PATCH AUTOSEL 6.17-6.12] HID: logitech-hidpp: Add HIDPP_QUIRK_RESET_HI_RES_SCROLL Sasha Levin
2025-10-28  0:38 ` [PATCH AUTOSEL 6.17-5.4] ASoC: max98090/91: fixed max98091 ALSA widget powering up/down Sasha Levin
2025-10-28  0:38 ` [PATCH AUTOSEL 6.17] ALSA: hda/realtek: Fix mute led for HP Omen 17-cb0xxx Sasha Levin
2025-10-28  0:38 ` [PATCH AUTOSEL 6.17-5.10] RISC-V: clear hot-unplugged cores from all task mm_cpumasks to avoid rfence errors Sasha Levin
2025-10-28  0:38 ` [PATCH AUTOSEL 6.17] ASoC: nau8821: Avoid unnecessary blocking in IRQ handler Sasha Levin
2025-10-28  0:38 ` [PATCH AUTOSEL 6.17-5.4] HID: quirks: avoid Cooler Master MM712 dongle wakeup bug Sasha Levin
2025-10-28  0:38 ` [PATCH AUTOSEL 6.17] drm/amdkfd: fix suspend/resume all calls in mes based eviction path Sasha Levin
2025-10-28  0:38 ` [PATCH AUTOSEL 6.17-6.12] exfat: fix improper check of dentry.stream.valid_size Sasha Levin
2025-10-28  0:38 ` [PATCH AUTOSEL 6.17] io_uring: fix unexpected placement on same size resizing Sasha Levin
2025-10-28  0:38 ` [PATCH AUTOSEL 6.17] drm/amd: Disable ASPM on SI Sasha Levin
2025-10-28  0:38 ` [PATCH AUTOSEL 6.17-6.6] riscv: acpi: avoid errors caused by probing DT devices when ACPI is used Sasha Levin
2025-10-28  0:39 ` [PATCH AUTOSEL 6.17-6.1] drm/amd/pm: Disable MCLK switching on SI at high pixel clocks Sasha Levin
2025-10-28  0:39 ` [PATCH AUTOSEL 6.17-6.12] drm/amdgpu: hide VRAM sysfs attributes on GPUs without VRAM Sasha Levin
2025-10-28  0:39 ` [PATCH AUTOSEL 6.17] fs: return EOPNOTSUPP from file_setattr/file_getattr syscalls Sasha Levin
2025-10-28  0:39 ` [PATCH AUTOSEL 6.17-6.12] NFS4: Apply delay_retrans to async operations Sasha Levin
2025-10-28  0:39 ` [PATCH AUTOSEL 6.17-6.1] drm/amdgpu: Fix NULL pointer dereference in VRAM logic for APU devices Sasha Levin
2025-10-28  0:39 ` [PATCH AUTOSEL 6.17] ixgbe: handle IXGBE_VF_FEATURES_NEGOTIATE mbox cmd Sasha Levin
2025-10-28  0:39 ` [PATCH AUTOSEL 6.17] ixgbe: handle IXGBE_VF_GET_PF_LINK_STATE mailbox operation Sasha Levin
2025-10-28  0:39 ` [PATCH AUTOSEL 6.17-6.6] HID: quirks: Add ALWAYS_POLL quirk for VRS R295 steering wheel Sasha Levin
2025-10-28  0:39 ` Sasha Levin [this message]
2025-10-28  0:39 ` [PATCH AUTOSEL 6.17-6.12] HID: nintendo: Wait longer for initial probe Sasha Levin
2025-10-28  0:39 ` [PATCH AUTOSEL 6.17-6.1] smb/server: fix possible refcount leak in smb2_sess_setup() Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251028003940.884625-24-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=abhishektamboli9@gmail.com \
    --cc=alexandre.f.demers@gmail.com \
    --cc=even.xu@intel.com \
    --cc=jikos@kernel.org \
    --cc=jkosina@suse.com \
    --cc=mpearson-lenovo@squebb.ca \
    --cc=patches@lists.linux.dev \
    --cc=phasta@kernel.org \
    --cc=srinivas.pandruvada@linux.intel.com \
    --cc=stable@vger.kernel.org \
    --cc=xinpeng.sun@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).