[PATCH AUTOSEL 6.19-6.18] platform/x86: hp-wmi: Add Omen 16-wf0xxx fan and thermal support
From: Sasha Levin
Date: Tue Mar 10 2026 - 05:20:42 EST
From: Krishna Chomal <krishna.chomal108@xxxxxxxxx>
[ Upstream commit 13fa3aaf02edaad9b41fc61d7f6326d2b6a4bf80 ]
The HP Omen 16-wf0xxx (board ID: 8BAB) has the same WMI interface as
other Victus S boards, but requires quirks for correctly switching
thermal profile (similar to HP Omen 16-wf1xxx, board ID: 8C78).
Add the DMI board name to victus_s_thermal_profile_boards[] table and
map it to omen_v1_thermal_params.
Testing on HP Omen 16-wf0xxx confirmed that platform profile is
registered successfully and fan RPMs are readable and controllable.
Suggested-by: Noah Provenzano <noahpro@xxxxxxxxx>
Tested-by: Juan Martin Morales <juanm4morales@xxxxxxxxx>
Reported-by: Juan Martin Morales <juanm4morales@xxxxxxxxx>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=220639
Signed-off-by: Krishna Chomal <krishna.chomal108@xxxxxxxxx>
Link: https://patch.msgid.link/20260216072003.90151-1-krishna.chomal108@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:
## Analysis
### Commit Summary
This commit adds a single DMI board name entry ("8BAB" for HP Omen
16-wf0xxx) to the `victus_s_thermal_profile_boards[]` table in the HP
WMI driver, mapping it to existing `omen_v1_thermal_params`. This
enables fan RPM reading/control and thermal profile switching on this
specific laptop model.
### Classification: Hardware Quirk / Device ID Addition
This falls squarely into the **"QUIRKS and WORKAROUNDS"** and **"NEW
DEVICE IDs"** exception categories for stable:
- **Change scope**: Adding 4 lines — a single new DMI match entry to an
existing quirk table
- **Pattern**: Identical to how other board IDs (8BBE, 8BCD, 8BD4, 8BD5,
8C78) are already registered in the same table
- **Risk**: Zero risk to other hardware — the DMI_MATCH on "8BAB" only
affects that specific board
- **No new code paths**: Uses existing `omen_v1_thermal_params` (same as
the 8BCD and 8C78 entries already in the table)
### User Impact
- Without this entry, the HP Omen 16-wf0xxx laptop lacks proper thermal
profile management and fan control via the platform profile interface
- Real users reported this issue (bugzilla #220639)
- Tested on actual hardware by the reporter
### Stable Criteria Assessment
- **Obviously correct**: Yes — trivial table entry addition following
exact pattern of existing entries
- **Fixes a real issue**: Yes — enables hardware support for a specific
laptop (hardware quirk)
- **Small and contained**: Yes — 4 lines, single file, single table
- **No new features/APIs**: Correct — just extends existing mechanism to
new hardware
- **Tested**: Yes — `Tested-by` tag from the reporter confirms it works
- **Reviewed**: Yes — by subsystem maintainer Ilpo Järvinen
### Risk Assessment
- **Risk**: Essentially zero. The DMI match is board-specific and cannot
affect any other system.
- **Benefit**: Enables thermal/fan control for HP Omen 16-wf0xxx users
on stable kernels.
- **Dependencies**: None — `omen_v1_thermal_params` and the
`victus_s_thermal_profile_boards[]` table infrastructure already exist
in any kernel version that has the other entries.
### Verification
- Verified the diff is a trivial 4-line addition to an existing DMI
match table — confirmed by reading the patch
- Verified it reuses existing `omen_v1_thermal_params` (same as 8BCD and
8C78 entries in the same table) — confirmed in the diff context
- Verified the commit has Tested-by, Reported-by, and Reviewed-by tags —
confirmed in commit message
- Verified bugzilla link exists (bug #220639) — present in commit
message
- Verified this matches the "device ID / hardware quirk" exception
pattern — it's structurally identical to adding a PCI/USB device ID to
a driver's ID table
This is a textbook example of a hardware quirk addition that is
appropriate for stable trees: trivially small, zero risk, tested on real
hardware, and enables functionality for real users.
**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 24d065ddfc6ae..9fcc18635e4e7 100644
--- a/drivers/platform/x86/hp/hp-wmi.c
+++ b/drivers/platform/x86/hp/hp-wmi.c
@@ -160,6 +160,10 @@ static const char * const victus_thermal_profile_boards[] = {
/* DMI Board names of Victus 16-r and Victus 16-s laptops */
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, "8BBE") },
.driver_data = (void *)&victus_s_thermal_params,
--
2.51.0