RE: [PATCH v3 1/1] drm/i915/display: Add quirk to force backlight type on some TUXEDO devices

From: Kandpal, Suraj

Date: Thu Aug 06 2026 - 22:38:09 EST


> Subject: Re: [PATCH v3 1/1] drm/i915/display: Add quirk to force backlight type
> on some TUXEDO devices
>
> Am 04.08.26 um 21:52 schrieb Werner Sembach:
>
> > The display backlight on TUXEDO DX1708 and InsanityBook 15 v1 with
> > panels AUO 12701 and AUO 12701 must be forced to
> > INTEL_DP_AUX_BACKLIGHT_ON to be able to control the brightness.

You need to mention why that is
"Because the broken VBT in these panels report INTEL_BACKLIGHT_VESA_EDP_AUX_INTERFACE
even though the only way to control them is via Intel's backlight interface. Which means'
the VBT should ideally report INTEL_BACKLIGHT_DISPLAY_DDI in its params"

> >
> > This could already be archived via a module parameter, but this patch

* can already
* achieved

> > adds a quirk to apply this by default on the mentioned devices.
> >
> > This patch does not actually test for the exact panels as the id that
> > is used in the intel_dpcd_quirks list is sadly zeroed on the devices,
> > but afaik all these devices use try_intel_interface first anyway so
> > all the quirk does is to add the fallback to try_vesa_interface, so
> > the behaviour on the devices not needing the quirk and fallback should
> > functionally stay the same.
> >
> > Cc: stable@xxxxxxxxxxxxxxx
> > Signed-off-by: Werner Sembach <wse@xxxxxxxxxxxxxxxxxxx>
>
> Fixes: https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/15679
>
> Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/15679
>
> > ---
> > .../drm/i915/display/intel_dp_aux_backlight.c | 9 ++++++-
> > drivers/gpu/drm/i915/display/intel_quirks.c | 24 +++++++++++++++++++
> > drivers/gpu/drm/i915/display/intel_quirks.h | 1 +
> > 3 files changed, 33 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > index 266e042e00237..594c59f2d8309 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > @@ -41,6 +41,7 @@
> > #include "intel_display_types.h"
> > #include "intel_dp.h"
> > #include "intel_dp_aux_backlight.h"
> > +#include "intel_quirks.h"
> >
> > /*
> > * DP AUX registers for Intel's proprietary HDR backlight interface.
> > We define @@ -687,11 +688,17 @@ int
> intel_dp_aux_init_backlight_funcs(struct intel_connector *connector)
> > struct drm_device *dev = connector->base.dev;
> > struct intel_panel *panel = &connector->panel;
> > bool try_intel_interface = false, try_vesa_interface = false;
> > + int enable_dpcd_backlight;
> >
> > /* Check the VBT and user's module parameters to figure out which
> > * interfaces to probe
> > */

This comment need to be moved just above the switch()

> > - switch (display->params.enable_dpcd_backlight) {
> > + enable_dpcd_backlight = display->params.enable_dpcd_backlight;
> > + if (enable_dpcd_backlight == INTEL_DP_AUX_BACKLIGHT_AUTO &&
> > + intel_has_dpcd_quirk(intel_dp, QUIRK_ENABLE_DPCD_BACKLIGHT))
> > + enable_dpcd_backlight = INTEL_DP_AUX_BACKLIGHT_ON;

Let's also have a comment here as to why a quirk was used instead of just making VESA the default interface.
This will help developers avoid going through a series of regressions, fixes and inevitable reverts.

Regards,
Suraj Kandpal

> > +
> > + switch (enable_dpcd_backlight) {
> > case INTEL_DP_AUX_BACKLIGHT_OFF:
> > return -ENODEV;
> > case INTEL_DP_AUX_BACKLIGHT_AUTO:
> > diff --git a/drivers/gpu/drm/i915/display/intel_quirks.c
> > b/drivers/gpu/drm/i915/display/intel_quirks.c
> > index 33245f44c0d50..89d82364ae45d 100644
> > --- a/drivers/gpu/drm/i915/display/intel_quirks.c
> > +++ b/drivers/gpu/drm/i915/display/intel_quirks.c
> > @@ -100,6 +100,14 @@ static void quirk_disable_psr2(struct intel_display
> *display)
> > drm_info(display->drm, "PSR2 support not currently available for this
> setup, applying disable PSR2 quirk\n");
> > }
> >
> > +static void quirk_enable_dpcd_backlight(struct intel_dp *intel_dp) {
> > + struct intel_display *display = to_intel_display(intel_dp);
> > +
> > + intel_set_dpcd_quirk(intel_dp, QUIRK_ENABLE_DPCD_BACKLIGHT);
> > + drm_info(display->drm, "Applying Enable DPCD Backlight quirk\n"); }
> > +
> > struct intel_quirk {
> > int device;
> > int subsystem_vendor;
> > @@ -286,6 +294,22 @@ static const struct intel_dpcd_quirk
> intel_dpcd_quirks[] = {
> > .sink_oui = SINK_OUI(0x00, 0x22, 0xb9),
> > .hook = quirk_disable_edp_panel_replay,
> > },
> > + /* TUXEDO InsanityBook 15 v1 */
> > + {
> > + .device = 0x591b,
> > + .subsystem_vendor = 0x1558,
> > + .subsystem_device = 0x9501,
> > + .sink_oui = SINK_OUI(0x38, 0xec, 0x11),
> > + .hook = quirk_enable_dpcd_backlight,
> > + },
> > + /* TUXEDO DX1708 */
> > + {
> > + .device = 0x3e9b,
> > + .subsystem_vendor = 0x1558,
> > + .subsystem_device = 0x8500,
> > + .sink_oui = SINK_OUI(0x38, 0xec, 0x11),
> > + .hook = quirk_enable_dpcd_backlight,
> > + },
> > };
> >
> > void intel_init_quirks(struct intel_display *display) diff --git
> > a/drivers/gpu/drm/i915/display/intel_quirks.h
> > b/drivers/gpu/drm/i915/display/intel_quirks.h
> > index 970a4fe52fafc..4996419ae76bd 100644
> > --- a/drivers/gpu/drm/i915/display/intel_quirks.h
> > +++ b/drivers/gpu/drm/i915/display/intel_quirks.h
> > @@ -23,6 +23,7 @@ enum intel_quirk_id {
> > QUIRK_EDP_LIMIT_RATE_HBR2,
> > QUIRK_DISABLE_EDP_PANEL_REPLAY,
> > QUIRK_DISABLE_PSR2,
> > + QUIRK_ENABLE_DPCD_BACKLIGHT,
> > };
> >
> > void intel_init_quirks(struct intel_display *display);