Skip to content

Commit 37fe0cf

Browse files
committed
drm/i915: Clarify probing order in intel_dp_aux_init_backlight_funcs()
Hooray! We've managed to hit enough bugs upstream that I've been able to come up with a pretty solid explanation for how backlight controls are actually supposed to be detected and used these days. As well, having the rest of the PWM bits in VESA's backlight interface implemented seems to have fixed all of the problematic brightness controls laptop panels that we've hit so far. So, let's actually document this instead of just calling the laptop panels liars. As well, I would like to formally apologize to all of the laptop panels I called liars. I'm sorry laptop panels, hopefully you can all forgive me and we can move past this~ Signed-off-by: Lyude Paul <[email protected]> Acked-by: Ville Syrjälä <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent f58a435 commit 37fe0cf

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -456,11 +456,17 @@ int intel_dp_aux_init_backlight_funcs(struct intel_connector *connector)
456456
}
457457

458458
/*
459-
* A lot of eDP panels in the wild will report supporting both the
460-
* Intel proprietary backlight control interface, and the VESA
461-
* backlight control interface. Many of these panels are liars though,
462-
* and will only work with the Intel interface. So, always probe for
463-
* that first.
459+
* Since Intel has their own backlight control interface, the majority of machines out there
460+
* using DPCD backlight controls with Intel GPUs will be using this interface as opposed to
461+
* the VESA interface. However, other GPUs (such as Nvidia's) will always use the VESA
462+
* interface. This means that there's quite a number of panels out there that will advertise
463+
* support for both interfaces, primarily systems with Intel/Nvidia hybrid GPU setups.
464+
*
465+
* There's a catch to this though: on many panels that advertise support for both
466+
* interfaces, the VESA backlight interface will stop working once we've programmed the
467+
* panel with Intel's OUI - which is also required for us to be able to detect Intel's
468+
* backlight interface at all. This means that the only sensible way for us to detect both
469+
* interfaces is to probe for Intel's first, and VESA's second.
464470
*/
465471
if (try_intel_interface && intel_dp_aux_supports_hdr_backlight(connector)) {
466472
drm_dbg_kms(dev, "Using Intel proprietary eDP backlight controls\n");

0 commit comments

Comments
 (0)