drm/radeon: re-enable dpm by default on BTC
[cascardo/linux.git] / drivers / gpu / drm / radeon / radeon_pm.c
index 12c663e..23314be 100644 (file)
@@ -73,8 +73,10 @@ void radeon_pm_acpi_event_handler(struct radeon_device *rdev)
                        rdev->pm.dpm.ac_power = true;
                else
                        rdev->pm.dpm.ac_power = false;
-               if (rdev->asic->dpm.enable_bapm)
-                       radeon_dpm_enable_bapm(rdev, rdev->pm.dpm.ac_power);
+               if (rdev->family == CHIP_ARUBA) {
+                       if (rdev->asic->dpm.enable_bapm)
+                               radeon_dpm_enable_bapm(rdev, rdev->pm.dpm.ac_power);
+               }
                mutex_unlock(&rdev->pm.mutex);
         } else if (rdev->pm.pm_method == PM_METHOD_PROFILE) {
                if (rdev->pm.profile == PM_PROFILE_AUTO) {
@@ -1301,10 +1303,6 @@ int radeon_pm_init(struct radeon_device *rdev)
        case CHIP_RS780:
        case CHIP_RS880:
        case CHIP_RV770:
-       case CHIP_BARTS:
-       case CHIP_TURKS:
-       case CHIP_CAICOS:
-       case CHIP_CAYMAN:
                /* DPM requires the RLC, RV770+ dGPU requires SMC */
                if (!rdev->rlc_fw)
                        rdev->pm.pm_method = PM_METHOD_PROFILE;
@@ -1328,6 +1326,10 @@ int radeon_pm_init(struct radeon_device *rdev)
        case CHIP_PALM:
        case CHIP_SUMO:
        case CHIP_SUMO2:
+       case CHIP_BARTS:
+       case CHIP_TURKS:
+       case CHIP_CAICOS:
+       case CHIP_CAYMAN:
        case CHIP_ARUBA:
        case CHIP_TAHITI:
        case CHIP_PITCAIRN:
@@ -1398,9 +1400,7 @@ static void radeon_pm_fini_old(struct radeon_device *rdev)
        }
 
        radeon_hwmon_fini(rdev);
-
-       if (rdev->pm.power_state)
-               kfree(rdev->pm.power_state);
+       kfree(rdev->pm.power_state);
 }
 
 static void radeon_pm_fini_dpm(struct radeon_device *rdev)
@@ -1419,9 +1419,7 @@ static void radeon_pm_fini_dpm(struct radeon_device *rdev)
        radeon_dpm_fini(rdev);
 
        radeon_hwmon_fini(rdev);
-
-       if (rdev->pm.power_state)
-               kfree(rdev->pm.power_state);
+       kfree(rdev->pm.power_state);
 }
 
 void radeon_pm_fini(struct radeon_device *rdev)