[PATCH AUTOSEL 6.18] platform/x86: hp-wmi: Add thermal support for board 8B2F

From: Sasha Levin

Date: Mon Aug 31 2026 - 11:27:52 EST


From: yahia ahmed <yahia.a.abdrabou@xxxxxxxxx>

[ Upstream commit abefbbfc71f5ee50f9e549a2d143f23694d65fc2 ]

Added thermal support for board ID 8B2F.

Signed-off-by: yahia ahmed <yahia.a.abdrabou@xxxxxxxxx>
Link: https://patch.msgid.link/20260522203418.28784-1-yahia.a.abdrabou@xxxxxxxxx
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
---

LLM Generated explanations, may be completely bogus:

## Phase 1: Commit Message Forensics

### Step 1.1: Parse the Subject Line
**Record:** `[platform/x86: hp-wmi]` `[Add]` — Add thermal support for
HP WMI board ID `8B2F` in the existing Victus S thermal-profile DMI
table.

### Step 1.2: Parse All Commit Message Tags
**Record:**
- **Fixes:** — none
- **Reported-by:** — none
- **Tested-by:** — none
- **Reviewed-by:** Ilpo Järvinen `<ilpo.jarvinen@xxxxxxxxxxxxxxx>`
(platform/x86 maintainer)
- **Acked-by:** — none
- **Link:** https://patch.msgid.link/20260522203418.28784-1-
yahia.a.abdrabou@xxxxxxxxx
- **Cc: stable:** — none (expected for manual review)
- **Signed-off-by:** yahia ahmed, Ilpo Järvinen (ignore pipeline-added
SOBs)

Notable: maintainer Reviewed-by; no syzbot/crash reports.

### Step 1.3: Analyze Commit Body
**Record:**
- **Bug description:** Board `8B2F` is missing from
`victus_s_thermal_profile_boards`, so Victus S thermal-profile
handling is not activated.
- **Symptom:** On `8B2F` hardware, platform_profile thermal switching
and Victus S fan/thermal WMI paths do not engage; generic fallback is
used instead.
- **Version info:** None in message.
- **Root cause:** Missing DMI board-name entry in an existing quirk
table.

### Step 1.4: Detect Hidden Bug Fixes
**Record:** Not disguised cleanup. This is explicit hardware-enablement:
a DMI quirk entry for a laptop board that needs the existing Victus S
thermal path. Without it, thermal/fan behavior is wrong or absent, not
merely cosmetic.

---

## Phase 2: Diff Analysis

### Step 2.1: Inventory the Changes
**Record:**
- **Files:** `drivers/platform/x86/hp/hp-wmi.c` (+4 lines)
- **Functions/areas:** `victus_s_thermal_profile_boards[]` init table
- **Scope:** Single-file, surgical DMI table addition

### Step 2.2: Code Flow Change
**Record:**
- **Before:** `setup_active_thermal_profile_params()` does not match
board `8B2F`; `is_victus_s_board` stays false.
- **After:** Board `8B2F` matches; `is_victus_s_board = true`,
`active_thermal_profile_params = &victus_s_thermal_params`.
- **Affected path:** Module init →
`setup_active_thermal_profile_params()` → `thermal_profile_setup()` /
`is_victus_s_thermal_profile()` consumers (platform_profile, hwmon fan
paths).

### Step 2.3: Bug Mechanism
**Record:**
- **Category:** Hardware quirk / missing device (DMI board) ID
- **Mechanism:** Wrong code path for known hardware needing Victus S WMI
thermal commands and GPU thermal settings

### Step 2.4: Fix Quality
**Record:** Obviously correct — one DMI entry pointing at existing
`victus_s_thermal_params`. Minimal risk; no API/locking changes.
Maintainer-reviewed.

---

## Phase 3: Git History Investigation

