diff --git a/drivers/gpu/drm/radeon/atombios_dp.c b/drivers/gpu/drm/radeon/atombios_dp.c index ed173d3..90bc2be 100644 --- a/drivers/gpu/drm/radeon/atombios_dp.c +++ b/drivers/gpu/drm/radeon/atombios_dp.c @@ -550,6 +550,9 @@ void radeon_dp_set_rx_power_state(struct drm_connector *connector, dig_connector = radeon_connector->con_priv; + if (power_state == DP_SET_POWER_D3) + return; + /* power up/down the sink */ if (dig_connector->dpcd[0] >= 0x11) { drm_dp_dpcd_writeb(&radeon_connector->ddc_bus->aux, diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c index dd39f43..057d68f 100644 --- a/drivers/gpu/drm/radeon/atombios_encoders.c +++ b/drivers/gpu/drm/radeon/atombios_encoders.c @@ -1381,6 +1381,8 @@ atombios_set_edp_panel_power(struct drm_connector *connector, int action) int index = GetIndexIntoMasterTable(COMMAND, UNIPHYTransmitterControl); uint8_t frev, crev; + goto done; + if (connector->connector_type != DRM_MODE_CONNECTOR_eDP) goto done; @@ -1391,6 +1393,9 @@ atombios_set_edp_panel_power(struct drm_connector *connector, int action) (action != ATOM_TRANSMITTER_ACTION_POWER_OFF)) goto done; + if (action == ATOM_TRANSMITTER_ACTION_POWER_OFF) + goto done; + if (!atom_parse_cmd_header(rdev->mode_info.atom_context, index, &frev, &crev)) goto done;