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

Commit a5f798ce authored by Alex Deucher's avatar Alex Deucher Committed by Dave Airlie
Browse files

drm/radeon/kms: fix DP after DPMS cycle



The transmitter needs to be enabled before the link is trained.

Reported-By: default avatarLars Doelle <lars.doelle@on-line.de>
Signed-off-by: default avatarAlex Deucher <alexdeucher@gmail.com>
Cc: stable <stable@kernel.org>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 09bdf591
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -1072,6 +1072,8 @@ radeon_atom_encoder_dpms(struct drm_encoder *encoder, int mode)
	if (is_dig) {
	if (is_dig) {
		switch (mode) {
		switch (mode) {
		case DRM_MODE_DPMS_ON:
		case DRM_MODE_DPMS_ON:
			if (!ASIC_IS_DCE4(rdev))
				atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE_OUTPUT, 0, 0);
			if (atombios_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_DP) {
			if (atombios_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_DP) {
				struct drm_connector *connector = radeon_get_connector_for_encoder(encoder);
				struct drm_connector *connector = radeon_get_connector_for_encoder(encoder);


@@ -1079,8 +1081,6 @@ radeon_atom_encoder_dpms(struct drm_encoder *encoder, int mode)
				if (ASIC_IS_DCE4(rdev))
				if (ASIC_IS_DCE4(rdev))
					atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON);
					atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON);
			}
			}
			if (!ASIC_IS_DCE4(rdev))
				atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE_OUTPUT, 0, 0);
			break;
			break;
		case DRM_MODE_DPMS_STANDBY:
		case DRM_MODE_DPMS_STANDBY:
		case DRM_MODE_DPMS_SUSPEND:
		case DRM_MODE_DPMS_SUSPEND: