summaryrefslogtreecommitdiffstats
path: root/drivers/platform
diff options
context:
space:
mode:
authorShyam Sundar S K <Shyam-sundar.S-k@amd.com>2024-03-06 17:14:09 +0530
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>2024-03-12 12:48:23 +0200
commita33e9e106601b5271561e7d79a3d3c4e7e84f07f (patch)
treeb0354344b093f9b7b2f0ae3b46ff7502607ebefe /drivers/platform
parentf62f012f998ad2e43a93fdff2720a4c746025ee9 (diff)
downloadlinux-a33e9e106601b5271561e7d79a3d3c4e7e84f07f.tar.gz
linux-a33e9e106601b5271561e7d79a3d3c4e7e84f07f.tar.bz2
linux-a33e9e106601b5271561e7d79a3d3c4e7e84f07f.zip
platform/x86/amd/pmf: Differentiate PMF ACPI versions
For family 1AH, certain PMF features have been enhanced - leading to a newer APMF (AMD PMF) spec (BIOS and PMF driver interface) called v2. This information would be fed into the if_version field of the verify_interface method of the APMF call from the BIOS. Use this information to store the version number to differentiate between v1 or v2 and also store the information into the PMF private data structure, as this information would be required for further code branching to support the latest silicon. Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com> Co-developed-by: Patil Rajesh Reddy <Patil.Reddy@amd.com> Signed-off-by: Patil Rajesh Reddy <Patil.Reddy@amd.com> Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com> Link: https://lore.kernel.org/r/20240306114415.3267603-2-Shyam-sundar.S-k@amd.com Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Diffstat (limited to 'drivers/platform')
-rw-r--r--drivers/platform/x86/amd/pmf/acpi.c6
-rw-r--r--drivers/platform/x86/amd/pmf/pmf.h1
2 files changed, 5 insertions, 2 deletions
diff --git a/drivers/platform/x86/amd/pmf/acpi.c b/drivers/platform/x86/amd/pmf/acpi.c
index f2eb07ef855a..1f287a147c57 100644
--- a/drivers/platform/x86/amd/pmf/acpi.c
+++ b/drivers/platform/x86/amd/pmf/acpi.c
@@ -218,8 +218,10 @@ static int apmf_if_verify_interface(struct amd_pmf_dev *pdev)
return err;
pdev->supported_func = output.supported_functions;
- dev_dbg(pdev->dev, "supported functions:0x%x notifications:0x%x\n",
- output.supported_functions, output.notification_mask);
+ dev_dbg(pdev->dev, "supported functions:0x%x notifications:0x%x version:%u\n",
+ output.supported_functions, output.notification_mask, output.version);
+
+ pdev->pmf_if_version = output.version;
return 0;
}
diff --git a/drivers/platform/x86/amd/pmf/pmf.h b/drivers/platform/x86/amd/pmf/pmf.h
index 0c90805dc85b..2f23ced7da66 100644
--- a/drivers/platform/x86/amd/pmf/pmf.h
+++ b/drivers/platform/x86/amd/pmf/pmf.h
@@ -235,6 +235,7 @@ struct amd_pmf_dev {
u64 policy_addr;
void __iomem *policy_base;
bool smart_pc_enabled;
+ u16 pmf_if_version;
};
struct apmf_sps_prop_granular {