Re: [PATCH] Revert "drm/i915: Check live status before reading edid"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux