On Thu, Aug 18, 2016 at 10:29:43AM +0300, David Weinehall wrote: > On Wed, Aug 17, 2016 at 04:43:36PM +0300, Jani Nikula wrote: > > On Wed, 17 Aug 2016, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote: > > > On Wed, Aug 17, 2016 at 03:47:48PM +0300, David Weinehall wrote: > > >> This reverts commit 237ed86c693d8a8e4db476976aeb30df4deac74b. > > >> > > >> Our current implementation of live status check (repeat 9 times > > >> with 10ms delays between each attempt as a workaround for > > >> buggy displays) imposes a rather serious penalty, time wise, > > >> on intel_hdmi_detect(). Since we we already skip live status > > >> checks on platforms before gen 7, and since we seem to have > > >> coped quite well before the live status check was introduced > > >> for newer platforms too, the previous behaviour is probably > > >> preferable, at least unless someone can point to a use-case > > >> that the live status check improves (apart from "Bspec says so". > > >> > > >> Signed-off-by: David Weinehall <david.weinehall@xxxxxxxxxxxxxxx> > > > > > > Fixes: 237ed86c693d ("drm/i915: Check live status before reading edid") > > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97139 > > > Acked-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > > > Cc: stable@xxxxxxxxxxxxxxx > > > > And we've come full circle on live status. Again. > > > > References: https://upload.wikimedia.org/wikipedia/commons/3/3b/Paris_Tuileries_Garden_Facepalm_statue.jpg > > Actually, we might have to take (at least) one more > lap around the circle. > > I did some more benchmarks, this time on Cherryview, > and two different Skylake models (one ThinkPad 13, > one NUC i5). > > The results are rather frustrating: > > On Skylake gmbus_wait_hw_status() seems to be > really expensive[1]. [snip] Actually, I think it's safe to do the revert. A bit more testing yields that it's not a generic issue for Skylake, it seems to be specific to ThinkPads (or even a subset of them; I haven't got more than one model to test on). The gmbus never sends a NAK if there's nothing connected, so eventually gmbus_wait_for_status() gives up and we fall back to using the bitbanging method instead. Since things still work (albeit with reduced performance) on ThinkPads, and other platforms don't exhibit this behaviour, I suggest we move forward and revert the live status check. Chris has a partial fix for the problem; it fixes the first port (which is purely an HDMI-port), but the second port -- which I believe is routed through the dock connector and/or the type C USB-port, still remains problematic. Kind regards, David Weinehall _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx