On Wed, 18 Nov 2015 16:38:03 +0100, Ville Syrjälä wrote: > > On Wed, Nov 18, 2015 at 04:23:06PM +0100, Takashi Iwai wrote: > > Hi, > > > > currently a DDI port may register both DP and HDMI and it shares the > > same encoder. The bug we've got a report is about this encoder type: > > namely, a machine using DDI port D for HDMI is screwed up because the > > encoder is switched to DP suddently. The details are found in: > > http://bugzilla.opensuse.org/show_bug.cgi?id=955190 > > > > The problem happens in intel_dp_hpd_pulse(). Since the machine > > declares both DP and HDMI, the driver registers this callback. And at > > a hotplug event, the function changes the encoder type like: > > > > if (intel_dig_port->base.type != INTEL_OUTPUT_EDP) > > intel_dig_port->base.type = INTEL_OUTPUT_DISPLAYPORT; > > > > After this point, the encoder is handled as DP although the same HDMI > > monitor is connected. > > > > Changing this to exclude INTEL_OUTPUT_HDMI makes the thing working in > > the bug report above, but I'm not sure what's the right fix. > > > > Any suggestions? > > This has been causing all sorts of troubles for years. I've suggested > several times that we should just split the encoder into two, like we > have for older platforms, but no one has taken the bait thus far. > > This particular piece of code to change the encoder type in the > hpd_pulse hook came about with the mst code drop from Dave IIRC. At > least I never figured out what it's trying to do since -ENOCOMMENT. Yeah, this was introduced in the commit 0e32b39ceed665bfa4a77a4bc307b6652b991632 drm/i915: add DP 1.2 MST support (v0.7) so the problem exists for quite some time, since 3.17 kernel. I guess the patch just overlooked the DDI use case with HDMI. Maybe the code was meant like below? if (intel_dig_port->base.type == INTEL_OUTPUT_UNKNOWN || intel_dig_port->base.type == INTEL_OUTPUT_DP_MST) intel_dig_port->base.type = INTEL_OUTPUT_DISPLAYPORT; thanks, Takashi _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx