diff options
| -rw-r--r-- | drivers/gpu/drm/i915/intel_audio.c | 5 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_bios.c | 7 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/intel_modes.c | 17 |
4 files changed, 24 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c index d805b6e6fe71..27743be5b768 100644 --- a/drivers/gpu/drm/i915/intel_audio.c +++ b/drivers/gpu/drm/i915/intel_audio.c | |||
| @@ -606,11 +606,6 @@ void intel_audio_codec_enable(struct intel_encoder *intel_encoder, | |||
| 606 | connector->encoder->base.id, | 606 | connector->encoder->base.id, |
| 607 | connector->encoder->name); | 607 | connector->encoder->name); |
| 608 | 608 | ||
| 609 | /* ELD Conn_Type */ | ||
| 610 | connector->eld[5] &= ~(3 << 2); | ||
| 611 | if (intel_crtc_has_dp_encoder(crtc_state)) | ||
| 612 | connector->eld[5] |= (1 << 2); | ||
| 613 | |||
| 614 | connector->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2; | 609 | connector->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2; |
| 615 | 610 | ||
| 616 | if (dev_priv->display.audio_codec_enable) | 611 | if (dev_priv->display.audio_codec_enable) |
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c index 183e87e8ea31..00c6aee0a9a1 100644 --- a/drivers/gpu/drm/i915/intel_bios.c +++ b/drivers/gpu/drm/i915/intel_bios.c | |||
| @@ -1163,6 +1163,13 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port, | |||
| 1163 | is_hdmi = is_dvi && (child->common.device_type & DEVICE_TYPE_NOT_HDMI_OUTPUT) == 0; | 1163 | is_hdmi = is_dvi && (child->common.device_type & DEVICE_TYPE_NOT_HDMI_OUTPUT) == 0; |
| 1164 | is_edp = is_dp && (child->common.device_type & DEVICE_TYPE_INTERNAL_CONNECTOR); | 1164 | is_edp = is_dp && (child->common.device_type & DEVICE_TYPE_INTERNAL_CONNECTOR); |
| 1165 | 1165 | ||
| 1166 | if (port == PORT_A && is_dvi) { | ||
| 1167 | DRM_DEBUG_KMS("VBT claims port A supports DVI%s, ignoring\n", | ||
| 1168 | is_hdmi ? "/HDMI" : ""); | ||
| 1169 | is_dvi = false; | ||
| 1170 | is_hdmi = false; | ||
| 1171 | } | ||
| 1172 | |||
| 1166 | info->supports_dvi = is_dvi; | 1173 | info->supports_dvi = is_dvi; |
| 1167 | info->supports_hdmi = is_hdmi; | 1174 | info->supports_hdmi = is_hdmi; |
| 1168 | info->supports_dp = is_dp; | 1175 | info->supports_dp = is_dp; |
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 00cd17c76fdc..64f7b51ed97c 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
| @@ -12359,7 +12359,6 @@ static void intel_atomic_commit_tail(struct drm_atomic_state *state) | |||
| 12359 | struct drm_crtc_state *old_crtc_state, *new_crtc_state; | 12359 | struct drm_crtc_state *old_crtc_state, *new_crtc_state; |
| 12360 | struct drm_crtc *crtc; | 12360 | struct drm_crtc *crtc; |
| 12361 | struct intel_crtc_state *intel_cstate; | 12361 | struct intel_crtc_state *intel_cstate; |
| 12362 | bool hw_check = intel_state->modeset; | ||
| 12363 | u64 put_domains[I915_MAX_PIPES] = {}; | 12362 | u64 put_domains[I915_MAX_PIPES] = {}; |
| 12364 | unsigned crtc_vblank_mask = 0; | 12363 | unsigned crtc_vblank_mask = 0; |
| 12365 | int i; | 12364 | int i; |
| @@ -12376,7 +12375,6 @@ static void intel_atomic_commit_tail(struct drm_atomic_state *state) | |||
| 12376 | 12375 | ||
| 12377 | if (needs_modeset(new_crtc_state) || | 12376 | if (needs_modeset(new_crtc_state) || |
| 12378 | to_intel_crtc_state(new_crtc_state)->update_pipe) { | 12377 | to_intel_crtc_state(new_crtc_state)->update_pipe) { |
| 12379 | hw_check = true; | ||
| 12380 | 12378 | ||
| 12381 | put_domains[to_intel_crtc(crtc)->pipe] = | 12379 | put_domains[to_intel_crtc(crtc)->pipe] = |
| 12382 | modeset_get_crtc_power_domains(crtc, | 12380 | modeset_get_crtc_power_domains(crtc, |
diff --git a/drivers/gpu/drm/i915/intel_modes.c b/drivers/gpu/drm/i915/intel_modes.c index 951e834dd274..28a778b785ac 100644 --- a/drivers/gpu/drm/i915/intel_modes.c +++ b/drivers/gpu/drm/i915/intel_modes.c | |||
| @@ -30,6 +30,21 @@ | |||
| 30 | #include "intel_drv.h" | 30 | #include "intel_drv.h" |
| 31 | #include "i915_drv.h" | 31 | #include "i915_drv.h" |
| 32 | 32 | ||
| 33 | static void intel_connector_update_eld_conn_type(struct drm_connector *connector) | ||
| 34 | { | ||
| 35 | u8 conn_type; | ||
| 36 | |||
| 37 | if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort || | ||
| 38 | connector->connector_type == DRM_MODE_CONNECTOR_eDP) { | ||
| 39 | conn_type = DRM_ELD_CONN_TYPE_DP; | ||
| 40 | } else { | ||
| 41 | conn_type = DRM_ELD_CONN_TYPE_HDMI; | ||
| 42 | } | ||
| 43 | |||
| 44 | connector->eld[DRM_ELD_SAD_COUNT_CONN_TYPE] &= ~DRM_ELD_CONN_TYPE_MASK; | ||
| 45 | connector->eld[DRM_ELD_SAD_COUNT_CONN_TYPE] |= conn_type; | ||
| 46 | } | ||
| 47 | |||
| 33 | /** | 48 | /** |
| 34 | * intel_connector_update_modes - update connector from edid | 49 | * intel_connector_update_modes - update connector from edid |
| 35 | * @connector: DRM connector device to use | 50 | * @connector: DRM connector device to use |
| @@ -44,6 +59,8 @@ int intel_connector_update_modes(struct drm_connector *connector, | |||
| 44 | ret = drm_add_edid_modes(connector, edid); | 59 | ret = drm_add_edid_modes(connector, edid); |
| 45 | drm_edid_to_eld(connector, edid); | 60 | drm_edid_to_eld(connector, edid); |
| 46 | 61 | ||
| 62 | intel_connector_update_eld_conn_type(connector); | ||
| 63 | |||
| 47 | return ret; | 64 | return ret; |
| 48 | } | 65 | } |
| 49 | 66 | ||
