* [PATCH 1/3] platform/x86/amd: pmf: Decrease error message to debug
@ 2024-04-10 14:09 Mario Limonciello
2024-04-10 14:09 ` [PATCH 2/3] platform/x86/amd: pmf: Add infrastructure for quirking supported funcs Mario Limonciello
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Mario Limonciello @ 2024-04-10 14:09 UTC (permalink / raw)
To: Hans de Goede, Ilpo Järvinen
Cc: open list:X86 PLATFORM DRIVERS, Shyam Sundar S K, al0uette,
Mario Limonciello
ASUS ROG Zephyrus G14 doesn't have _CRS in AMDI0102 device and so
there are no resources to walk. This is expected behavior because
it doesn't support Smart PC. Decrease error message to debug.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=218685
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
---
drivers/platform/x86/amd/pmf/acpi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/platform/x86/amd/pmf/acpi.c b/drivers/platform/x86/amd/pmf/acpi.c
index d0cf46e2fc8e..60fc71c9fb0f 100644
--- a/drivers/platform/x86/amd/pmf/acpi.c
+++ b/drivers/platform/x86/amd/pmf/acpi.c
@@ -437,7 +437,7 @@ int apmf_check_smart_pc(struct amd_pmf_dev *pmf_dev)
status = acpi_walk_resources(ahandle, METHOD_NAME__CRS, apmf_walk_resources, pmf_dev);
if (ACPI_FAILURE(status)) {
- dev_err(pmf_dev->dev, "acpi_walk_resources failed :%d\n", status);
+ dev_dbg(pmf_dev->dev, "acpi_walk_resources failed :%d\n", status);
return -EINVAL;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/3] platform/x86/amd: pmf: Add infrastructure for quirking supported funcs
2024-04-10 14:09 [PATCH 1/3] platform/x86/amd: pmf: Decrease error message to debug Mario Limonciello
@ 2024-04-10 14:09 ` Mario Limonciello
2024-04-10 14:09 ` [PATCH 3/3] platform/x86/amd: pmf: Add quirk for ROG Zephyrus G14 Mario Limonciello
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Mario Limonciello @ 2024-04-10 14:09 UTC (permalink / raw)
To: Hans de Goede, Ilpo Järvinen
Cc: open list:X86 PLATFORM DRIVERS, Shyam Sundar S K, al0uette,
Mario Limonciello
In the event of a BIOS bug add infrastructure that will be utilized
to override the return value for supported_funcs to avoid enabling
features.
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
---
drivers/platform/x86/amd/pmf/Makefile | 2 +-
drivers/platform/x86/amd/pmf/acpi.c | 5 ++-
drivers/platform/x86/amd/pmf/core.c | 1 +
drivers/platform/x86/amd/pmf/pmf-quirks.c | 43 +++++++++++++++++++++++
drivers/platform/x86/amd/pmf/pmf.h | 3 ++
5 files changed, 52 insertions(+), 2 deletions(-)
create mode 100644 drivers/platform/x86/amd/pmf/pmf-quirks.c
diff --git a/drivers/platform/x86/amd/pmf/Makefile b/drivers/platform/x86/amd/pmf/Makefile
index 6b26e48ce8ad..7d6079b02589 100644
--- a/drivers/platform/x86/amd/pmf/Makefile
+++ b/drivers/platform/x86/amd/pmf/Makefile
@@ -7,4 +7,4 @@
obj-$(CONFIG_AMD_PMF) += amd-pmf.o
amd-pmf-objs := core.o acpi.o sps.o \
auto-mode.o cnqf.o \
- tee-if.o spc.o
+ tee-if.o spc.o pmf-quirks.o
diff --git a/drivers/platform/x86/amd/pmf/acpi.c b/drivers/platform/x86/amd/pmf/acpi.c
index 60fc71c9fb0f..1157ec148880 100644
--- a/drivers/platform/x86/amd/pmf/acpi.c
+++ b/drivers/platform/x86/amd/pmf/acpi.c
@@ -343,7 +343,10 @@ static int apmf_if_verify_interface(struct amd_pmf_dev *pdev)
if (err)
return err;
- pdev->supported_func = output.supported_functions;
+ /* only set if not already set by a quirk */
+ if (!pdev->supported_func)
+ pdev->supported_func = output.supported_functions;
+
dev_dbg(pdev->dev, "supported functions:0x%x notifications:0x%x version:%u\n",
output.supported_functions, output.notification_mask, output.version);
diff --git a/drivers/platform/x86/amd/pmf/core.c b/drivers/platform/x86/amd/pmf/core.c
index 5d4f80698a8b..64e6e34a2a9a 100644
--- a/drivers/platform/x86/amd/pmf/core.c
+++ b/drivers/platform/x86/amd/pmf/core.c
@@ -445,6 +445,7 @@ static int amd_pmf_probe(struct platform_device *pdev)
mutex_init(&dev->lock);
mutex_init(&dev->update_mutex);
+ amd_pmf_quirks_init(dev);
apmf_acpi_init(dev);
platform_set_drvdata(pdev, dev);
amd_pmf_dbgfs_register(dev);
diff --git a/drivers/platform/x86/amd/pmf/pmf-quirks.c b/drivers/platform/x86/amd/pmf/pmf-quirks.c
new file mode 100644
index 000000000000..9f3790eaaa30
--- /dev/null
+++ b/drivers/platform/x86/amd/pmf/pmf-quirks.c
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * AMD Platform Management Framework Driver Quirks
+ *
+ * Copyright (c) 2024, Advanced Micro Devices, Inc.
+ * All Rights Reserved.
+ *
+ * Author: Mario Limonciello <mario.limonciello@amd.com>
+ */
+
+#include <linux/dmi.h>
+
+#include "pmf.h"
+
+struct quirk_entry {
+ u32 supported_func;
+};
+
+static struct quirk_entry quirk_no_sps_bug = {
+ .supported_func = 0x4003,
+};
+
+static const struct dmi_system_id fwbug_list[] = {
+ {}
+};
+
+void amd_pmf_quirks_init(struct amd_pmf_dev *dev)
+{
+ const struct dmi_system_id *dmi_id;
+ struct quirk_entry *quirks;
+
+ dmi_id = dmi_first_match(fwbug_list);
+ if (!dmi_id)
+ return;
+
+ quirks = dmi_id->driver_data;
+ if (quirks->supported_func) {
+ dev->supported_func = quirks->supported_func;
+ pr_info("Using supported funcs quirk to avoid %s platform firmware bug\n",
+ dmi_id->ident);
+ }
+}
+
diff --git a/drivers/platform/x86/amd/pmf/pmf.h b/drivers/platform/x86/amd/pmf/pmf.h
index 8c4df5753f40..eeedd0c0395a 100644
--- a/drivers/platform/x86/amd/pmf/pmf.h
+++ b/drivers/platform/x86/amd/pmf/pmf.h
@@ -720,4 +720,7 @@ int apmf_check_smart_pc(struct amd_pmf_dev *pmf_dev);
void amd_pmf_populate_ta_inputs(struct amd_pmf_dev *dev, struct ta_pmf_enact_table *in);
void amd_pmf_dump_ta_inputs(struct amd_pmf_dev *dev, struct ta_pmf_enact_table *in);
+/* Quirk infrastructure */
+void amd_pmf_quirks_init(struct amd_pmf_dev *dev);
+
#endif /* PMF_H */
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/3] platform/x86/amd: pmf: Add quirk for ROG Zephyrus G14
2024-04-10 14:09 [PATCH 1/3] platform/x86/amd: pmf: Decrease error message to debug Mario Limonciello
2024-04-10 14:09 ` [PATCH 2/3] platform/x86/amd: pmf: Add infrastructure for quirking supported funcs Mario Limonciello
@ 2024-04-10 14:09 ` Mario Limonciello
2024-04-15 13:53 ` [PATCH 1/3] platform/x86/amd: pmf: Decrease error message to debug Hans de Goede
2024-04-16 12:31 ` Ilpo Järvinen
3 siblings, 0 replies; 5+ messages in thread
From: Mario Limonciello @ 2024-04-10 14:09 UTC (permalink / raw)
To: Hans de Goede, Ilpo Järvinen
Cc: open list:X86 PLATFORM DRIVERS, Shyam Sundar S K, al0uette,
Mario Limonciello
ROG Zephyrus G14 advertises support for SPS notifications to the
BIOS but doesn't actually use them. Instead the asus-nb-wmi driver
utilizes such events.
Add a quirk to prevent the system from registering for ACPI platform
profile when this system is found to avoid conflicts.
Reported-by: al0uette@outlook.com
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218685
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
---
drivers/platform/x86/amd/pmf/pmf-quirks.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/platform/x86/amd/pmf/pmf-quirks.c b/drivers/platform/x86/amd/pmf/pmf-quirks.c
index 9f3790eaaa30..0b2eb0ae85fe 100644
--- a/drivers/platform/x86/amd/pmf/pmf-quirks.c
+++ b/drivers/platform/x86/amd/pmf/pmf-quirks.c
@@ -21,6 +21,14 @@ static struct quirk_entry quirk_no_sps_bug = {
};
static const struct dmi_system_id fwbug_list[] = {
+ {
+ .ident = "ROG Zephyrus G14",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "GA403UV"),
+ },
+ .driver_data = &quirk_no_sps_bug,
+ },
{}
};
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3] platform/x86/amd: pmf: Decrease error message to debug
2024-04-10 14:09 [PATCH 1/3] platform/x86/amd: pmf: Decrease error message to debug Mario Limonciello
2024-04-10 14:09 ` [PATCH 2/3] platform/x86/amd: pmf: Add infrastructure for quirking supported funcs Mario Limonciello
2024-04-10 14:09 ` [PATCH 3/3] platform/x86/amd: pmf: Add quirk for ROG Zephyrus G14 Mario Limonciello
@ 2024-04-15 13:53 ` Hans de Goede
2024-04-16 12:31 ` Ilpo Järvinen
3 siblings, 0 replies; 5+ messages in thread
From: Hans de Goede @ 2024-04-15 13:53 UTC (permalink / raw)
To: Mario Limonciello, Ilpo Järvinen
Cc: open list:X86 PLATFORM DRIVERS, Shyam Sundar S K, al0uette
Hi Mario, Ilpo,
On 4/10/24 4:09 PM, Mario Limonciello wrote:
> ASUS ROG Zephyrus G14 doesn't have _CRS in AMDI0102 device and so
> there are no resources to walk. This is expected behavior because
> it doesn't support Smart PC. Decrease error message to debug.
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=218685
> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Thank you, this entire series looks good to me:
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
for the series.
Ilpo, since this fixes a bug and does so based on a DMI match,
so the chance for regressions is quite small I believe it
would be best to merge this through the pdx86/fixes branch,
can you pick this series up please ?
Regards,
Hans
> ---
> drivers/platform/x86/amd/pmf/acpi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/amd/pmf/acpi.c b/drivers/platform/x86/amd/pmf/acpi.c
> index d0cf46e2fc8e..60fc71c9fb0f 100644
> --- a/drivers/platform/x86/amd/pmf/acpi.c
> +++ b/drivers/platform/x86/amd/pmf/acpi.c
> @@ -437,7 +437,7 @@ int apmf_check_smart_pc(struct amd_pmf_dev *pmf_dev)
>
> status = acpi_walk_resources(ahandle, METHOD_NAME__CRS, apmf_walk_resources, pmf_dev);
> if (ACPI_FAILURE(status)) {
> - dev_err(pmf_dev->dev, "acpi_walk_resources failed :%d\n", status);
> + dev_dbg(pmf_dev->dev, "acpi_walk_resources failed :%d\n", status);
> return -EINVAL;
> }
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3] platform/x86/amd: pmf: Decrease error message to debug
2024-04-10 14:09 [PATCH 1/3] platform/x86/amd: pmf: Decrease error message to debug Mario Limonciello
` (2 preceding siblings ...)
2024-04-15 13:53 ` [PATCH 1/3] platform/x86/amd: pmf: Decrease error message to debug Hans de Goede
@ 2024-04-16 12:31 ` Ilpo Järvinen
3 siblings, 0 replies; 5+ messages in thread
From: Ilpo Järvinen @ 2024-04-16 12:31 UTC (permalink / raw)
To: Hans de Goede, Mario Limonciello
Cc: open list:X86 PLATFORM DRIVERS, Shyam Sundar S K, al0uette
On Wed, 10 Apr 2024 09:09:54 -0500, Mario Limonciello wrote:
> ASUS ROG Zephyrus G14 doesn't have _CRS in AMDI0102 device and so
> there are no resources to walk. This is expected behavior because
> it doesn't support Smart PC. Decrease error message to debug.
>
>
Thank you for your contribution, it has been applied to my local
review-ilpo branch. Note it will show up in the public
platform-drivers-x86/review-ilpo branch only once I've pushed my
local branch there, which might take a while.
The list of commits applied:
[1/3] platform/x86/amd: pmf: Decrease error message to debug
commit: 03cea821b82cbf0ee4a285f9dca6cc1d660dbef3
[2/3] platform/x86/amd: pmf: Add infrastructure for quirking supported funcs
commit: ed13f622bcd594d6cefd6239b1722ed8b84ba98f
[3/3] platform/x86/amd: pmf: Add quirk for ROG Zephyrus G14
commit: 9d893061ed68820de24b572d1e193b5e4737f2e0
--
i.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-04-16 12:32 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-10 14:09 [PATCH 1/3] platform/x86/amd: pmf: Decrease error message to debug Mario Limonciello
2024-04-10 14:09 ` [PATCH 2/3] platform/x86/amd: pmf: Add infrastructure for quirking supported funcs Mario Limonciello
2024-04-10 14:09 ` [PATCH 3/3] platform/x86/amd: pmf: Add quirk for ROG Zephyrus G14 Mario Limonciello
2024-04-15 13:53 ` [PATCH 1/3] platform/x86/amd: pmf: Decrease error message to debug Hans de Goede
2024-04-16 12:31 ` Ilpo Järvinen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).