Browse Source

drm/radeon/dpm: track whether we are on AC or battery

Driver needs this information to validate power states.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Alex Deucher 12 years ago
parent
commit
5ca302f701
2 changed files with 8 additions and 0 deletions
  1. 1 0
      drivers/gpu/drm/radeon/radeon.h
  2. 7 0
      drivers/gpu/drm/radeon/radeon_pm.c

+ 1 - 0
drivers/gpu/drm/radeon/radeon.h

@@ -1309,6 +1309,7 @@ struct radeon_dpm {
 	u32 tdp_adjustment;
 	u16 load_line_slope;
 	bool power_control;
+	bool ac_power;
 	/* special states active */
 	bool                    thermal_active;
 	bool                    uvd_active;

+ 7 - 0
drivers/gpu/drm/radeon/radeon_pm.c

@@ -1215,6 +1215,7 @@ static void radeon_pm_compute_clocks_dpm(struct radeon_device *rdev)
 
 	mutex_lock(&rdev->pm.mutex);
 
+	/* update active crtc counts */
 	rdev->pm.dpm.new_active_crtcs = 0;
 	rdev->pm.dpm.new_active_crtc_count = 0;
 	list_for_each_entry(crtc,
@@ -1226,6 +1227,12 @@ static void radeon_pm_compute_clocks_dpm(struct radeon_device *rdev)
 		}
 	}
 
+	/* update battery/ac status */
+	if (power_supply_is_system_supplied() > 0)
+		rdev->pm.dpm.ac_power = true;
+	else
+		rdev->pm.dpm.ac_power = false;
+
 	radeon_dpm_change_power_state_locked(rdev);
 
 	mutex_unlock(&rdev->pm.mutex);