diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2010-03-16 17:42:46 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-05-18 04:20:55 -0400 |
commit | 03214bd5c6e59c83703238227254deef8810513d (patch) | |
tree | cff47cda415e5508f0475f1a8007367ffba8a419 /drivers/gpu/drm/radeon | |
parent | 8a56df632e524a1c444c56bb7ce9fe8d94e639e0 (diff) |
drm/radeon/kms/pm: move pm state update to crtc functions
crtcs are what we ultimately care about wrt to pm.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon')
-rw-r--r-- | drivers/gpu/drm/radeon/atombios_crtc.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_encoders.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_legacy_encoders.c | 15 |
4 files changed, 18 insertions, 20 deletions
diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c index 3feca6aec4c4..12fb12a2bbac 100644 --- a/drivers/gpu/drm/radeon/atombios_crtc.c +++ b/drivers/gpu/drm/radeon/atombios_crtc.c | |||
@@ -262,6 +262,9 @@ void atombios_crtc_dpms(struct drm_crtc *crtc, int mode) | |||
262 | atombios_enable_crtc(crtc, ATOM_DISABLE); | 262 | atombios_enable_crtc(crtc, ATOM_DISABLE); |
263 | break; | 263 | break; |
264 | } | 264 | } |
265 | |||
266 | /* adjust pm to dpms change */ | ||
267 | radeon_pm_compute_clocks(rdev); | ||
265 | } | 268 | } |
266 | 269 | ||
267 | static void | 270 | static void |
@@ -1156,6 +1159,12 @@ static bool atombios_crtc_mode_fixup(struct drm_crtc *crtc, | |||
1156 | struct drm_display_mode *mode, | 1159 | struct drm_display_mode *mode, |
1157 | struct drm_display_mode *adjusted_mode) | 1160 | struct drm_display_mode *adjusted_mode) |
1158 | { | 1161 | { |
1162 | struct drm_device *dev = crtc->dev; | ||
1163 | struct radeon_device *rdev = dev->dev_private; | ||
1164 | |||
1165 | /* adjust pm to upcoming mode change */ | ||
1166 | radeon_pm_compute_clocks(rdev); | ||
1167 | |||
1159 | if (!radeon_crtc_scaling_mode_fixup(crtc, mode, adjusted_mode)) | 1168 | if (!radeon_crtc_scaling_mode_fixup(crtc, mode, adjusted_mode)) |
1160 | return false; | 1169 | return false; |
1161 | return true; | 1170 | return true; |
diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c index 1ec292ef11b0..b5dff14ea8c6 100644 --- a/drivers/gpu/drm/radeon/radeon_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_encoders.c | |||
@@ -262,9 +262,6 @@ static bool radeon_atom_mode_fixup(struct drm_encoder *encoder, | |||
262 | struct drm_device *dev = encoder->dev; | 262 | struct drm_device *dev = encoder->dev; |
263 | struct radeon_device *rdev = dev->dev_private; | 263 | struct radeon_device *rdev = dev->dev_private; |
264 | 264 | ||
265 | /* adjust pm to upcoming mode change */ | ||
266 | radeon_pm_compute_clocks(rdev); | ||
267 | |||
268 | /* set the active encoder to connector routing */ | 265 | /* set the active encoder to connector routing */ |
269 | radeon_encoder_set_active_device(encoder); | 266 | radeon_encoder_set_active_device(encoder); |
270 | drm_mode_set_crtcinfo(adjusted_mode, 0); | 267 | drm_mode_set_crtcinfo(adjusted_mode, 0); |
@@ -1074,8 +1071,6 @@ radeon_atom_encoder_dpms(struct drm_encoder *encoder, int mode) | |||
1074 | } | 1071 | } |
1075 | radeon_atombios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); | 1072 | radeon_atombios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); |
1076 | 1073 | ||
1077 | /* adjust pm to dpms change */ | ||
1078 | radeon_pm_compute_clocks(rdev); | ||
1079 | } | 1074 | } |
1080 | 1075 | ||
1081 | union crtc_source_param { | 1076 | union crtc_source_param { |
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_crtc.c b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c index 88865e38fe30..60c0dcb8e11e 100644 --- a/drivers/gpu/drm/radeon/radeon_legacy_crtc.c +++ b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c | |||
@@ -337,6 +337,9 @@ void radeon_crtc_dpms(struct drm_crtc *crtc, int mode) | |||
337 | } | 337 | } |
338 | break; | 338 | break; |
339 | } | 339 | } |
340 | |||
341 | /* adjust pm to dpms change */ | ||
342 | radeon_pm_compute_clocks(rdev); | ||
340 | } | 343 | } |
341 | 344 | ||
342 | int radeon_crtc_set_base(struct drm_crtc *crtc, int x, int y, | 345 | int radeon_crtc_set_base(struct drm_crtc *crtc, int x, int y, |
@@ -966,6 +969,12 @@ static bool radeon_crtc_mode_fixup(struct drm_crtc *crtc, | |||
966 | struct drm_display_mode *mode, | 969 | struct drm_display_mode *mode, |
967 | struct drm_display_mode *adjusted_mode) | 970 | struct drm_display_mode *adjusted_mode) |
968 | { | 971 | { |
972 | struct drm_device *dev = crtc->dev; | ||
973 | struct radeon_device *rdev = dev->dev_private; | ||
974 | |||
975 | /* adjust pm to upcoming mode change */ | ||
976 | radeon_pm_compute_clocks(rdev); | ||
977 | |||
969 | if (!radeon_crtc_scaling_mode_fixup(crtc, mode, adjusted_mode)) | 978 | if (!radeon_crtc_scaling_mode_fixup(crtc, mode, adjusted_mode)) |
970 | return false; | 979 | return false; |
971 | return true; | 980 | return true; |
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c index 2441cca7d775..341df86a253b 100644 --- a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c | |||
@@ -116,8 +116,6 @@ static void radeon_legacy_lvds_dpms(struct drm_encoder *encoder, int mode) | |||
116 | else | 116 | else |
117 | radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); | 117 | radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); |
118 | 118 | ||
119 | /* adjust pm to dpms change */ | ||
120 | radeon_pm_compute_clocks(rdev); | ||
121 | } | 119 | } |
122 | 120 | ||
123 | static void radeon_legacy_lvds_prepare(struct drm_encoder *encoder) | 121 | static void radeon_legacy_lvds_prepare(struct drm_encoder *encoder) |
@@ -217,11 +215,6 @@ static bool radeon_legacy_mode_fixup(struct drm_encoder *encoder, | |||
217 | struct drm_display_mode *adjusted_mode) | 215 | struct drm_display_mode *adjusted_mode) |
218 | { | 216 | { |
219 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); | 217 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); |
220 | struct drm_device *dev = encoder->dev; | ||
221 | struct radeon_device *rdev = dev->dev_private; | ||
222 | |||
223 | /* adjust pm to upcoming mode change */ | ||
224 | radeon_pm_compute_clocks(rdev); | ||
225 | 218 | ||
226 | /* set the active encoder to connector routing */ | 219 | /* set the active encoder to connector routing */ |
227 | radeon_encoder_set_active_device(encoder); | 220 | radeon_encoder_set_active_device(encoder); |
@@ -294,8 +287,6 @@ static void radeon_legacy_primary_dac_dpms(struct drm_encoder *encoder, int mode | |||
294 | else | 287 | else |
295 | radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); | 288 | radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); |
296 | 289 | ||
297 | /* adjust pm to dpms change */ | ||
298 | radeon_pm_compute_clocks(rdev); | ||
299 | } | 290 | } |
300 | 291 | ||
301 | static void radeon_legacy_primary_dac_prepare(struct drm_encoder *encoder) | 292 | static void radeon_legacy_primary_dac_prepare(struct drm_encoder *encoder) |
@@ -482,8 +473,6 @@ static void radeon_legacy_tmds_int_dpms(struct drm_encoder *encoder, int mode) | |||
482 | else | 473 | else |
483 | radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); | 474 | radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); |
484 | 475 | ||
485 | /* adjust pm to dpms change */ | ||
486 | radeon_pm_compute_clocks(rdev); | ||
487 | } | 476 | } |
488 | 477 | ||
489 | static void radeon_legacy_tmds_int_prepare(struct drm_encoder *encoder) | 478 | static void radeon_legacy_tmds_int_prepare(struct drm_encoder *encoder) |
@@ -650,8 +639,6 @@ static void radeon_legacy_tmds_ext_dpms(struct drm_encoder *encoder, int mode) | |||
650 | else | 639 | else |
651 | radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); | 640 | radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); |
652 | 641 | ||
653 | /* adjust pm to dpms change */ | ||
654 | radeon_pm_compute_clocks(rdev); | ||
655 | } | 642 | } |
656 | 643 | ||
657 | static void radeon_legacy_tmds_ext_prepare(struct drm_encoder *encoder) | 644 | static void radeon_legacy_tmds_ext_prepare(struct drm_encoder *encoder) |
@@ -860,8 +847,6 @@ static void radeon_legacy_tv_dac_dpms(struct drm_encoder *encoder, int mode) | |||
860 | else | 847 | else |
861 | radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); | 848 | radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false); |
862 | 849 | ||
863 | /* adjust pm to dpms change */ | ||
864 | radeon_pm_compute_clocks(rdev); | ||
865 | } | 850 | } |
866 | 851 | ||
867 | static void radeon_legacy_tv_dac_prepare(struct drm_encoder *encoder) | 852 | static void radeon_legacy_tv_dac_prepare(struct drm_encoder *encoder) |