|
@@ -667,6 +667,8 @@ atombios_digital_setup(struct drm_encoder *encoder, int action)
|
|
|
int
|
|
|
atombios_get_encoder_mode(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 drm_connector *connector;
|
|
|
struct radeon_connector *radeon_connector;
|
|
@@ -693,7 +695,8 @@ atombios_get_encoder_mode(struct drm_encoder *encoder)
|
|
|
case DRM_MODE_CONNECTOR_DVII:
|
|
|
case DRM_MODE_CONNECTOR_HDMIB: /* HDMI-B is basically DL-DVI; analog works fine */
|
|
|
if (drm_detect_hdmi_monitor(radeon_connector->edid) &&
|
|
|
- radeon_audio)
|
|
|
+ radeon_audio &&
|
|
|
+ !ASIC_IS_DCE6(rdev)) /* remove once we support DCE6 */
|
|
|
return ATOM_ENCODER_MODE_HDMI;
|
|
|
else if (radeon_connector->use_digital)
|
|
|
return ATOM_ENCODER_MODE_DVI;
|
|
@@ -704,7 +707,8 @@ atombios_get_encoder_mode(struct drm_encoder *encoder)
|
|
|
case DRM_MODE_CONNECTOR_HDMIA:
|
|
|
default:
|
|
|
if (drm_detect_hdmi_monitor(radeon_connector->edid) &&
|
|
|
- radeon_audio)
|
|
|
+ radeon_audio &&
|
|
|
+ !ASIC_IS_DCE6(rdev)) /* remove once we support DCE6 */
|
|
|
return ATOM_ENCODER_MODE_HDMI;
|
|
|
else
|
|
|
return ATOM_ENCODER_MODE_DVI;
|
|
@@ -718,7 +722,8 @@ atombios_get_encoder_mode(struct drm_encoder *encoder)
|
|
|
(dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_eDP))
|
|
|
return ATOM_ENCODER_MODE_DP;
|
|
|
else if (drm_detect_hdmi_monitor(radeon_connector->edid) &&
|
|
|
- radeon_audio)
|
|
|
+ radeon_audio &&
|
|
|
+ !ASIC_IS_DCE6(rdev)) /* remove once we support DCE6 */
|
|
|
return ATOM_ENCODER_MODE_HDMI;
|
|
|
else
|
|
|
return ATOM_ENCODER_MODE_DVI;
|