]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
platform/x86/amd/pmf: Extend custom BIOS inputs for more policies
authorShyam Sundar S K <Shyam-sundar.S-k@amd.com>
Mon, 1 Sep 2025 11:01:34 +0000 (16:31 +0530)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Thu, 11 Sep 2025 08:03:37 +0000 (11:03 +0300)
The existing amd_pmf driver is limited to supporting just two custom BIOS
inputs. However, with the updates to the latest PMF TA, there's a
requirement to broaden this capacity to handle 10 inputs, aligning with
the TA firmware's capabilities.

The necessary logic should be implemented to facilitate this expansion of
functionality.

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>
Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Link: https://patch.msgid.link/20250901110140.2519072-4-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/pmf.h
drivers/platform/x86/amd/pmf/spc.c

index 79defe2c91e6870341453472b97e698640141597..2fcdc2493552aefe390eb49c4146e8e8dac4793f 100644 (file)
@@ -631,6 +631,14 @@ struct amd_pmf_pb_bitmap {
 static const struct amd_pmf_pb_bitmap custom_bios_inputs[] __used = {
        {"NOTIFY_CUSTOM_BIOS_INPUT1",     BIT(5)},
        {"NOTIFY_CUSTOM_BIOS_INPUT2",     BIT(6)},
+       {"NOTIFY_CUSTOM_BIOS_INPUT3",     BIT(7)},
+       {"NOTIFY_CUSTOM_BIOS_INPUT4",     BIT(8)},
+       {"NOTIFY_CUSTOM_BIOS_INPUT5",     BIT(9)},
+       {"NOTIFY_CUSTOM_BIOS_INPUT6",     BIT(10)},
+       {"NOTIFY_CUSTOM_BIOS_INPUT7",     BIT(11)},
+       {"NOTIFY_CUSTOM_BIOS_INPUT8",     BIT(12)},
+       {"NOTIFY_CUSTOM_BIOS_INPUT9",     BIT(13)},
+       {"NOTIFY_CUSTOM_BIOS_INPUT10",    BIT(14)},
 };
 
 enum platform_type {
@@ -714,7 +722,9 @@ struct ta_pmf_condition_info {
        u32 workload_type;
        u32 display_type;
        u32 display_state;
-       u32 rsvd5[150];
+       u32 rsvd5_1[17];
+       u32 bios_input_2[8];
+       u32 rsvd5[125];
 };
 
 struct ta_pmf_load_policy_table {
index 869b4134513f3e489b86c3c2d4315c9961407c39..06b7760b2a8ba9b35f0ca25f260a741a90629150 100644 (file)
@@ -75,6 +75,8 @@ static u32 amd_pmf_get_ta_custom_bios_inputs(struct ta_pmf_enact_table *in, int
        switch (index) {
        case 0 ... 1:
                return in->ev_info.bios_input_1[index];
+       case 2 ... 9:
+               return in->ev_info.bios_input_2[index - 2];
        default:
                return 0;
        }
@@ -122,6 +124,9 @@ static void amd_pmf_set_ta_custom_bios_input(struct ta_pmf_enact_table *in, int
        case 0 ... 1:
                in->ev_info.bios_input_1[index] = value;
                break;
+       case 2 ... 9:
+               in->ev_info.bios_input_2[index - 2] = value;
+               break;
        default:
                return;
        }