Re: Fixing i915/opregion issues with firmware which lists more then 8 output devices

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

 



Hi,

On 06-11-15 11:19, Jani Nikula wrote:
On Thu, 05 Nov 2015, Hans de Goede <hdegoede@xxxxxxxxxx> 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 ?

Regards,

Hans
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://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