[PATCH] drm/dp: Power cycle display if LINK_ADDRESS fails.
Pandiyan, Dhinakaran
dhinakaran.pandiyan at intel.com
Thu Jan 4 23:46:45 UTC 2018
On Thu, 2018-01-04 at 18:21 -0500, Lyude Paul wrote:
> Sorry for the late reply, I've been having very similar issues on my own MST hub
> and I wanted to make sure that they were the same issue, although it seems like
> they aren't.
>
> So; I've been doing a lot of MST debugging this week and last and something I've
> discovered needs to be taken into account sometimes with MST hubs is the actual
> state that they're in at the point that the DRM driver detects them. I've
> managed to on multiple occasions, get my hub into a weird state by:
>
> - Plugging in MST displays into the hub
> - Turning on the machine
> - Unplugging MST displays from the hub (while still in the BIOS)
> - Booting into linux
> - Plugging MST displays into the hub
> - Everything times out, the world explodes, the economy collapses, etc.
>
> I think maybe, especially since this should be perfectly valid behavior and not
> break well or poor behaving hubs, we should do a power cycle with the display
> like this when the DP port initially detects an MST hub and before we start
> doing any serious communication with it. Could you see if this fixes your issue
> instead of the patch you've got here?
>
Well, my reasoning to power cycle after a failure was to not affect hubs
that work. Besides that I also saw an odd cycle of timeouts and late
replies when I did this.
1. Detect hub
2. Toggle power state and send LINK_ADDRESS req.
3. LINK_ADDRESS req times out.
4. Toggle power state and send LINK_ADDRESS req.
5. Get late response for the first (and expired) LINK_ADDRESS req.
6. Go to step 3
It seems like toggling the power states flushes out some message buffers
in the MST hub.
But, in the retry approach, power cycling resulted in getting the
response for the current LINK_ADDRESS request along with the previous
one that timed out.
I could not come up with an explanation for all the behavior. So, I
decided to get back to this later.
> As well, mind attaching your full dmesg with drm.debug=0x6?
I don't have the old logs anymore, will try to get something for you.
-DK
More information about the dri-devel
mailing list