drm/radeon: enable DPM by default on SUMO/PALM APUs
authorAlex Deucher <alexander.deucher@amd.com>
Wed, 23 Oct 2013 21:11:06 +0000 (17:11 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 1 Nov 2013 16:43:22 +0000 (12:43 -0400)
DPM seems to be stable on these asics and it drastically
improves performance depending on the boot clocks.

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

index cdeb3f8a2a30c204244e1ca8be3a04155d9d44b8..bf71862a37912269e96f7e0eb7fdf9efdada788e 100644 (file)
@@ -1249,9 +1249,6 @@ int radeon_pm_init(struct radeon_device *rdev)
        case CHIP_JUNIPER:
        case CHIP_CYPRESS:
        case CHIP_HEMLOCK:
-       case CHIP_PALM:
-       case CHIP_SUMO:
-       case CHIP_SUMO2:
        case CHIP_BARTS:
        case CHIP_TURKS:
        case CHIP_CAICOS:
@@ -1277,6 +1274,21 @@ int radeon_pm_init(struct radeon_device *rdev)
                else
                        rdev->pm.pm_method = PM_METHOD_PROFILE;
                break;
+       case CHIP_PALM:
+       case CHIP_SUMO:
+       case CHIP_SUMO2:
+               /* DPM requires the RLC, RV770+ dGPU requires SMC */
+               if (!rdev->rlc_fw)
+                       rdev->pm.pm_method = PM_METHOD_PROFILE;
+               else if ((rdev->family >= CHIP_RV770) &&
+                        (!(rdev->flags & RADEON_IS_IGP)) &&
+                        (!rdev->smc_fw))
+                       rdev->pm.pm_method = PM_METHOD_PROFILE;
+               else if (radeon_dpm == 0)
+                       rdev->pm.pm_method = PM_METHOD_PROFILE;
+               else
+                       rdev->pm.pm_method = PM_METHOD_DPM;
+               break;
        default:
                /* default to profile method */
                rdev->pm.pm_method = PM_METHOD_PROFILE;