From nobody Wed Apr 1 22:05:30 2026 Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CE7853EBF20 for ; Wed, 1 Apr 2026 11:18:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775042300; cv=none; b=VAJ1WtoyevfSMQ71NQeGgs5WdkPDHMXVi4h+WkNgHCH1JjZ86cs3zz4vdsMZxutLmY5RGuzHpWSS+WfEjQXBKyjcrXPnsM4mQ5v1oulPKAFKKrE4lziBw0xDgcsN3Em06mpmcZflkmnNtcCt8PzT+QOXMAB4NUIqzD6UyMvX7fk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775042300; c=relaxed/simple; bh=Zod/mbmSErAVBnUR2KsmYCmm5vMqxEg4NpW/Yvq/orw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VSLFUNj9r/ujtrOd7KaOPtqoX7uu5xq/TMa/SAu1RCsQUXnUu49Pdgv04Y1AHBd7j6MtzkdbM707sM10wJT3L/8Q52DNiGXYURUK5K/Pb1I6VrihfSEG7XLqjeR73eX/6dipmFrloqHgHVZ6K5rQbvohlDsGGr/0gBGrMtRWceQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=jdYypNfo; arc=none smtp.client-ip=209.85.216.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jdYypNfo" Received: by mail-pj1-f49.google.com with SMTP id 98e67ed59e1d1-35691a231a7so4117677a91.3 for ; Wed, 01 Apr 2026 04:18:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775042298; x=1775647098; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XPtxhpt/RdXrwtdWw636aHBwOhySfdQdA4zowFMg+Sw=; b=jdYypNfoCIkPm98oeJe8kh1njMgewTKLRULwVn/5nprcs9KFKJpMsz8H1x/vG+K4lf OxP/3ujyUdHDHuxqEFtgq5whv6cL8HylCluOdCcIx2SKJ7ZVU1JYw2sv/0IDcao8o8ik EbTmTLtJDa+XEOmYbGE5ycA2SxTgdAoQ3UlhD/8AqkoEsTqBSbZaZAZttuDsC1q4B1UQ fZyrjGrUhoOH9cK8xiWlwyFfDdIYj0nqmxYU/vKaee0fJcOF4jrsJgPQdadKYRmX5UdB Guack56ITT9x03kdp5VqHfEsM9APjj2dSy+9WP6YZMOKKFwFbvBZ1rYAqk6ZKX5YXGQY 9ZkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775042298; x=1775647098; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=XPtxhpt/RdXrwtdWw636aHBwOhySfdQdA4zowFMg+Sw=; b=o0yUmj1lDRBPz/7kYRCTb+961yTmYdUlnlD/Jq+MOoCfNmW5Ta7mXDKPbH7tZBlFAB UNO3nF47MyohSI4yhAbsesgdGt3JSqpfInO67N45F49oxUafw11rnzS0Sa+ZeyT+u4cl EysBR9Os677NcWH4TH2Hdy8ejSWziLjlWzjAcwu+GL+PtfvO2QLzw/oEU04+m68JiYbK dB5XYbRDM6Z2gUIE27C8aGvNiAupSGuai6lRFzeFws7/kWo0QjPYa6b0rkdkRftWBufW YFSXLMg74+6Fr9NTY/V+b187vK1BKfYyn8k1izobZcTkWW6N8kQ7Mvy+qP6IhERIEtdp CLpQ== X-Forwarded-Encrypted: i=1; AJvYcCUJ6OHxWJqGHkZZYWxh5h1pu5X07arEFmnI6MIetwQ+oy3VnWDznzGfjyjBRgZECiVQIpOg5zD3DigKoaA=@vger.kernel.org X-Gm-Message-State: AOJu0Yy2p1VkeFgxnfXSVnj+8PAlwkXwjxDX7t4eRwT3Nrv74W6KMYTA FJ9vP5Ad1QYJhJ3wMTsncaZNGuO7+ihV+ErDMQGeglXkoUDwSge0c2W/ X-Gm-Gg: ATEYQzxFcKzyoyRVApa208YZjLdtJ8AsWHNZl03YaTGjnL1MyXcxHLE5CSG+dOXKccu qrD+Vbl28rghx1lpvypOel0BE2EkuoReEv3/CSKU93jFue36Q3Nr/z/B+lt0Tv3XaYdfZjNrUHG paUiKvGr6NrBQIVwcgY6h0Tvpt+yfcohrYB2d4v0NoKhqEUTeDn4POyg4DlfZzjOMh6wIrymQUI 6dvMt8681VqRyv3FJhVAFkgszkizKL3gdVjiWe0d0wxBzdlxhHx70CAqpsOvfwMVxzUYur5Ei0A kIFEKFC4pjnmiBDYcGb07/nTzOOQwSZgeI5NjILnYBvofMcvq347Ek/dtQeL4V7VPmAtOVWHX7I INHcxXzMhAsM6ejpYjsLvY5DivbmVUbbV3+gFs/4wAyJu3u0g8vvNiO0FE7R6VGKqBDD/1gSmQG 1X0Hc1nye/F0ow7lU8vDeQHTmSbLr4hUnJO4Qe83aVvZSFmWe9En4p1z0UHZCUd/6xpO5h/WHgv if5XrraTk/URb0O3xel X-Received: by 2002:a17:90b:3e4e:b0:35d:9c43:57fe with SMTP id 98e67ed59e1d1-35dc6e6739emr2907995a91.13.1775042298013; Wed, 01 Apr 2026 04:18:18 -0700 (PDT) Received: from archlinux ([2405:201:1b:225c:eb9d:1fc0:f95c:bd90]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35dcafd004fsm1889689a91.12.2026.04.01.04.18.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 04:18:17 -0700 (PDT) From: Krishna Chomal To: ilpo.jarvinen@linux.intel.com, hansg@kernel.org Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, Krishna Chomal , Jinyang Zhu Subject: [PATCH 2/4] platform/x86: hp-wmi: Add support for OMEN MAX 16-ak0xxx (8D87) Date: Wed, 1 Apr 2026 16:47:46 +0530 Message-ID: <20260401111748.106970-3-krishna.chomal108@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260401111748.106970-1-krishna.chomal108@gmail.com> References: <20260401111748.106970-1-krishna.chomal108@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The HP OMEN MAX 16-ak0xxx (8D87) requires the same WMI queries as other Victus S devices, hence it has been added to the corresponding list. For this reason, platform_profile_victus_s_get_ec() will be called during thermal_profile_setup() and victus_s_powersource_event() to obtain hardware state (platform profile) by reading from the Embedded Controller, however, this particular board's EC does not seem to expose the platform profile value, unlike other boards. Hence EC readback is disabled. Testing on board 8D87 confirmed that platform profile is registered successfully and fan RPMs are readable and controllable. Tested-by: Jinyang Zhu Signed-off-by: Krishna Chomal --- drivers/platform/x86/hp/hp-wmi.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/platform/x86/hp/hp-wmi.c b/drivers/platform/x86/hp/hp-= wmi.c index d630b7f6e146..24164f294420 100644 --- a/drivers/platform/x86/hp/hp-wmi.c +++ b/drivers/platform/x86/hp/hp-wmi.c @@ -48,6 +48,7 @@ MODULE_ALIAS("wmi:5FB7F034-2C63-45E9-BE91-3D44E2C707E4"); =20 enum hp_ec_offsets { HP_EC_OFFSET_UNKNOWN =3D 0x00, + HP_NO_THERMAL_PROFILE_OFFSET =3D 0x01, HP_VICTUS_S_EC_THERMAL_PROFILE_OFFSET =3D 0x59, HP_OMEN_EC_THERMAL_PROFILE_FLAGS_OFFSET =3D 0x62, HP_OMEN_EC_THERMAL_PROFILE_TIMER_OFFSET =3D 0x63, @@ -120,6 +121,13 @@ static const struct thermal_profile_params omen_v1_the= rmal_params =3D { .ec_tp_offset =3D HP_VICTUS_S_EC_THERMAL_PROFILE_OFFSET, }; =20 +static const struct thermal_profile_params omen_v1_no_ec_thermal_params = =3D { + .performance =3D HP_OMEN_V1_THERMAL_PROFILE_PERFORMANCE, + .balanced =3D HP_OMEN_V1_THERMAL_PROFILE_DEFAULT, + .low_power =3D HP_OMEN_V1_THERMAL_PROFILE_DEFAULT, + .ec_tp_offset =3D HP_NO_THERMAL_PROFILE_OFFSET, +}; + /* * A generic pointer for the currently-active board's thermal profile * parameters. @@ -201,6 +209,10 @@ static const struct dmi_system_id victus_s_thermal_pro= file_boards[] __initconst .matches =3D { DMI_MATCH(DMI_BOARD_NAME, "8D41") }, .driver_data =3D (void *)&victus_s_thermal_params, }, + { + .matches =3D { DMI_MATCH(DMI_BOARD_NAME, "8D87") }, + .driver_data =3D (void *)&omen_v1_no_ec_thermal_params, + }, {}, }; =20 @@ -1801,7 +1813,8 @@ static int platform_profile_victus_s_get_ec(enum plat= form_profile_option *profil const struct thermal_profile_params *params; =20 params =3D active_thermal_profile_params; - if (params->ec_tp_offset =3D=3D HP_EC_OFFSET_UNKNOWN) { + if (params->ec_tp_offset =3D=3D HP_EC_OFFSET_UNKNOWN || + params->ec_tp_offset =3D=3D HP_NO_THERMAL_PROFILE_OFFSET) { *profile =3D active_platform_profile; return 0; } @@ -2156,7 +2169,8 @@ static int thermal_profile_setup(struct platform_devi= ce *device) * behaves like a wrapper around active_platform_profile, to avoid using * uninitialized data, we default to PLATFORM_PROFILE_BALANCED. */ - if (active_thermal_profile_params->ec_tp_offset =3D=3D HP_EC_OFFSET_UNKN= OWN) { + if (active_thermal_profile_params->ec_tp_offset =3D=3D HP_EC_OFFSET_UNKN= OWN || + active_thermal_profile_params->ec_tp_offset =3D=3D HP_NO_THERMAL_PRO= FILE_OFFSET) { active_platform_profile =3D PLATFORM_PROFILE_BALANCED; } else { err =3D platform_profile_victus_s_get_ec(&active_platform_profile); --=20 2.53.0