Unverified Commit 435da773 authored by Krishna Chomal's avatar Krishna Chomal Committed by Ilpo Järvinen
Browse files

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: default avatarQinfeng Wu <qwqgong@gmail.com>
Reported-by: default avatarQinfeng Wu <qwqgong@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221150


Signed-off-by: default avatarKrishna Chomal <krishna.chomal108@gmail.com>
Link: https://patch.msgid.link/20260302073525.71037-1-krishna.chomal108@gmail.com


Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
parent 84d29bfd
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -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,