On Thu, Aug 30, 2012 at 2:27 AM, Michel D?nzer <michel at daenzer.net> wrote: > On Mit, 2012-08-29 at 20:02 -0400, alexdeucher at gmail.com wrote: >> From: Alex Deucher <alexander.deucher at amd.com> >> >> Was using the DCE41 code which was wrong. Fixes >> blank displays on a number of Trinity systems. >> >> Signed-off-by: Alex Deucher <alexander.deucher at amd.com> >> Cc: stable at vger.kernel.org >> --- >> drivers/gpu/drm/radeon/atombios_encoders.c | 31 >> +++++++++++++++++++++++---- >> 1 files changed, 26 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c >> b/drivers/gpu/drm/radeon/atombios_encoders.c >> index 4a7f95e..6e8803a 100644 >> --- a/drivers/gpu/drm/radeon/atombios_encoders.c >> +++ b/drivers/gpu/drm/radeon/atombios_encoders.c >> @@ -1769,13 +1769,34 @@ static int radeon_atom_pick_dig_encoder(struct >> drm_encoder *encoder) >> struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); >> struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); >> struct drm_encoder *test_encoder; >> - struct radeon_encoder_atom_dig *dig; >> + struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; >> uint32_t dig_enc_in_use = 0; >> >> - /* DCE4/5 */ >> - if (ASIC_IS_DCE4(rdev)) { >> - dig = radeon_encoder->enc_priv; >> - if (ASIC_IS_DCE41(rdev)) { >> + if (ASIC_IS_DCE6(rdev)) { >> + /* DCE6 */ >> + switch (radeon_encoder->encoder_id) { >> + case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: >> + if (dig->linkb) >> + return 1; >> + else >> + return 0; >> + break; >> + case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: >> + if (dig->linkb) >> + return 3; >> + else >> + return 2; >> + break; >> + case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: >> + if (dig->linkb) >> + return 5; >> + else >> + return 4; >> + break; >> + } >> + } else if (ASIC_IS_DCE4(rdev)) { >> + /* DCE4/5 */ >> + if (ASIC_IS_DCE41(rdev) && !ASIC_IS_DCE61(rdev)) { > > The !ASIC_IS_DCE61(rdev) seems redundant here. Either way though, >
whoops, yes, it is. I was considering whether to add a !DCE61 check or a new DCE6 section and decided the latter was cleaner, but never removed the other check. Oh well. I'll clean it up later. Thanks! > Reviewed-by: Michel D?nzer <michel.daenzer at amd.com> > > > -- > Earthling Michel D?nzer | http://www.amd.com > Libre software enthusiast | Debian, X and DRI developer