Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f92e70ca authored by Rafał Miłecki's avatar Rafał Miłecki Committed by Dave Airlie
Browse files

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

parent 54ac76f8
Loading
Loading
Loading
Loading
+12 −23
Original line number Original line Diff line number Diff line
@@ -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)
	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_DVI;
			else
			return ATOM_ENCODER_MODE_HDMI;
			return ATOM_ENCODER_MODE_HDMI;
		} else if (radeon_connector->use_digital)
		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)
	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_DVI;
			else
			return ATOM_ENCODER_MODE_HDMI;
			return ATOM_ENCODER_MODE_HDMI;
		} else
		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)
		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_DVI;
			else
			return ATOM_ENCODER_MODE_HDMI;
			return ATOM_ENCODER_MODE_HDMI;
		} else
		else
			return ATOM_ENCODER_MODE_DVI;
			return ATOM_ENCODER_MODE_DVI;
		break;
		break;
	case DRM_MODE_CONNECTOR_eDP:
	case DRM_MODE_CONNECTOR_eDP: