platform/x86/amd/pmf: Add support to get sbios requests in PMF driver
authorShyam Sundar S K <Shyam-sundar.S-k@amd.com>
Wed, 6 Mar 2024 11:44:11 +0000 (17:14 +0530)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Tue, 12 Mar 2024 10:48:27 +0000 (12:48 +0200)
Update the APMF function index 2 for family 1Ah, that gets the
information of SBIOS requests (like the pending requests from BIOS,
custom notifications, updation of power limits etc).

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-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/acpi.c
drivers/platform/x86/amd/pmf/pmf.h

index 1f287a147c5767a2565c36aaf24c96ff84a8c32b..13af83b187ac7c5026e5f02f670a390f863869bb 100644 (file)
@@ -166,6 +166,11 @@ int apmf_get_auto_mode_def(struct amd_pmf_dev *pdev, struct apmf_auto_mode *data
        return apmf_if_call_store_buffer(pdev, APMF_FUNC_AUTO_MODE, data, sizeof(*data));
 }
 
+int apmf_get_sbios_requests_v2(struct amd_pmf_dev *pdev, struct apmf_sbios_req_v2 *req)
+{
+       return apmf_if_call_store_buffer(pdev, APMF_FUNC_SBIOS_REQUESTS, req, sizeof(*req));
+}
+
 int apmf_get_sbios_requests(struct amd_pmf_dev *pdev, struct apmf_sbios_req *req)
 {
        return apmf_if_call_store_buffer(pdev, APMF_FUNC_SBIOS_REQUESTS,
index 51e31d008ef9967f92176ec38b960d915a82df24..aeaaff290bff2d538d36b6fd3d0a87d45f9e5052 100644 (file)
@@ -120,6 +120,18 @@ struct apmf_sbios_req {
        u8 skin_temp_hs2;
 } __packed;
 
+struct apmf_sbios_req_v2 {
+       u16 size;
+       u32 pending_req;
+       u8 rsd;
+       u32 ppt_pmf;
+       u32 ppt_pmf_apu_only;
+       u32 stt_min_limit;
+       u8 skin_temp_apu;
+       u8 skin_temp_hs2;
+       u32 custom_policy[10];
+} __packed;
+
 struct apmf_fan_idx {
        u16 size;
        u8 fan_ctl_mode;
@@ -621,6 +633,7 @@ void amd_pmf_init_auto_mode(struct amd_pmf_dev *dev);
 void amd_pmf_deinit_auto_mode(struct amd_pmf_dev *dev);
 void amd_pmf_trans_automode(struct amd_pmf_dev *dev, int socket_power, ktime_t time_elapsed_ms);
 int apmf_get_sbios_requests(struct amd_pmf_dev *pdev, struct apmf_sbios_req *req);
+int apmf_get_sbios_requests_v2(struct amd_pmf_dev *pdev, struct apmf_sbios_req_v2 *req);
 
 void amd_pmf_update_2_cql(struct amd_pmf_dev *dev, bool is_cql_event);
 int amd_pmf_reset_amt(struct amd_pmf_dev *dev);