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>
This commit is contained in:
parent
8a56df632e
commit
03214bd5c6
|
@ -262,6 +262,9 @@ void atombios_crtc_dpms(struct drm_crtc *crtc, int mode)
|
||||||
atombios_enable_crtc(crtc, ATOM_DISABLE);
|
atombios_enable_crtc(crtc, ATOM_DISABLE);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* adjust pm to dpms change */
|
||||||
|
radeon_pm_compute_clocks(rdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1156,6 +1159,12 @@ static bool atombios_crtc_mode_fixup(struct drm_crtc *crtc,
|
||||||
struct drm_display_mode *mode,
|
struct drm_display_mode *mode,
|
||||||
struct drm_display_mode *adjusted_mode)
|
struct drm_display_mode *adjusted_mode)
|
||||||
{
|
{
|
||||||
|
struct drm_device *dev = crtc->dev;
|
||||||
|
struct radeon_device *rdev = dev->dev_private;
|
||||||
|
|
||||||
|
/* adjust pm to upcoming mode change */
|
||||||
|
radeon_pm_compute_clocks(rdev);
|
||||||
|
|
||||||
if (!radeon_crtc_scaling_mode_fixup(crtc, mode, adjusted_mode))
|
if (!radeon_crtc_scaling_mode_fixup(crtc, mode, adjusted_mode))
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -262,9 +262,6 @@ static bool radeon_atom_mode_fixup(struct drm_encoder *encoder,
|
||||||
struct drm_device *dev = encoder->dev;
|
struct drm_device *dev = encoder->dev;
|
||||||
struct radeon_device *rdev = dev->dev_private;
|
struct radeon_device *rdev = dev->dev_private;
|
||||||
|
|
||||||
/* adjust pm to upcoming mode change */
|
|
||||||
radeon_pm_compute_clocks(rdev);
|
|
||||||
|
|
||||||
/* set the active encoder to connector routing */
|
/* set the active encoder to connector routing */
|
||||||
radeon_encoder_set_active_device(encoder);
|
radeon_encoder_set_active_device(encoder);
|
||||||
drm_mode_set_crtcinfo(adjusted_mode, 0);
|
drm_mode_set_crtcinfo(adjusted_mode, 0);
|
||||||
|
@ -1074,8 +1071,6 @@ radeon_atom_encoder_dpms(struct drm_encoder *encoder, int mode)
|
||||||
}
|
}
|
||||||
radeon_atombios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false);
|
radeon_atombios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false);
|
||||||
|
|
||||||
/* adjust pm to dpms change */
|
|
||||||
radeon_pm_compute_clocks(rdev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
union crtc_source_param {
|
union crtc_source_param {
|
||||||
|
|
|
@ -337,6 +337,9 @@ void radeon_crtc_dpms(struct drm_crtc *crtc, int mode)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* adjust pm to dpms change */
|
||||||
|
radeon_pm_compute_clocks(rdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
int radeon_crtc_set_base(struct drm_crtc *crtc, int x, int y,
|
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,
|
||||||
struct drm_display_mode *mode,
|
struct drm_display_mode *mode,
|
||||||
struct drm_display_mode *adjusted_mode)
|
struct drm_display_mode *adjusted_mode)
|
||||||
{
|
{
|
||||||
|
struct drm_device *dev = crtc->dev;
|
||||||
|
struct radeon_device *rdev = dev->dev_private;
|
||||||
|
|
||||||
|
/* adjust pm to upcoming mode change */
|
||||||
|
radeon_pm_compute_clocks(rdev);
|
||||||
|
|
||||||
if (!radeon_crtc_scaling_mode_fixup(crtc, mode, adjusted_mode))
|
if (!radeon_crtc_scaling_mode_fixup(crtc, mode, adjusted_mode))
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -116,8 +116,6 @@ static void radeon_legacy_lvds_dpms(struct drm_encoder *encoder, int mode)
|
||||||
else
|
else
|
||||||
radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false);
|
radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false);
|
||||||
|
|
||||||
/* adjust pm to dpms change */
|
|
||||||
radeon_pm_compute_clocks(rdev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void radeon_legacy_lvds_prepare(struct drm_encoder *encoder)
|
static void radeon_legacy_lvds_prepare(struct drm_encoder *encoder)
|
||||||
|
@ -217,11 +215,6 @@ static bool radeon_legacy_mode_fixup(struct drm_encoder *encoder,
|
||||||
struct drm_display_mode *adjusted_mode)
|
struct drm_display_mode *adjusted_mode)
|
||||||
{
|
{
|
||||||
struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
|
struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
|
||||||
struct drm_device *dev = encoder->dev;
|
|
||||||
struct radeon_device *rdev = dev->dev_private;
|
|
||||||
|
|
||||||
/* adjust pm to upcoming mode change */
|
|
||||||
radeon_pm_compute_clocks(rdev);
|
|
||||||
|
|
||||||
/* set the active encoder to connector routing */
|
/* set the active encoder to connector routing */
|
||||||
radeon_encoder_set_active_device(encoder);
|
radeon_encoder_set_active_device(encoder);
|
||||||
|
@ -294,8 +287,6 @@ static void radeon_legacy_primary_dac_dpms(struct drm_encoder *encoder, int mode
|
||||||
else
|
else
|
||||||
radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false);
|
radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false);
|
||||||
|
|
||||||
/* adjust pm to dpms change */
|
|
||||||
radeon_pm_compute_clocks(rdev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void radeon_legacy_primary_dac_prepare(struct drm_encoder *encoder)
|
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)
|
||||||
else
|
else
|
||||||
radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false);
|
radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false);
|
||||||
|
|
||||||
/* adjust pm to dpms change */
|
|
||||||
radeon_pm_compute_clocks(rdev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void radeon_legacy_tmds_int_prepare(struct drm_encoder *encoder)
|
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)
|
||||||
else
|
else
|
||||||
radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false);
|
radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false);
|
||||||
|
|
||||||
/* adjust pm to dpms change */
|
|
||||||
radeon_pm_compute_clocks(rdev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void radeon_legacy_tmds_ext_prepare(struct drm_encoder *encoder)
|
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)
|
||||||
else
|
else
|
||||||
radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false);
|
radeon_combios_encoder_dpms_scratch_regs(encoder, (mode == DRM_MODE_DPMS_ON) ? true : false);
|
||||||
|
|
||||||
/* adjust pm to dpms change */
|
|
||||||
radeon_pm_compute_clocks(rdev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void radeon_legacy_tv_dac_prepare(struct drm_encoder *encoder)
|
static void radeon_legacy_tv_dac_prepare(struct drm_encoder *encoder)
|
||||||
|
|
Loading…
Reference in New Issue