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

Jani Nikula jani.nikula at linux.intel.com
Wed Mar 23 11:48:12 UTC 2016


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/

BR,
Jani.



-- 
Jani Nikula, Intel Open Source Technology Center


More information about the Intel-gfx mailing list