platform/x86/amd/pmf: Differentiate PMF ACPI versions
authorShyam Sundar S K <Shyam-sundar.S-k@amd.com>
Wed, 6 Mar 2024 11:44:09 +0000 (17:14 +0530)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Tue, 12 Mar 2024 10:48:23 +0000 (12:48 +0200)
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>
drivers/platform/x86/amd/pmf/acpi.c
drivers/platform/x86/amd/pmf/pmf.h

index f2eb07ef855afbb09da5b4c0a24650900b787652..1f287a147c5767a2565c36aaf24c96ff84a8c32b 100644 (file)
@@ -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;
 }
index 0c90805dc85bd0206de86c59fea3e5eb7546febe..2f23ced7da66d2e65b0f0f4134a8fd39e12ccb22 100644 (file)
@@ -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 {