1 file changed, 31 insertions(+), 0 deletions(-)
add power limits quirk entry for ASUS G614FM laptop.
The limits are extracted from the device's ThrottleGear XML configuration.
Signed-off-by: Marco Scardovi <scardracs@disroot.org>
---
drivers/platform/x86/asus-armoury.h | 31 changes(+/-)
1 file changed, 31 insertions(+), 0 deletions(-)
--- a/drivers/platform/x86/asus-armoury.h
+++ b/drivers/platform/x86/asus-armoury.h
@@ -1056,6 +1056,37 @@
.requires_fan_curve = true,
},
},
+ {
+ .matches = {
+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "G614FM"),
+ },
+ .driver_data = &(struct power_data) {
+ .ac_data = &(struct power_limits) {
+ .nv_dynamic_boost_max = 15,
+ .nv_dynamic_boost_min = 5,
+ .nv_temp_target_max = 87,
+ .nv_temp_target_min = 75,
+ .ppt_pl1_spl_max = 120,
+ .ppt_pl1_spl_min = 30,
+ .ppt_pl2_sppt_def = 140,
+ .ppt_pl2_sppt_max = 165,
+ .ppt_pl2_sppt_min = 65,
+ .ppt_pl3_fppt_def = 140,
+ .ppt_pl3_fppt_max = 165,
+ .ppt_pl3_fppt_min = 65,
+ },
+ .dc_data = &(struct power_limits) {
+ .nv_temp_target_max = 87,
+ .nv_temp_target_min = 75,
+ .ppt_pl1_spl_max = 65,
+ .ppt_pl1_spl_min = 25,
+ .ppt_pl2_sppt_max = 65,
+ .ppt_pl2_sppt_min = 25,
+ .ppt_pl3_fppt_max = 75,
+ .ppt_pl3_fppt_min = 35,
+ },
+ },
+ },
{
.matches = {
DMI_MATCH(DMI_BOARD_NAME, "GA401Q"),
--
2.55.0
On Fri, 28 Aug 2026, Marco Scardovi wrote:
> add power limits quirk entry for ASUS G614FM laptop.
> The limits are extracted from the device's ThrottleGear XML configuration.
>
> Signed-off-by: Marco Scardovi <scardracs@disroot.org>
> ---
> drivers/platform/x86/asus-armoury.h | 31 changes(+/-)
> 1 file changed, 31 insertions(+), 0 deletions(-)
>
> --- a/drivers/platform/x86/asus-armoury.h
> +++ b/drivers/platform/x86/asus-armoury.h
> @@ -1056,6 +1056,37 @@
> .requires_fan_curve = true,
> },
> },
> + {
> + .matches = {
> + DMI_EXACT_MATCH(DMI_BOARD_NAME, "G614FM"),
So far, this file has only used DMI_MATCH() ?
The entry seems to be in wrong place.
And indentation level is inconsistent as well.
> + },
> + .driver_data = &(struct power_data) {
> + .ac_data = &(struct power_limits) {
> + .nv_dynamic_boost_max = 15,
> + .nv_dynamic_boost_min = 5,
> + .nv_temp_target_max = 87,
> + .nv_temp_target_min = 75,
> + .ppt_pl1_spl_max = 120,
> + .ppt_pl1_spl_min = 30,
> + .ppt_pl2_sppt_def = 140,
> + .ppt_pl2_sppt_max = 165,
> + .ppt_pl2_sppt_min = 65,
> + .ppt_pl3_fppt_def = 140,
> + .ppt_pl3_fppt_max = 165,
> + .ppt_pl3_fppt_min = 65,
> + },
> + .dc_data = &(struct power_limits) {
> + .nv_temp_target_max = 87,
> + .nv_temp_target_min = 75,
> + .ppt_pl1_spl_max = 65,
> + .ppt_pl1_spl_min = 25,
> + .ppt_pl2_sppt_max = 65,
> + .ppt_pl2_sppt_min = 25,
> + .ppt_pl3_fppt_max = 75,
> + .ppt_pl3_fppt_min = 35,
> + },
> + },
> + },
> {
> .matches = {
> DMI_MATCH(DMI_BOARD_NAME, "GA401Q"),
>
--
i.
Hi Ilpo, thanks for the review. While working on some other models it gets tangled with the EXACT_MATCH in this one too and did not notice. Some models contains both the "base" version (like G614FM) and a minor upgraded version (like G614FM2 or G614FM4: it's not that the case but we'll use it as reference): these models have, sometimes, different Wattages on CPU/GPU so we can't use the DMI_MATCH for these, as the 2/4 models would end up inside the base model incorrectly. Changes since v1: - Use DMI_MATCH() instead of DMI_EXACT_MATCH() - Place the entry with the other G614 models - Fix indentation and field order to match neighbouring entries - Set requires_fan_curve, as on the other G614 quirks Link for v1: https://lore.kernel.org/all/20260828065904.11355-1-scardracs@disroot.org/ Marco Scardovi (1): platform/x86: asus-armoury: add power limits quirk for G614FM drivers/platform/x86/asus-armoury.h | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) -- 2.55.0
Add a power limits quirk entry for the ASUS G614FM laptop.
The limits are extracted from the device's ThrottleGear XML
configuration.
Signed-off-by: Marco Scardovi <scardracs@disroot.org>
---
drivers/platform/x86/asus-armoury.h | 32 +++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/drivers/platform/x86/asus-armoury.h b/drivers/platform/x86/asus-armoury.h
index 0e301d663..efb4dc66e 100644
--- a/drivers/platform/x86/asus-armoury.h
+++ b/drivers/platform/x86/asus-armoury.h
@@ -1988,6 +1988,38 @@ static const struct dmi_system_id power_limits[] = {
.requires_fan_curve = true,
},
},
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_NAME, "G614FM"),
+ },
+ .driver_data = &(struct power_data) {
+ .ac_data = &(struct power_limits) {
+ .ppt_pl1_spl_min = 30,
+ .ppt_pl1_spl_max = 120,
+ .ppt_pl2_sppt_min = 65,
+ .ppt_pl2_sppt_def = 140,
+ .ppt_pl2_sppt_max = 165,
+ .ppt_pl3_fppt_min = 65,
+ .ppt_pl3_fppt_def = 140,
+ .ppt_pl3_fppt_max = 165,
+ .nv_temp_target_min = 75,
+ .nv_temp_target_max = 87,
+ .nv_dynamic_boost_min = 5,
+ .nv_dynamic_boost_max = 15,
+ },
+ .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, "G614FP"),
--
2.55.0
© 2016 - 2026 Red Hat, Inc.