Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
forked fromtorvalds/linux

Commitb1e3144

Browse files
dhnkrnrodrigovivi
authored andcommitted
drm/i915/dp: Write to SET_POWER dpcd to enable MST hub.
If bios sets up an MST output and hardware state readout code sees this isan SST configuration, when disabling the encoder we end up calling->post_disable_dp() hook instead of the MST version. Consequently, we writeto the DP_SET_POWER dpcd to set it D3 state. Further along when we tryenable the encoder in MST mode, POWER_UP_PHY transaction fails to power upthe MST hub. This results in continuous link training failures which keepthe system busy delaying boot. We could identify bios MST boot discrepancyand handle it accordingly but a simple way to solve this is to write to theDP_SET_POWER dpcd for MST too.Bugzilla:https://bugs.freedesktop.org/show_bug.cgi?id=105470Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>Cc: Jani Nikula <jani.nikula@intel.com>Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>Reported-by: Laura Abbott <labbott@redhat.com>Cc: stable@vger.kernel.orgFixes:5ea2355 ("drm/i915/mst: Use MST sideband message transactions for dpms control")Tested-by: Laura Abbott <labbott@redhat.com>Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>Signed-off-by: Jani Nikula <jani.nikula@intel.com>Link:https://patchwork.freedesktop.org/patch/msgid/20180314054825.1718-1-dhinakaran.pandiyan@intel.com(cherry picked from commitad260ab)Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
1 parentc698ca5 commitb1e3144

File tree

1 file changed

+2
-5
lines changed

1 file changed

+2
-5
lines changed

‎drivers/gpu/drm/i915/intel_ddi.c‎

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2175,8 +2175,7 @@ static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder,
21752175
intel_prepare_dp_ddi_buffers(encoder,crtc_state);
21762176

21772177
intel_ddi_init_dp_buf_reg(encoder);
2178-
if (!is_mst)
2179-
intel_dp_sink_dpms(intel_dp,DRM_MODE_DPMS_ON);
2178+
intel_dp_sink_dpms(intel_dp,DRM_MODE_DPMS_ON);
21802179
intel_dp_start_link_train(intel_dp);
21812180
if (port!=PORT_A||INTEL_GEN(dev_priv) >=9)
21822181
intel_dp_stop_link_train(intel_dp);
@@ -2274,14 +2273,12 @@ static void intel_ddi_post_disable_dp(struct intel_encoder *encoder,
22742273
structdrm_i915_private*dev_priv=to_i915(encoder->base.dev);
22752274
structintel_digital_port*dig_port=enc_to_dig_port(&encoder->base);
22762275
structintel_dp*intel_dp=&dig_port->dp;
2277-
boolis_mst=intel_crtc_has_type(old_crtc_state,INTEL_OUTPUT_DP_MST);
22782276

22792277
/*
22802278
* Power down sink before disabling the port, otherwise we end
22812279
* up getting interrupts from the sink on detecting link loss.
22822280
*/
2283-
if (!is_mst)
2284-
intel_dp_sink_dpms(intel_dp,DRM_MODE_DPMS_OFF);
2281+
intel_dp_sink_dpms(intel_dp,DRM_MODE_DPMS_OFF);
22852282

22862283
intel_disable_ddi_buf(encoder);
22872284

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp