]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
platform/x86: asus-armoury: add support for G614PR
authorMarco Scardovi <scardracs@disroot.org>
Wed, 10 Jun 2026 15:21:30 +0000 (17:21 +0200)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Thu, 11 Jun 2026 11:53:35 +0000 (14:53 +0300)
Add TDP power limits and fan curve requirements for the ASUS ROG Strix
G16 G614PR laptop model.

The ASUS ROG Strix G16 G614PR requires specific AC/DC power limits
(PPT PL1/PL2/PL3, dynamic boost, and NV TGP targets) to function
correctly under various power profiles. Without these limits, the Asus
Armoury driver cannot configure the correct power envelopes or enable custom
fan curves, leading to suboptimal performance or noise management.

This patch adds the corresponding DMI board name matching entry ("G614PR")
under the power_limits table in asus-armoury.h, populating the AC and DC
limits based on the platform's hardware specification.

Assisted-by: Antigravity:gemini-3.5-flash
Signed-off-by: Marco Scardovi <scardracs@disroot.org>
Reviewed-by: Denis Benato <denis.benato@linux.dev>
Link: https://patch.msgid.link/20260610152130.25892-1-scardracs@disroot.org
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/asus-armoury.h

index 692978b61959f4a1827607ad5748f25025a5617c..5be34b6a92db6f4a606907c1638520ec9c29b083 100644 (file)
@@ -1898,6 +1898,40 @@ static const struct dmi_system_id power_limits[] = {
                        .requires_fan_curve = true,
                },
        },
+       {
+               .matches = {
+                       DMI_MATCH(DMI_BOARD_NAME, "G614PR"),
+               },
+               .driver_data = &(struct power_data) {
+                       .ac_data = &(struct power_limits) {
+                               .ppt_pl1_spl_min = 30,
+                               .ppt_pl1_spl_max = 90,
+                               .ppt_pl2_sppt_min = 65,
+                               .ppt_pl2_sppt_def = 110,
+                               .ppt_pl2_sppt_max = 125,
+                               .ppt_pl3_fppt_min = 65,
+                               .ppt_pl3_fppt_def = 110,
+                               .ppt_pl3_fppt_max = 125,
+                               .nv_temp_target_min = 75,
+                               .nv_temp_target_max = 87,
+                               .nv_dynamic_boost_min = 5,
+                               .nv_dynamic_boost_max = 25,
+                               .nv_tgp_min = 65,
+                               .nv_tgp_max = 115,
+                       },
+                       .dc_data = &(struct power_limits) {
+                               .ppt_pl1_spl_min = 25,
+                               .ppt_pl1_spl_max = 65,
+                               .ppt_pl2_sppt_min = 25,
+                               .ppt_pl2_sppt_max = 65,
+                               .ppt_pl3_fppt_min = 35,
+                               .ppt_pl3_fppt_max = 75,
+                               .nv_temp_target_min = 75,
+                               .nv_temp_target_max = 87,
+                       },
+                       .requires_fan_curve = true,
+               },
+       },
        {
                .matches = {
                        DMI_MATCH(DMI_BOARD_NAME, "G615LR"),