]> git.itanic.dy.fi Git - linux-stable/commitdiff
drm/amdgpu: introduce runtime pm mode
authorGuchun Chen <guchun.chen@amd.com>
Thu, 14 Jul 2022 07:32:51 +0000 (15:32 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 18 Jul 2022 20:42:39 +0000 (16:42 -0400)
It can benefit code consistency in future.

Suggested-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Guchun Chen <guchun.chen@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h

index 6de63ea6687eb05df55f1d1f3e32c9ddadb7cb49..fbbcdbdbe65a73a51656441cfde322cb9c70e645 100644 (file)
@@ -161,10 +161,12 @@ int amdgpu_driver_load_kms(struct amdgpu_device *adev, unsigned long flags)
        if (amdgpu_device_supports_px(dev) &&
            (amdgpu_runtime_pm != 0)) { /* enable runpm by default for atpx */
                adev->runpm = true;
+               adev->pm.rpm_mode = AMDGPU_RUNPM_PX;
                dev_info(adev->dev, "Using ATPX for runtime pm\n");
        } else if (amdgpu_device_supports_boco(dev) &&
                   (amdgpu_runtime_pm != 0)) { /* enable runpm by default for boco */
                adev->runpm = true;
+               adev->pm.rpm_mode = AMDGPU_RUNPM_BOCO;
                dev_info(adev->dev, "Using BOCO for runtime pm\n");
        } else if (amdgpu_device_supports_baco(dev) &&
                   (amdgpu_runtime_pm != 0)) {
@@ -188,8 +190,10 @@ int amdgpu_driver_load_kms(struct amdgpu_device *adev, unsigned long flags)
 
                amdgpu_runtime_pm_quirk(adev);
 
-               if (adev->runpm)
+               if (adev->runpm) {
+                       adev->pm.rpm_mode = AMDGPU_RUNPM_BACO;
                        dev_info(adev->dev, "Using BACO for runtime pm\n");
+               }
        }
 
        /* Call ACPI methods: require modeset init
index 524fb09437e57a067af006a0927a57a35e16dfa5..65624d091ed2d08df9dcb23a0a9186cc0f1f83a6 100644 (file)
@@ -45,6 +45,13 @@ enum amdgpu_int_thermal_type {
        THERMAL_TYPE_KV,
 };
 
+enum amdgpu_runpm_mode {
+       AMDGPU_RUNPM_NONE,
+       AMDGPU_RUNPM_PX,
+       AMDGPU_RUNPM_BOCO,
+       AMDGPU_RUNPM_BACO,
+};
+
 struct amdgpu_ps {
        u32 caps; /* vbios flags */
        u32 class; /* vbios flags */
@@ -355,6 +362,8 @@ struct amdgpu_pm {
        struct amdgpu_ctx       *stable_pstate_ctx;
 
        struct config_table_setting config_table;
+       /* runtime mode */
+       enum amdgpu_runpm_mode rpm_mode;
 };
 
 int amdgpu_dpm_read_sensor(struct amdgpu_device *adev, enum amd_pp_sensors sensor,