On Fri, May 7, 2010 at 11:15 PM, Alex Deucher <alexdeucher@xxxxxxxxx> wrote: > Whoops, sent out an old version of this patch. newer version > attached, I can also send out a change against drm-next if you'd > prefer. And the incremental patch if you'd prefer. Alex > > Alex > > On Fri, May 7, 2010 at 5:05 PM, Alex Deucher <alexdeucher@xxxxxxxxx> wrote: >> Previously we just set them to dpms off. This should save >> additional power. >> >> Signed-off-by: Alex Deucher <alexdeucher@xxxxxxxxx> >> --- >> drivers/gpu/drm/radeon/radeon_encoders.c | 39 ++++++++++++++++++++++++++++++ >> 1 files changed, 39 insertions(+), 0 deletions(-) >> >> diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c >> index 559c9ce..607d00b 100644 >> --- a/drivers/gpu/drm/radeon/radeon_encoders.c >> +++ b/drivers/gpu/drm/radeon/radeon_encoders.c >> @@ -1504,10 +1504,49 @@ static void radeon_atom_encoder_commit(struct drm_encoder *encoder) >> >> static void radeon_atom_encoder_disable(struct drm_encoder *encoder) >> { >> + struct drm_device *dev = encoder->dev; >> + struct radeon_device *rdev = dev->dev_private; >> struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); >> struct radeon_encoder_atom_dig *dig; >> radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); >> >> + switch (radeon_encoder->encoder_id) { >> + case ENCODER_OBJECT_ID_INTERNAL_TMDS1: >> + case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1: >> + case ENCODER_OBJECT_ID_INTERNAL_LVDS: >> + case ENCODER_OBJECT_ID_INTERNAL_LVTM1: >> + atombios_digital_setup(encoder, PANEL_ENCODER_ACTION_DISABLE); >> + break; >> + case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: >> + case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: >> + case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: >> + case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: >> + if (ASIC_IS_DCE4(rdev)) >> + /* disable the transmitter */ >> + atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE, 0, 0); >> + else { >> + /* disable the encoder and transmitter */ >> + atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE, 0, 0); >> + atombios_dig_encoder_setup(encoder, ATOM_DISABLE); >> + } >> + break; >> + case ENCODER_OBJECT_ID_INTERNAL_DDI: >> + atombios_ddia_setup(encoder, ATOM_DISABLE); >> + break; >> + case ENCODER_OBJECT_ID_INTERNAL_DVO1: >> + case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1: >> + atombios_external_tmds_setup(encoder, ATOM_DISABLE); >> + break; >> + case ENCODER_OBJECT_ID_INTERNAL_DAC1: >> + case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1: >> + case ENCODER_OBJECT_ID_INTERNAL_DAC2: >> + case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2: >> + atombios_dac_setup(encoder, ATOM_DISABLE); >> + if (radeon_encoder->active_device & (ATOM_DEVICE_TV_SUPPORT | ATOM_DEVICE_CV_SUPPORT)) >> + atombios_tv_setup(encoder, ATOM_DISABLE); >> + break; >> + } >> + >> if (radeon_encoder_is_digital(encoder)) { >> if (atombios_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_HDMI) >> r600_hdmi_disable(encoder); >> -- >> 1.5.6.3 >> >> >
Attachment:
0001-drm-radeon-kms-fix-copy-pasto-in-disable-encoders-p.patch
Description: application/mbox
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel