]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
platform/x86: hfi: Add power management callback
authorPerry Yuan <Perry.Yuan@amd.com>
Mon, 9 Jun 2025 20:05:13 +0000 (15:05 -0500)
committerBorislav Petkov (AMD) <bp@alien8.de>
Mon, 7 Jul 2025 20:26:37 +0000 (22:26 +0200)
Introduce power management callbacks for the `amd_hfi` driver.  Specifically,
add the `suspend` and `resume` callbacks to handle the necessary operations
during system low power states and wake-up.

Signed-off-by: Perry Yuan <Perry.Yuan@amd.com>
Co-developed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>
Acked-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/20250609200518.3616080-9-superm1@kernel.org
drivers/platform/x86/amd/hfi/hfi.c

index 28ef7212d3393f062c0971bbd4406d4b6739248b..b0a5840b2598a13f58f98a90fb18cf026af50b19 100644 (file)
@@ -385,6 +385,38 @@ static int amd_hfi_metadata_parser(struct platform_device *pdev,
        return ret;
 }
 
+static int amd_hfi_pm_resume(struct device *dev)
+{
+       int ret, cpu;
+
+       for_each_online_cpu(cpu) {
+               ret = amd_hfi_set_state(cpu, true);
+               if (ret < 0) {
+                       dev_err(dev, "failed to enable workload class config: %d\n", ret);
+                       return ret;
+               }
+       }
+
+       return 0;
+}
+
+static int amd_hfi_pm_suspend(struct device *dev)
+{
+       int ret, cpu;
+
+       for_each_online_cpu(cpu) {
+               ret = amd_hfi_set_state(cpu, false);
+               if (ret < 0) {
+                       dev_err(dev, "failed to disable workload class config: %d\n", ret);
+                       return ret;
+               }
+       }
+
+       return 0;
+}
+
+static DEFINE_SIMPLE_DEV_PM_OPS(amd_hfi_pm_ops, amd_hfi_pm_suspend, amd_hfi_pm_resume);
+
 static const struct acpi_device_id amd_hfi_platform_match[] = {
        {"AMDI0104", 0},
        { }
@@ -434,6 +466,7 @@ static struct platform_driver amd_hfi_driver = {
        .driver = {
                .name = AMD_HFI_DRIVER,
                .owner = THIS_MODULE,
+               .pm = &amd_hfi_pm_ops,
                .acpi_match_table = ACPI_PTR(amd_hfi_platform_match),
        },
        .probe = amd_hfi_probe,