]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
platform/x86/amd/pmf: Add support for adjusting PMF PPT and PPT APU thresholds
authorShyam Sundar S K <Shyam-sundar.S-k@amd.com>
Mon, 1 Sep 2025 11:01:32 +0000 (16:31 +0530)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Thu, 11 Sep 2025 08:03:32 +0000 (11:03 +0300)
The most recent PMF Trusted Application includes enhanced features that
allow for modifications to PMF thermal parameters such as PPT and PPT APU.

This update introduces the necessary driver support to utilize these
capabilities.

Co-developed-by: Patil Rajesh Reddy <Patil.Reddy@amd.com>
Signed-off-by: Patil Rajesh Reddy <Patil.Reddy@amd.com>
Tested-by: Yijun Shen <Yijun.Shen@Dell.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Link: https://patch.msgid.link/20250901110140.2519072-2-Shyam-sundar.S-k@amd.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/amd/pmf/pmf.h
drivers/platform/x86/amd/pmf/tee-if.c

index 45b60238d5277f139b398dc331ae33c7ba8f6ece..1a5a8d70c360a08a7272264ae35c4e4b7d6fcaef 100644 (file)
@@ -93,6 +93,8 @@ struct cookie_header {
 #define PMF_POLICY_BIOS_OUTPUT_1                               10
 #define PMF_POLICY_BIOS_OUTPUT_2                               11
 #define PMF_POLICY_P3T                                         38
+#define PMF_POLICY_PMF_PPT                                     54
+#define PMF_POLICY_PMF_PPT_APU_ONLY                            55
 #define PMF_POLICY_BIOS_OUTPUT_3                               57
 #define PMF_POLICY_BIOS_OUTPUT_4                               58
 #define PMF_POLICY_BIOS_OUTPUT_5                               59
@@ -677,6 +679,8 @@ struct pmf_action_table {
        u32 stt_skintemp_apu;   /* in C */
        u32 stt_skintemp_hs2;   /* in C */
        u32 p3t_limit;          /* in mW */
+       u32 pmf_ppt;            /* in mW */
+       u32 pmf_ppt_apu_only;   /* in mW */
 };
 
 /* Input conditions */
index 4f626ebcb619736e8856a8b078d108e31109fe32..b29f92183b2af6531244f39e5912a6d523ae37df 100644 (file)
@@ -147,6 +147,22 @@ static void amd_pmf_apply_policies(struct amd_pmf_dev *dev, struct ta_pmf_enact_
                        }
                        break;
 
+               case PMF_POLICY_PMF_PPT:
+                       if (dev->prev_data->pmf_ppt != val) {
+                               amd_pmf_send_cmd(dev, SET_PMF_PPT, false, val, NULL);
+                               dev_dbg(dev->dev, "update PMF PPT: %u\n", val);
+                               dev->prev_data->pmf_ppt = val;
+                       }
+                       break;
+
+               case PMF_POLICY_PMF_PPT_APU_ONLY:
+                       if (dev->prev_data->pmf_ppt_apu_only != val) {
+                               amd_pmf_send_cmd(dev, SET_PMF_PPT_APU_ONLY, false, val, NULL);
+                               dev_dbg(dev->dev, "update PMF PPT APU ONLY: %u\n", val);
+                               dev->prev_data->pmf_ppt_apu_only = val;
+                       }
+                       break;
+
                case PMF_POLICY_SYSTEM_STATE:
                        switch (val) {
                        case 0: