Commit 9453d621 authored by Alex Deucher's avatar Alex Deucher Committed by Dave Airlie

drm/radeon/kms: only enable HDMI mode if radeon audio is enabled

Force DVI mode if the user specifies radeon.audio=0.  The driver
doesn't handle HDMI mode properly in some cases.

Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=27731Signed-off-by: default avatarAlex Deucher <alexdeucher@gmail.com>
Signed-off-by: default avatarDave Airlie <airlied@gmail.com>
parent 6bba2e11
...@@ -641,7 +641,7 @@ atombios_get_encoder_mode(struct drm_encoder *encoder) ...@@ -641,7 +641,7 @@ 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)) { if (drm_detect_monitor_audio(radeon_connector->edid) && radeon_audio) {
/* fix me */ /* fix me */
if (ASIC_IS_DCE4(rdev)) if (ASIC_IS_DCE4(rdev))
return ATOM_ENCODER_MODE_DVI; return ATOM_ENCODER_MODE_DVI;
...@@ -655,7 +655,7 @@ atombios_get_encoder_mode(struct drm_encoder *encoder) ...@@ -655,7 +655,7 @@ 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)) { if (drm_detect_monitor_audio(radeon_connector->edid) && radeon_audio) {
/* fix me */ /* fix me */
if (ASIC_IS_DCE4(rdev)) if (ASIC_IS_DCE4(rdev))
return ATOM_ENCODER_MODE_DVI; return ATOM_ENCODER_MODE_DVI;
...@@ -673,7 +673,7 @@ atombios_get_encoder_mode(struct drm_encoder *encoder) ...@@ -673,7 +673,7 @@ 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)) { else if (drm_detect_monitor_audio(radeon_connector->edid) && radeon_audio) {
/* fix me */ /* fix me */
if (ASIC_IS_DCE4(rdev)) if (ASIC_IS_DCE4(rdev))
return ATOM_ENCODER_MODE_DVI; return ATOM_ENCODER_MODE_DVI;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment