[PATCH] platform/x86: asus-armoury: add power limits quirk for G614FM

Marco Scardovi posted 1 patch 4 weeks, 1 day ago
There is a newer version of this series
1 file changed, 31 insertions(+), 0 deletions(-)
[PATCH] platform/x86: asus-armoury: add power limits quirk for G614FM
Posted by Marco Scardovi 4 weeks, 1 day ago
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
Re: [PATCH] platform/x86: asus-armoury: add power limits quirk for G614FM
Posted by Ilpo Järvinen 1 week, 1 day ago
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.
[PATCH v2 0/1] platform/x86: asus-armoury: add power limits quirk for G614FM
Posted by Marco Scardovi 1 week ago
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
[PATCH v2 1/1] platform/x86: asus-armoury: add power limits quirk for G614FM
Posted by Marco Scardovi 1 week ago
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