drm/radeon/ci: use different smc command for pcie dpm
authorAlex Deucher <alexander.deucher@amd.com>
Tue, 18 Nov 2014 19:36:59 +0000 (14:36 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 20 Nov 2014 18:00:12 +0000 (13:00 -0500)
Use unforce levels rather than enable mask instruction.
This is the preferred method.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/radeon/ci_dpm.c

index e7816281f0d77d8ffdd4cf7a52b35c441eb1159d..73f8c4b5bc9c1945a24e9b177d3acf515cdebb76 100644 (file)
@@ -3773,7 +3773,7 @@ static int ci_upload_dpm_level_enable_mask(struct radeon_device *rdev)
                                return -EINVAL;
                }
        }
-
+#if 0
        if (!pi->pcie_dpm_key_disabled) {
                if (pi->dpm_level_enable_mask.pcie_dpm_enable_mask) {
                        result = ci_send_msg_to_smc_with_parameter(rdev,
@@ -3783,7 +3783,7 @@ static int ci_upload_dpm_level_enable_mask(struct radeon_device *rdev)
                                return -EINVAL;
                }
        }
-
+#endif
        return 0;
 }
 
@@ -4247,6 +4247,14 @@ int ci_dpm_force_performance_level(struct radeon_device *rdev,
                        }
                }
        } else if (level == RADEON_DPM_FORCED_LEVEL_AUTO) {
+               if (!pi->pcie_dpm_key_disabled) {
+                       PPSMC_Result smc_result;
+
+                       smc_result = ci_send_msg_to_smc(rdev,
+                                                       PPSMC_MSG_PCIeDPM_UnForceLevel);
+                       if (smc_result != PPSMC_Result_OK)
+                               return -EINVAL;
+               }
                ret = ci_upload_dpm_level_enable_mask(rdev);
                if (ret)
                        return ret;