Re: [REGRESSION] i915: failure to see Dell 30" monitor connected to a Lenovo Haswell docking station

From: Dave Airlie
Date: Tue Sep 02 2014 - 07:23:22 EST

On 2 September 2014 21:03, Theodore Ts'o <tytso@xxxxxxx> wrote:
> On Tue, Sep 02, 2014 at 02:15:39PM +1000, Dave Airlie wrote:
>> On 2 September 2014 14:05, Theodore Ts'o <tytso@xxxxxxx> wrote:
>> > I recently upgraded to v3.17-rc3, and on my Lenovo T540p, I can no
>> > longer see the my Dell 30" monitor when it is connected via the
>> > docking station using a Displayport connector. This worked using 3.16
>> > kernel.
>> >
>> > If I connect to the monitor using the mini-display, by passing the
>> > docking station, things work fine (but of course it's annoying not to
>> > be able to use the docking station).
>> >
>> > Is this a known problem? This is not the first time that we've had
>> > regressions with this docking station. It's vaguely reminsicent of
>> >
>> >
>> >
>> > Except the system isn't hanging; it's just not seeing the monitor at all.
>> Have you the Dell 30" set to Displayport 1.2 enabled mode?
> No, it DP 1.2 was disabled. If I enable it, it breaks things when I
> try connecting via the MiniDP port (bypassing the dock), and it is
> still broken when I try to talk via the DisplayPort in the dock.
> If I disable DP 1.2 again, it works via the MiniDP port, but if I try
> to connect through the dock (which has a DP Hub which I believe is
> MST/DP 1.2 capable), it is still broken.
> It does seem that this might be related to 3.17-rc3 trying to talk DP
> 1.2 if it is available, since I can't control what the DP hub in the
> docking station advertises --- is there a commit or some kind of hack
> I can try to force talking to the DP hub using DP 1.1?

Interesting, I have the same combo of hw available on my desk at work,
but it might be a couple of days before I can get to the office to
debug it,

can you boot with drm.debug=6 and get me the dmesg?

The attached hack turns off mst so might be useful as a workaround,
but I should be able to fix this once I sit down at my desk.

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 6db84bf..568249e 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -3392,6 +3392,7 @@ intel_dp_probe_mst(struct intel_dp *intel_dp)
u8 buf[1];

+ return false;
if (!intel_dp->can_mst)
return false;