### Step 3.1: Blame Changed Lines
**Record:** `victus_s_thermal_profile_boards` table
introduced/refactored in `d9aefb386fdc4` (Jan 2026, "fix platform
profile values for Omen 16-wf1xxx"). Prior entries added by commits like
`54afb047cd7eb`, `94b2a56fd4b1c`, `d4ff92dd98ad1`. The missing-board
pattern is longstanding; this extends the same table.

### Step 3.2: Follow Fixes Tag
**Record:** N/A — no `Fixes:` tag.

### Step 3.3: Related File History
**Record:** Recent related commits are the same pattern (add board IDs
for Victus/Omen thermal support): `54afb047cd7eb`, `748f897511446`,
`6e4ab59b8391a`, `d9aefb386fdc4`, etc. Standalone one-entry addition;
not part of a multi-patch series.

### Step 3.4: Author Context
**Record:** yahia ahmed — no other hp-wmi commits in this tree.
Reviewed/committed by Ilpo Järvinen (subsystem maintainer).

### Step 3.5: Dependencies
**Record:** Requires Victus S thermal infrastructure already in tree
(`victus_s_thermal_params`, `victus_s_thermal_profile_boards`,
`setup_active_thermal_profile_params()`). **Present in this 6.18.44
tree.** Commit diff context (e.g. `omen_v1_legacy_thermal_params`,
boards `8902`/`8A44`) does not match current tree; backport needs a one-
entry addition to the current `dmi_system_id` table, not a literal
apply.

---

## Phase 4: Mailing List and External Research

### Step 4.1: Original Patch Discussion
**Record:** `b4 dig -c` unavailable (commit not in this checkout). `b4
shazam` and curl/lore fetch blocked (403/Anubis). Link present but
thread content unverified.

### Step 4.2: Reviewers
**Record:** Reviewed-by and Signed-off-by: Ilpo Järvinen (platform/x86
maintainer). Full recipient list unverified.

### Step 4.3: Bug Report
**Record:** No external bug report or syzbot link.

### Step 4.4: Related Patches/Series
**Record:** Same pattern as prior Victus board additions
(`54afb047cd7eb` added `8BBE`/`8BD4`/`8BD5`). Standalone patch.

### Step 4.5: Stable List History
**Record:** Not searched successfully (lore blocked). Similar hp-wmi
stable backports in this tree are crash/ACPI fixes, not board-ID-only
additions.

---

## Phase 5: Code Semantic Analysis

### Step 5.1: Key Functions
**Record:** `victus_s_thermal_profile_boards[]`,
`setup_active_thermal_profile_params()`,
`is_victus_s_thermal_profile()`, `thermal_profile_setup()`,
`platform_profile_victus_s_set_ec()`, hwmon fan read/write paths.

### Step 5.2: Callers
**Record:** `setup_active_thermal_profile_params()` called from
`hp_wmi_init()` before probe. `is_victus_s_thermal_profile()` used in
thermal profile setup, hwmon fan visibility/read/write, powersource
handler registration/cleanup.

### Step 5.3: Callees
**Record:** `dmi_first_match()`, `omen_thermal_profile_set()`,
`victus_s_gpu_thermal_profile_set()`,
`devm_platform_profile_register()`.

### Step 5.4: Reachability
**Record:** Runs at boot on HP WMI laptops. Affects any user of
`platform_profile` sysfs and hwmon fan interfaces on board `8B2F`.
Userspace-reachable on affected hardware.

### Step 5.5: Similar Patterns
**Record:** Same table pattern as `8BBE`, `8BD4`, `8BD5`, `8C99`, etc.
Board `8B2F` also appears in `sound/soc/amd/yc/acp6x-mach.c` (HP OMEN
Gaming Laptop 16-ap0xxx audio quirk, commit `65aabf8896687`), confirming
real hardware in the ecosystem.

---

## Phase 6: Cross-Reference Against Local Tree

### Step 6.1: Does Buggy Code Exist?
**Record:** **Yes.** Local tree is **v6.18.44** (`VERSION=6`,
`PATCHLEVEL=18`, `SUBLEVEL=44`). `victus_s_thermal_profile_boards`
exists; **`8B2F` is absent.** Victus S infrastructure present since
`d9aefb386fdc4` and related commits.

### Step 6.2: Backport Complications
**Record:** Minor adaptation needed — commit diff context differs from
current tree (no `omen_v1_legacy_thermal_params`; fewer/different
entries). Actual backport: add one `dmi_system_id` entry with
`victus_s_thermal_params`. Clean, low conflict risk.

### Step 6.3: Related Fixes Already Present?
**Record:** No existing `8B2F` entry in hp-wmi or grep across tree
(except unrelated nls/audio entries).

---

## Phase 7: Subsystem and Maintainer Context

### Step 7.1: Subsystem Criticality
**Record:** `drivers/platform/x86/hp/` — **IMPORTANT** (laptop platform
driver; thermal/fan/power management for HP hardware).

### Step 7.2: Subsystem Activity
**Record:** Actively developed — multiple hp-wmi thermal/board commits
in 2025–2026 in this tree.

---

## Phase 8: Impact and Risk Assessment

### Step 8.1: Who Is Affected
**Record:** Owners of HP laptops with DMI board name `8B2F` (HP
OMEN/Victus family; corroborated by audio quirk for 16-ap0xxx line).

### Step 8.2: Trigger Conditions
**Record:** Boot on matching hardware with `CONFIG_HP_WMI`. Common for
affected laptop owners; not a race or rare error path.

### Step 8.3: Failure Mode Severity
**Record:** Without fix: wrong thermal profile path — no Victus S
platform_profile modes, incorrect fan WMI path, no GPU thermal mode
control via driver. **Severity: MEDIUM** (functional/hardware issue;
BIOS still provides baseline thermal management; not a kernel crash).

### Step 8.4: Risk-Benefit
**Record:**
- **Benefit:** Enables correct thermal/fan behavior on real hardware for
stable users who cannot upgrade kernels.
- **Risk:** Very low — 4 lines, existing data structure, no behavior
change for other boards.
- **Ratio:** Favorable.

---

## Phase 9: Final Synthesis

### Step 9.1: Evidence Summary

**FOR backport:**
- Explicit device/quirk ID addition to existing driver (stable-
rules.rst: "just add a device ID" or "hardware quirk")
- Trivial, obviously correct, maintainer-reviewed
- Real hardware (`8B2F` confirmed in tree via audio DMI quirk)
- Required infrastructure exists in v6.18.44
- Enables platform_profile and hwmon fan control on affected laptops

**AGAINST backport:**
- Not a crash/security/corruption fix
- No user bug report or syzbot evidence
- Commit diff does not apply literally to current tree (needs minor
adaptation)
- Mailing list discussion unverified

**UNRESOLVED:**
- Exact laptop model and user testing details from lore thread
- Whether reviewers nominated `Cc: stable`

### Step 9.2: Stable Rules Checklist
1. Obviously correct and tested? **PASS** (maintainer reviewed; pattern
proven by sibling board entries)
2. Fixes real bug affecting users? **PASS** (hardware quirk —
wrong/missing thermal path on `8B2F`)
3. Important issue? **PASS** (hardware quirk per stable rules;
functional thermal/fan management)
4. Small and contained? **PASS** (4 lines, one file)
5. No new features/APIs? **PASS** (DMI table entry only; no new APIs)
6. Can apply to local tree? **PASS** (minor one-entry adaptation to
current table)

### Step 9.3: Exception Category
**Record:** Hardware quirk / device ID addition (DMI board ID in
existing hp-wmi driver). Matches `Documentation/process/stable-kernel-
rules.rst` line 15: "just add a device ID" and line 19: "hardware
quirk."

### Step 9.4: Decision Rationale
For **v6.18.44**, the Victus S thermal framework is present but board
`8B2F` is missing. This is the same class of change as prior Victus
board additions — a DMI quirk entry enabling correct thermal and fan
behavior on real HP hardware. It is small, maintainer-reviewed, low
risk, and explicitly within stable policy for device-ID/quirk additions.
The commit should be adapted (not cherry-picked verbatim) to the current
`dmi_system_id` table layout.

---

## Verification

- **[Phase 1]** Parsed subject, tags, body; no Fixes/Reported-by/syzbot
- **[Phase 2]** Diff: +4 lines, one DMI entry with
`victus_s_thermal_params`
- **[Phase 3]** `git describe HEAD`: v6.18.44; `git blame` on table:
`d9aefb386fdc4` refactor; related commits `54afb047cd7eb`,
`6e4ab59b8391a`
- **[Phase 3]** `git log --grep="8B2F"`: no hp-wmi commit in tree
- **[Phase 4]** `b4 dig -c`: failed (commit not in checkout); `b4
shazam`: message-id unknown; lore/patch.msgid.link: blocked
(403/Anubis)
- **[Phase 5]** Read `setup_active_thermal_profile_params()`,
`is_victus_s_thermal_profile()`, `thermal_profile_setup()`, hwmon
paths
- **[Phase 5]** `grep 8B2F`: found in `acp6x-mach.c` (HP OMEN 16-ap0xxx
audio quirk, `65aabf8896687`)
- **[Phase 6]** `grep 8B2F` in hp-wmi.c: absent;
`victus_s_thermal_params` and table exist
- **[Phase 6]** Commit diff context (`omen_v1_legacy_thermal_params`,
boards `8902`/`8A44`) not in current tree — adaptation required
- **[Phase 7]** hp-wmi actively maintained; Ilpo Järvinen is maintainer
- **[Phase 8]** Impact: thermal/fan/platform_profile on board `8B2F`;
severity MEDIUM; risk very low
- **[Phase 9]** `Documentation/process/stable-kernel-rules.rst` line 15
confirms device-ID additions are stable-appropriate

**YES**

drivers/platform/x86/hp/hp-wmi.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/platform/x86/hp/hp-wmi.c b/drivers/platform/x86/hp/hp-wmi.c
index 550d4b39a92af..3f9c718123a85 100644
--- a/drivers/platform/x86/hp/hp-wmi.c
+++ b/drivers/platform/x86/hp/hp-wmi.c
@@ -158,6 +158,10 @@ static const struct dmi_system_id victus_s_thermal_profile_boards[] __initconst
.matches = { DMI_MATCH(DMI_BOARD_NAME, "8BAB") },
.driver_data = (void *)&omen_v1_thermal_params,
},
+ {
+ .matches = { DMI_MATCH(DMI_BOARD_NAME, "8B2F") },
+ .driver_data = (void *)&victus_s_thermal_params,
+ },
{
.matches = { DMI_MATCH(DMI_BOARD_NAME, "8BBE") },
.driver_data = (void *)&victus_s_thermal_params,
--
2.53.0