Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

platform/x86: hp-wmi: Add support for Omen 16-k0xxx (8A4D)

The HP Omen 16-k0xxx (board ID: 8A4D) has the same WMI interface as
other Victus S boards, but requires additional quirks for correctly
switching thermal profile.

Create a new quirk omen_v1_legacy_thermal_params which allows a board to
use Omen V1 thermal values, but rely on the older legacy
HP_OMEN_EC_THERMAL_PROFILE_OFFSET. Add the DMI board name to
victus_s_thermal_profile_boards[] table and map it to the newly added
quirk.

Testing on board 8A4D confirmed that platform profile is registered
successfully and fan RPMs are readable and controllable.

Tested-by: Qinfeng Wu <qwqgong@gmail.com>
Reported-by: Qinfeng Wu <qwqgong@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221150
Signed-off-by: Krishna Chomal <krishna.chomal108@gmail.com>
Link: https://patch.msgid.link/20260302073525.71037-1-krishna.chomal108@gmail.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>

authored by

Krishna Chomal and committed by
Ilpo Järvinen
435da773 84d29bfd

+11
+11
drivers/platform/x86/hp/hp-wmi.c
··· 120 120 .ec_tp_offset = HP_VICTUS_S_EC_THERMAL_PROFILE_OFFSET, 121 121 }; 122 122 123 + static const struct thermal_profile_params omen_v1_legacy_thermal_params = { 124 + .performance = HP_OMEN_V1_THERMAL_PROFILE_PERFORMANCE, 125 + .balanced = HP_OMEN_V1_THERMAL_PROFILE_DEFAULT, 126 + .low_power = HP_OMEN_V1_THERMAL_PROFILE_DEFAULT, 127 + .ec_tp_offset = HP_OMEN_EC_THERMAL_PROFILE_OFFSET, 128 + }; 129 + 123 130 /* 124 131 * A generic pointer for the currently-active board's thermal profile 125 132 * parameters. ··· 182 175 183 176 /* DMI Board names of Victus 16-r and Victus 16-s laptops */ 184 177 static const struct dmi_system_id victus_s_thermal_profile_boards[] __initconst = { 178 + { 179 + .matches = { DMI_MATCH(DMI_BOARD_NAME, "8A4D") }, 180 + .driver_data = (void *)&omen_v1_legacy_thermal_params, 181 + }, 185 182 { 186 183 .matches = { DMI_MATCH(DMI_BOARD_NAME, "8BAB") }, 187 184 .driver_data = (void *)&omen_v1_thermal_params,