[Intel-gfx] Fixing i915/opregion issues with firmware which lists more then 8 output devices

Hans de Goede hdegoede at redhat.com
Wed Mar 23 12:57:35 UTC 2016


Hi Jani,

On 23-03-16 12:48, Jani Nikula wrote:
> On Fri, 06 Nov 2015, Hans de Goede <hdegoede at redhat.com> wrote:
>> On 06-11-15 11:19, Jani Nikula wrote:
>>> On Thu, 05 Nov 2015, Hans de Goede <hdegoede at redhat.com> wrote:
>>>> Hi,
>>>>
>>>> As discussed in the past, the i915 opregion code does not do the
>>>> right thing wrt the CADL field when there are more then 8 outputs,
>>>> this is causing issues on many different types of Asus laptops.
>>>>
>>>> This thread has details and a number of attempts to fix this:
>>>>
>>>> https://lkml.org/lkml/2014/2/11/1032
>>>>
>>>> This is impacting many users, here is an incomplete list of bug reports:
>>>>
>>>> https://bugzilla.kernel.org/show_bug.cgi?id=70241
>>>> https://bugzilla.kernel.org/show_bug.cgi?id=88941
>>>> https://bugzilla.redhat.com/show_bug.cgi?id=1144866
>>>> https://bugzilla.redhat.com/show_bug.cgi?id=1277785
>>>>
>>>> And I'm pretty sure that is just the tip of the iceberg, some users
>>>> have even analyzed their BIOS AML code and come up with an AML
>>>> hack in an attempt to fix this:
>>>>
>>>> http://blog.yjwong.name/fixing-display-backlight-hotkeys-on-asus-n550jk/
>>>>
>>>> It would be really great of someone from Intel could step up and start
>>>> working on a proper fix for this.
>>>
>>> Hans, thanks for bringing this up again.
>>>
>>> IIUC this would require something along the lines of:
>>>
>>> - Properly map acpi video bus children and DRM connectors in
>>>     intel_didl_outputs(). This is likely the hardest part. Save the
>>>     display ids in struct intel_connector.
>>>
>>> - Replace intel_setup_cadls() with functions to add/remove display ids
>>>     from opregion CADL.
>>>
>>> - Call the above functions as part of the modeset sequence (either from
>>>     intel_display.c or from the encoder hooks, whichever is best) to keep
>>>     CADL up-to-date about active outputs. Here, getting DP MST right is
>>>     probably the hard one.
>>>
>>> If the mapping goes wrong, and some id that used to be in CADL with the
>>> current code gets dropped, this may regress. That's the biggest risk,
>>> really.
>>>
>>> For the backlight/hotkey stuff, the minimal fix may be to keep the
>>> stupid static initialization of the CADL in intel_setup_cadls() like we
>>> have now, but ensuring the embedded displays are included in the list.
>>
>> This is what Aaron's first attempt at fixing this more or less did:
>>
>> https://lkml.org/lkml/2014/2/11/1032
>>
>> Unless someone actually steps up to do a proper fix for this *now*,
>> maybe the i915 driver needs to incorporate a slightly revised / improved
>> version of that patch as a work around for now ?
>
> "now" took a long time, but there's this series to try now:
> https://patchwork.freedesktop.org/series/4783/

Cool. Note I do not have hardware to test this.

I think it would be good if you add a link to that series to all the relevant
bugreports, quoting from my original mail that would be the following bug
reports:

https://bugzilla.kernel.org/show_bug.cgi?id=70241
https://bugzilla.kernel.org/show_bug.cgi?id=88941
https://bugzilla.redhat.com/show_bug.cgi?id=1144866
https://bugzilla.redhat.com/show_bug.cgi?id=1277785

Regards,

Hans


More information about the Intel-gfx mailing list