diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/atombios_encoders.c')
| -rw-r--r-- | drivers/gpu/drm/radeon/atombios_encoders.c | 16 | 
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c index 7d68203a3737..a7f2ddf09a9d 100644 --- a/drivers/gpu/drm/radeon/atombios_encoders.c +++ b/drivers/gpu/drm/radeon/atombios_encoders.c @@ -331,12 +331,10 @@ static bool radeon_atom_mode_fixup(struct drm_encoder *encoder,  	    && (mode->crtc_vsync_start < (mode->crtc_vdisplay + 2)))  		adjusted_mode->crtc_vsync_start = adjusted_mode->crtc_vdisplay + 2; -	/* get the native mode for LVDS */ -	if (radeon_encoder->active_device & (ATOM_DEVICE_LCD_SUPPORT)) +	/* get the native mode for scaling */ +	if (radeon_encoder->active_device & (ATOM_DEVICE_LCD_SUPPORT)) {  		radeon_panel_mode_fixup(encoder, adjusted_mode); - -	/* get the native mode for TV */ -	if (radeon_encoder->active_device & (ATOM_DEVICE_TV_SUPPORT)) { +	} else if (radeon_encoder->active_device & (ATOM_DEVICE_TV_SUPPORT)) {  		struct radeon_encoder_atom_dac *tv_dac = radeon_encoder->enc_priv;  		if (tv_dac) {  			if (tv_dac->tv_std == TV_STD_NTSC || @@ -346,6 +344,8 @@ static bool radeon_atom_mode_fixup(struct drm_encoder *encoder,  			else  				radeon_atom_get_tv_timings(rdev, 1, adjusted_mode);  		} +	} else if (radeon_encoder->rmx_type != RMX_OFF) { +		radeon_panel_mode_fixup(encoder, adjusted_mode);  	}  	if (ASIC_IS_DCE3(rdev) && @@ -716,7 +716,7 @@ atombios_get_encoder_mode(struct drm_encoder *encoder)  			if (radeon_connector->use_digital &&  			    (radeon_connector->audio == RADEON_AUDIO_ENABLE))  				return ATOM_ENCODER_MODE_HDMI; -			else if (drm_detect_hdmi_monitor(radeon_connector->edid) && +			else if (drm_detect_hdmi_monitor(radeon_connector_edid(connector)) &&  				 (radeon_connector->audio == RADEON_AUDIO_AUTO))  				return ATOM_ENCODER_MODE_HDMI;  			else if (radeon_connector->use_digital) @@ -735,7 +735,7 @@ atombios_get_encoder_mode(struct drm_encoder *encoder)  		if (radeon_audio != 0) {  			if (radeon_connector->audio == RADEON_AUDIO_ENABLE)  				return ATOM_ENCODER_MODE_HDMI; -			else if (drm_detect_hdmi_monitor(radeon_connector->edid) && +			else if (drm_detect_hdmi_monitor(radeon_connector_edid(connector)) &&  				 (radeon_connector->audio == RADEON_AUDIO_AUTO))  				return ATOM_ENCODER_MODE_HDMI;  			else @@ -755,7 +755,7 @@ atombios_get_encoder_mode(struct drm_encoder *encoder)  		} else if (radeon_audio != 0) {  			if (radeon_connector->audio == RADEON_AUDIO_ENABLE)  				return ATOM_ENCODER_MODE_HDMI; -			else if (drm_detect_hdmi_monitor(radeon_connector->edid) && +			else if (drm_detect_hdmi_monitor(radeon_connector_edid(connector)) &&  				 (radeon_connector->audio == RADEON_AUDIO_AUTO))  				return ATOM_ENCODER_MODE_HDMI;  			else  |