]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
platform/x86: hp-wmi: Add support for Omen 16-k0xxx (8A4D)
authorKrishna Chomal <krishna.chomal108@gmail.com>
Mon, 2 Mar 2026 07:35:25 +0000 (13:05 +0530)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Mon, 23 Mar 2026 12:48:56 +0000 (14:48 +0200)
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>
drivers/platform/x86/hp/hp-wmi.c

index 0e5d491fd450081908cc2f75aa1edf1e33aaba14..988a0acc9622b8b5039c1bbba7e31628dc82e034 100644 (file)
@@ -120,6 +120,13 @@ static const struct thermal_profile_params omen_v1_thermal_params = {
        .ec_tp_offset   = HP_VICTUS_S_EC_THERMAL_PROFILE_OFFSET,
 };
 
+static const struct thermal_profile_params omen_v1_legacy_thermal_params = {
+       .performance    = HP_OMEN_V1_THERMAL_PROFILE_PERFORMANCE,
+       .balanced       = HP_OMEN_V1_THERMAL_PROFILE_DEFAULT,
+       .low_power      = HP_OMEN_V1_THERMAL_PROFILE_DEFAULT,
+       .ec_tp_offset   = HP_OMEN_EC_THERMAL_PROFILE_OFFSET,
+};
+
 /*
  * A generic pointer for the currently-active board's thermal profile
  * parameters.
@@ -175,6 +182,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, "8A4D") },
+               .driver_data = (void *)&omen_v1_legacy_thermal_params,
+       },
        {
                .matches = { DMI_MATCH(DMI_BOARD_NAME, "8BAB") },
                .driver_data = (void *)&omen_v1_thermal_params,