[Intel-gfx] [PATCH] Revert "drm/i915: Check live status before reading edid"
Jani Nikula
jani.nikula at linux.intel.com
Wed Sep 7 11:56:51 UTC 2016
On Fri, 19 Aug 2016, David Weinehall <david.weinehall at linux.intel.com> wrote:
> 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 at chris-wilson.co.uk> 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 at linux.intel.com>
>> > >
>> > > 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 at chris-wilson.co.uk>
>> > > Cc: stable at vger.kernel.org
>> >
>> > 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.
Pushed to drm-intel-next-queued after procrastination, thanks for the
patch.
BR,
Jani.
--
Jani Nikula, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list