提交 f92e70ca 编写于 作者: R Rafał Miłecki 提交者: Dave Airlie

drm/radeon/kms: do not force DVI mode on DCE4 if audio is on

Signed-off-by: NRafał Miłecki <zajec5@gmail.com>
Signed-off-by: NDave Airlie <airlied@redhat.com>
上级 54ac76f8
...@@ -409,8 +409,6 @@ int ...@@ -409,8 +409,6 @@ int
atombios_get_encoder_mode(struct drm_encoder *encoder) atombios_get_encoder_mode(struct drm_encoder *encoder)
{ {
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;
struct drm_connector *connector; struct drm_connector *connector;
struct radeon_connector *radeon_connector; struct radeon_connector *radeon_connector;
struct radeon_connector_atom_dig *dig_connector; struct radeon_connector_atom_dig *dig_connector;
...@@ -434,13 +432,10 @@ atombios_get_encoder_mode(struct drm_encoder *encoder) ...@@ -434,13 +432,10 @@ atombios_get_encoder_mode(struct drm_encoder *encoder)
switch (connector->connector_type) { switch (connector->connector_type) {
case DRM_MODE_CONNECTOR_DVII: case DRM_MODE_CONNECTOR_DVII:
case DRM_MODE_CONNECTOR_HDMIB: /* HDMI-B is basically DL-DVI; analog works fine */ case DRM_MODE_CONNECTOR_HDMIB: /* HDMI-B is basically DL-DVI; analog works fine */
if (drm_detect_monitor_audio(radeon_connector->edid) && radeon_audio) { if (drm_detect_monitor_audio(radeon_connector->edid) &&
/* fix me */ radeon_audio)
if (ASIC_IS_DCE4(rdev)) return ATOM_ENCODER_MODE_HDMI;
return ATOM_ENCODER_MODE_DVI; else if (radeon_connector->use_digital)
else
return ATOM_ENCODER_MODE_HDMI;
} else if (radeon_connector->use_digital)
return ATOM_ENCODER_MODE_DVI; return ATOM_ENCODER_MODE_DVI;
else else
return ATOM_ENCODER_MODE_CRT; return ATOM_ENCODER_MODE_CRT;
...@@ -448,13 +443,10 @@ atombios_get_encoder_mode(struct drm_encoder *encoder) ...@@ -448,13 +443,10 @@ atombios_get_encoder_mode(struct drm_encoder *encoder)
case DRM_MODE_CONNECTOR_DVID: case DRM_MODE_CONNECTOR_DVID:
case DRM_MODE_CONNECTOR_HDMIA: case DRM_MODE_CONNECTOR_HDMIA:
default: default:
if (drm_detect_monitor_audio(radeon_connector->edid) && radeon_audio) { if (drm_detect_monitor_audio(radeon_connector->edid) &&
/* fix me */ radeon_audio)
if (ASIC_IS_DCE4(rdev)) return ATOM_ENCODER_MODE_HDMI;
return ATOM_ENCODER_MODE_DVI; else
else
return ATOM_ENCODER_MODE_HDMI;
} else
return ATOM_ENCODER_MODE_DVI; return ATOM_ENCODER_MODE_DVI;
break; break;
case DRM_MODE_CONNECTOR_LVDS: case DRM_MODE_CONNECTOR_LVDS:
...@@ -465,13 +457,10 @@ atombios_get_encoder_mode(struct drm_encoder *encoder) ...@@ -465,13 +457,10 @@ atombios_get_encoder_mode(struct drm_encoder *encoder)
if ((dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) || if ((dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) ||
(dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_eDP)) (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_eDP))
return ATOM_ENCODER_MODE_DP; return ATOM_ENCODER_MODE_DP;
else if (drm_detect_monitor_audio(radeon_connector->edid) && radeon_audio) { else if (drm_detect_monitor_audio(radeon_connector->edid) &&
/* fix me */ radeon_audio)
if (ASIC_IS_DCE4(rdev)) return ATOM_ENCODER_MODE_HDMI;
return ATOM_ENCODER_MODE_DVI; else
else
return ATOM_ENCODER_MODE_HDMI;
} else
return ATOM_ENCODER_MODE_DVI; return ATOM_ENCODER_MODE_DVI;
break; break;
case DRM_MODE_CONNECTOR_eDP: case DRM_MODE_CONNECTOR_eDP:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册