intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/1] drm/i915/display: Add quirk to force backlight type on some TUXEDO devices
@ 2025-04-11 15:55 Werner Sembach
  2025-04-11 15:55 ` [PATCH 1/1] " Werner Sembach
  2025-04-14 17:31 ` ✗ LGCI.VerificationFailed: failure for " Patchwork
  0 siblings, 2 replies; 8+ messages in thread
From: Werner Sembach @ 2025-04-11 15:55 UTC (permalink / raw)
  To: jani.nikula, rodrigo.vivi, joonas.lahtinen, tursulin, airlied,
	simona
  Cc: intel-gfx, intel-xe, dri-devel, linux-kernel, Werner Sembach

This is a quirk we currently manually apply via our installer via the boot
parameter, but we don't have this exact device + panel configuration in our
archive anymore so I could only test the qurik moking in other ids. This is
the same situation we have here:
https://lore.kernel.org/all/20250409163029.130651-1-wse@tuxedocomputers.com/

Werner Sembach (1):
  drm/i915/display: Add quirk to force backlight type on some TUXEDO
    devices

 .../drm/i915/display/intel_dp_aux_backlight.c | 14 ++++++-
 drivers/gpu/drm/i915/display/intel_quirks.c   | 42 +++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_quirks.h   |  1 +
 3 files changed, 56 insertions(+), 1 deletion(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/1] drm/i915/display: Add quirk to force backlight type on some TUXEDO devices
  2025-04-11 15:55 [PATCH 0/1] drm/i915/display: Add quirk to force backlight type on some TUXEDO devices Werner Sembach
@ 2025-04-11 15:55 ` Werner Sembach
  2025-04-11 18:56   ` Ville Syrjälä
  2025-06-23 17:45   ` Werner Sembach
  2025-04-14 17:31 ` ✗ LGCI.VerificationFailed: failure for " Patchwork
  1 sibling, 2 replies; 8+ messages in thread
From: Werner Sembach @ 2025-04-11 15:55 UTC (permalink / raw)
  To: jani.nikula, rodrigo.vivi, joonas.lahtinen, tursulin, airlied,
	simona
  Cc: intel-gfx, intel-xe, dri-devel, linux-kernel, 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.

This could already be archived via a module parameter, but this patch adds
a quirk to apply this by default on the mentioned device + panel
combinations.

Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
Cc: stable@vger.kernel.org
---
 .../drm/i915/display/intel_dp_aux_backlight.c | 14 ++++++-
 drivers/gpu/drm/i915/display/intel_quirks.c   | 42 +++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_quirks.h   |  1 +
 3 files changed, 56 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 c846ef4acf5b2..0cac04c98a3e3 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
@@ -34,12 +34,14 @@
  * for some reason.
  */
 
+#include <drm/drm_edid.h>
 #include "i915_utils.h"
 #include "intel_backlight.h"
 #include "intel_display_core.h"
 #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
@@ -607,11 +609,21 @@ 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;
+	u32 pnl_id;
 
 	/* Check the VBT and user's module parameters to figure out which
 	 * interfaces to probe
 	 */
-	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_quirk(display, QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT)) {
+		pnl_id = drm_edid_get_panel_id(panel->fixed_edid);
+		if (pnl_id == drm_edid_encode_panel_id('A', 'U', 'O', 0x319d) ||
+		    pnl_id == drm_edid_encode_panel_id('A', 'U', 'O', 0x52ed))
+			enable_dpcd_backlight = INTEL_DP_AUX_BACKLIGHT_ON;
+	}
+	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 8b30e9fd936e7..6f724e5712664 100644
--- a/drivers/gpu/drm/i915/display/intel_quirks.c
+++ b/drivers/gpu/drm/i915/display/intel_quirks.c
@@ -78,6 +78,12 @@ static void quirk_fw_sync_len(struct intel_dp *intel_dp)
 	drm_info(display->drm, "Applying Fast Wake sync pulse count quirk\n");
 }
 
+static void quirk_auo_12701_21229_enable_dpcd_backlight(struct intel_display *display)
+{
+	intel_set_quirk(display, QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT);
+	drm_info(display->drm, "Applying Display AUO Model 12701 and 21229 Enable DPCD Backlight quirk\n");
+}
+
 struct intel_quirk {
 	int device;
 	int subsystem_vendor;
@@ -118,6 +124,12 @@ static int intel_dmi_no_pps_backlight(const struct dmi_system_id *id)
 	return 1;
 }
 
+static int intel_dmi_auo_12701_21229_enable_dpcd_backlight(const struct dmi_system_id *id)
+{
+	DRM_INFO("Display AUO model 12701 and 21229 DPCD backlight control on %s\n", id->ident);
+	return 1;
+}
+
 static const struct intel_dmi_quirk intel_dmi_quirks[] = {
 	{
 		.dmi_id_list = &(const struct dmi_system_id[]) {
@@ -164,6 +176,36 @@ static const struct intel_dmi_quirk intel_dmi_quirks[] = {
 		},
 		.hook = quirk_no_pps_backlight_power_hook,
 	},
+	{
+		.dmi_id_list = &(const struct dmi_system_id[]) {
+			{
+				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
+				.ident = "TUXEDO DX1708",
+				.matches = {DMI_MATCH(DMI_BOARD_NAME, "N8xEJEK"),
+				},
+			},
+			{
+				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
+				.ident = "TUXEDO InsanityBook 15 v1",
+				.matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HP"),
+				},
+			},
+			{
+				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
+				.ident = "TUXEDO InsanityBook 15 v1",
+				.matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HR"),
+				},
+			},
+			{
+				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
+				.ident = "TUXEDO InsanityBook 15 v1",
+				.matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HP,HR,HQ"),
+				},
+			},
+			{ }
+		},
+		.hook = quirk_auo_12701_21229_enable_dpcd_backlight,
+	},
 };
 
 static struct intel_quirk intel_quirks[] = {
diff --git a/drivers/gpu/drm/i915/display/intel_quirks.h b/drivers/gpu/drm/i915/display/intel_quirks.h
index cafdebda75354..38bdbd65d7efb 100644
--- a/drivers/gpu/drm/i915/display/intel_quirks.h
+++ b/drivers/gpu/drm/i915/display/intel_quirks.h
@@ -20,6 +20,7 @@ enum intel_quirk_id {
 	QUIRK_LVDS_SSC_DISABLE,
 	QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK,
 	QUIRK_FW_SYNC_LEN,
+	QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT,
 };
 
 void intel_init_quirks(struct intel_display *display);
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/1] drm/i915/display: Add quirk to force backlight type on some TUXEDO devices
  2025-04-11 15:55 ` [PATCH 1/1] " Werner Sembach
@ 2025-04-11 18:56   ` Ville Syrjälä
  2025-04-15 15:48     ` Werner Sembach
  2025-06-23 17:45   ` Werner Sembach
  1 sibling, 1 reply; 8+ messages in thread
From: Ville Syrjälä @ 2025-04-11 18:56 UTC (permalink / raw)
  To: Werner Sembach
  Cc: jani.nikula, rodrigo.vivi, joonas.lahtinen, tursulin, airlied,
	simona, intel-gfx, intel-xe, dri-devel, linux-kernel

On Fri, Apr 11, 2025 at 05:55:08PM +0200, Werner Sembach wrote:
> 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.
> 
> This could already be archived via a module parameter, but this patch adds
> a quirk to apply this by default on the mentioned device + panel
> combinations.

Why aren't you fixing the VBT to be correct in the first place?

> 
> Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
> Cc: stable@vger.kernel.org
> ---
>  .../drm/i915/display/intel_dp_aux_backlight.c | 14 ++++++-
>  drivers/gpu/drm/i915/display/intel_quirks.c   | 42 +++++++++++++++++++
>  drivers/gpu/drm/i915/display/intel_quirks.h   |  1 +
>  3 files changed, 56 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 c846ef4acf5b2..0cac04c98a3e3 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> @@ -34,12 +34,14 @@
>   * for some reason.
>   */
>  
> +#include <drm/drm_edid.h>
>  #include "i915_utils.h"
>  #include "intel_backlight.h"
>  #include "intel_display_core.h"
>  #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
> @@ -607,11 +609,21 @@ 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;
> +	u32 pnl_id;
>  
>  	/* Check the VBT and user's module parameters to figure out which
>  	 * interfaces to probe
>  	 */
> -	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_quirk(display, QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT)) {
> +		pnl_id = drm_edid_get_panel_id(panel->fixed_edid);
> +		if (pnl_id == drm_edid_encode_panel_id('A', 'U', 'O', 0x319d) ||
> +		    pnl_id == drm_edid_encode_panel_id('A', 'U', 'O', 0x52ed))
> +			enable_dpcd_backlight = INTEL_DP_AUX_BACKLIGHT_ON;
> +	}
> +	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 8b30e9fd936e7..6f724e5712664 100644
> --- a/drivers/gpu/drm/i915/display/intel_quirks.c
> +++ b/drivers/gpu/drm/i915/display/intel_quirks.c
> @@ -78,6 +78,12 @@ static void quirk_fw_sync_len(struct intel_dp *intel_dp)
>  	drm_info(display->drm, "Applying Fast Wake sync pulse count quirk\n");
>  }
>  
> +static void quirk_auo_12701_21229_enable_dpcd_backlight(struct intel_display *display)
> +{
> +	intel_set_quirk(display, QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT);
> +	drm_info(display->drm, "Applying Display AUO Model 12701 and 21229 Enable DPCD Backlight quirk\n");
> +}
> +
>  struct intel_quirk {
>  	int device;
>  	int subsystem_vendor;
> @@ -118,6 +124,12 @@ static int intel_dmi_no_pps_backlight(const struct dmi_system_id *id)
>  	return 1;
>  }
>  
> +static int intel_dmi_auo_12701_21229_enable_dpcd_backlight(const struct dmi_system_id *id)
> +{
> +	DRM_INFO("Display AUO model 12701 and 21229 DPCD backlight control on %s\n", id->ident);
> +	return 1;
> +}
> +
>  static const struct intel_dmi_quirk intel_dmi_quirks[] = {
>  	{
>  		.dmi_id_list = &(const struct dmi_system_id[]) {
> @@ -164,6 +176,36 @@ static const struct intel_dmi_quirk intel_dmi_quirks[] = {
>  		},
>  		.hook = quirk_no_pps_backlight_power_hook,
>  	},
> +	{
> +		.dmi_id_list = &(const struct dmi_system_id[]) {
> +			{
> +				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
> +				.ident = "TUXEDO DX1708",
> +				.matches = {DMI_MATCH(DMI_BOARD_NAME, "N8xEJEK"),
> +				},
> +			},
> +			{
> +				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
> +				.ident = "TUXEDO InsanityBook 15 v1",
> +				.matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HP"),
> +				},
> +			},
> +			{
> +				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
> +				.ident = "TUXEDO InsanityBook 15 v1",
> +				.matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HR"),
> +				},
> +			},
> +			{
> +				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
> +				.ident = "TUXEDO InsanityBook 15 v1",
> +				.matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HP,HR,HQ"),
> +				},
> +			},
> +			{ }
> +		},
> +		.hook = quirk_auo_12701_21229_enable_dpcd_backlight,
> +	},
>  };
>  
>  static struct intel_quirk intel_quirks[] = {
> diff --git a/drivers/gpu/drm/i915/display/intel_quirks.h b/drivers/gpu/drm/i915/display/intel_quirks.h
> index cafdebda75354..38bdbd65d7efb 100644
> --- a/drivers/gpu/drm/i915/display/intel_quirks.h
> +++ b/drivers/gpu/drm/i915/display/intel_quirks.h
> @@ -20,6 +20,7 @@ enum intel_quirk_id {
>  	QUIRK_LVDS_SSC_DISABLE,
>  	QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK,
>  	QUIRK_FW_SYNC_LEN,
> +	QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT,
>  };
>  
>  void intel_init_quirks(struct intel_display *display);
> -- 
> 2.43.0

-- 
Ville Syrjälä
Intel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* ✗ LGCI.VerificationFailed: failure for drm/i915/display: Add quirk to force backlight type on some TUXEDO devices
  2025-04-11 15:55 [PATCH 0/1] drm/i915/display: Add quirk to force backlight type on some TUXEDO devices Werner Sembach
  2025-04-11 15:55 ` [PATCH 1/1] " Werner Sembach
@ 2025-04-14 17:31 ` Patchwork
  1 sibling, 0 replies; 8+ messages in thread
From: Patchwork @ 2025-04-14 17:31 UTC (permalink / raw)
  To: Werner Sembach; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/display: Add quirk to force backlight type on some TUXEDO devices
URL   : https://patchwork.freedesktop.org/series/147704/
State : failure

== Summary ==

Address 'wse@tuxedocomputers.com' is not on the allowlist!
Exception occurred during validation, bailing out!



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/1] drm/i915/display: Add quirk to force backlight type on some TUXEDO devices
  2025-04-11 18:56   ` Ville Syrjälä
@ 2025-04-15 15:48     ` Werner Sembach
  2025-07-22 11:40       ` Werner Sembach
  0 siblings, 1 reply; 8+ messages in thread
From: Werner Sembach @ 2025-04-15 15:48 UTC (permalink / raw)
  To: Ville Syrjälä
  Cc: jani.nikula, rodrigo.vivi, joonas.lahtinen, tursulin, airlied,
	simona, intel-gfx, intel-xe, dri-devel, linux-kernel

Hi,

Am 11.04.25 um 20:56 schrieb Ville Syrjälä:
> On Fri, Apr 11, 2025 at 05:55:08PM +0200, Werner Sembach wrote:
>> 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.
>>
>> This could already be archived via a module parameter, but this patch adds
>> a quirk to apply this by default on the mentioned device + panel
>> combinations.
> Why aren't you fixing the VBT to be correct in the first place?

I don't have access to the firmware source code and these are quite old devices 
so I also can't request a fix from the ODM. Besides: it can be quite hard to 
explain to the ODM what exactly the problem is if it doesn't also affect Windows.

Best regards,

Werner Sembach

>
>> Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
>> Cc: stable@vger.kernel.org
>> ---
>>   .../drm/i915/display/intel_dp_aux_backlight.c | 14 ++++++-
>>   drivers/gpu/drm/i915/display/intel_quirks.c   | 42 +++++++++++++++++++
>>   drivers/gpu/drm/i915/display/intel_quirks.h   |  1 +
>>   3 files changed, 56 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 c846ef4acf5b2..0cac04c98a3e3 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
>> @@ -34,12 +34,14 @@
>>    * for some reason.
>>    */
>>   
>> +#include <drm/drm_edid.h>
>>   #include "i915_utils.h"
>>   #include "intel_backlight.h"
>>   #include "intel_display_core.h"
>>   #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
>> @@ -607,11 +609,21 @@ 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;
>> +	u32 pnl_id;
>>   
>>   	/* Check the VBT and user's module parameters to figure out which
>>   	 * interfaces to probe
>>   	 */
>> -	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_quirk(display, QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT)) {
>> +		pnl_id = drm_edid_get_panel_id(panel->fixed_edid);
>> +		if (pnl_id == drm_edid_encode_panel_id('A', 'U', 'O', 0x319d) ||
>> +		    pnl_id == drm_edid_encode_panel_id('A', 'U', 'O', 0x52ed))
>> +			enable_dpcd_backlight = INTEL_DP_AUX_BACKLIGHT_ON;
>> +	}
>> +	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 8b30e9fd936e7..6f724e5712664 100644
>> --- a/drivers/gpu/drm/i915/display/intel_quirks.c
>> +++ b/drivers/gpu/drm/i915/display/intel_quirks.c
>> @@ -78,6 +78,12 @@ static void quirk_fw_sync_len(struct intel_dp *intel_dp)
>>   	drm_info(display->drm, "Applying Fast Wake sync pulse count quirk\n");
>>   }
>>   
>> +static void quirk_auo_12701_21229_enable_dpcd_backlight(struct intel_display *display)
>> +{
>> +	intel_set_quirk(display, QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT);
>> +	drm_info(display->drm, "Applying Display AUO Model 12701 and 21229 Enable DPCD Backlight quirk\n");
>> +}
>> +
>>   struct intel_quirk {
>>   	int device;
>>   	int subsystem_vendor;
>> @@ -118,6 +124,12 @@ static int intel_dmi_no_pps_backlight(const struct dmi_system_id *id)
>>   	return 1;
>>   }
>>   
>> +static int intel_dmi_auo_12701_21229_enable_dpcd_backlight(const struct dmi_system_id *id)
>> +{
>> +	DRM_INFO("Display AUO model 12701 and 21229 DPCD backlight control on %s\n", id->ident);
>> +	return 1;
>> +}
>> +
>>   static const struct intel_dmi_quirk intel_dmi_quirks[] = {
>>   	{
>>   		.dmi_id_list = &(const struct dmi_system_id[]) {
>> @@ -164,6 +176,36 @@ static const struct intel_dmi_quirk intel_dmi_quirks[] = {
>>   		},
>>   		.hook = quirk_no_pps_backlight_power_hook,
>>   	},
>> +	{
>> +		.dmi_id_list = &(const struct dmi_system_id[]) {
>> +			{
>> +				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
>> +				.ident = "TUXEDO DX1708",
>> +				.matches = {DMI_MATCH(DMI_BOARD_NAME, "N8xEJEK"),
>> +				},
>> +			},
>> +			{
>> +				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
>> +				.ident = "TUXEDO InsanityBook 15 v1",
>> +				.matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HP"),
>> +				},
>> +			},
>> +			{
>> +				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
>> +				.ident = "TUXEDO InsanityBook 15 v1",
>> +				.matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HR"),
>> +				},
>> +			},
>> +			{
>> +				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
>> +				.ident = "TUXEDO InsanityBook 15 v1",
>> +				.matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HP,HR,HQ"),
>> +				},
>> +			},
>> +			{ }
>> +		},
>> +		.hook = quirk_auo_12701_21229_enable_dpcd_backlight,
>> +	},
>>   };
>>   
>>   static struct intel_quirk intel_quirks[] = {
>> diff --git a/drivers/gpu/drm/i915/display/intel_quirks.h b/drivers/gpu/drm/i915/display/intel_quirks.h
>> index cafdebda75354..38bdbd65d7efb 100644
>> --- a/drivers/gpu/drm/i915/display/intel_quirks.h
>> +++ b/drivers/gpu/drm/i915/display/intel_quirks.h
>> @@ -20,6 +20,7 @@ enum intel_quirk_id {
>>   	QUIRK_LVDS_SSC_DISABLE,
>>   	QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK,
>>   	QUIRK_FW_SYNC_LEN,
>> +	QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT,
>>   };
>>   
>>   void intel_init_quirks(struct intel_display *display);
>> -- 
>> 2.43.0

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/1] drm/i915/display: Add quirk to force backlight type on some TUXEDO devices
  2025-04-11 15:55 ` [PATCH 1/1] " Werner Sembach
  2025-04-11 18:56   ` Ville Syrjälä
@ 2025-06-23 17:45   ` Werner Sembach
  1 sibling, 0 replies; 8+ messages in thread
From: Werner Sembach @ 2025-06-23 17:45 UTC (permalink / raw)
  To: jani.nikula, rodrigo.vivi, joonas.lahtinen, tursulin, airlied,
	simona
  Cc: intel-gfx, intel-xe, dri-devel, linux-kernel

gentle bump

Am 11.04.25 um 17:55 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.
>
> This could already be archived via a module parameter, but this patch adds
> a quirk to apply this by default on the mentioned device + panel
> combinations.
>
> Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
> Cc: stable@vger.kernel.org
> ---
>   .../drm/i915/display/intel_dp_aux_backlight.c | 14 ++++++-
>   drivers/gpu/drm/i915/display/intel_quirks.c   | 42 +++++++++++++++++++
>   drivers/gpu/drm/i915/display/intel_quirks.h   |  1 +
>   3 files changed, 56 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 c846ef4acf5b2..0cac04c98a3e3 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> @@ -34,12 +34,14 @@
>    * for some reason.
>    */
>   
> +#include <drm/drm_edid.h>
>   #include "i915_utils.h"
>   #include "intel_backlight.h"
>   #include "intel_display_core.h"
>   #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
> @@ -607,11 +609,21 @@ 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;
> +	u32 pnl_id;
>   
>   	/* Check the VBT and user's module parameters to figure out which
>   	 * interfaces to probe
>   	 */
> -	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_quirk(display, QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT)) {
> +		pnl_id = drm_edid_get_panel_id(panel->fixed_edid);
> +		if (pnl_id == drm_edid_encode_panel_id('A', 'U', 'O', 0x319d) ||
> +		    pnl_id == drm_edid_encode_panel_id('A', 'U', 'O', 0x52ed))
> +			enable_dpcd_backlight = INTEL_DP_AUX_BACKLIGHT_ON;
> +	}
> +	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 8b30e9fd936e7..6f724e5712664 100644
> --- a/drivers/gpu/drm/i915/display/intel_quirks.c
> +++ b/drivers/gpu/drm/i915/display/intel_quirks.c
> @@ -78,6 +78,12 @@ static void quirk_fw_sync_len(struct intel_dp *intel_dp)
>   	drm_info(display->drm, "Applying Fast Wake sync pulse count quirk\n");
>   }
>   
> +static void quirk_auo_12701_21229_enable_dpcd_backlight(struct intel_display *display)
> +{
> +	intel_set_quirk(display, QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT);
> +	drm_info(display->drm, "Applying Display AUO Model 12701 and 21229 Enable DPCD Backlight quirk\n");
> +}
> +
>   struct intel_quirk {
>   	int device;
>   	int subsystem_vendor;
> @@ -118,6 +124,12 @@ static int intel_dmi_no_pps_backlight(const struct dmi_system_id *id)
>   	return 1;
>   }
>   
> +static int intel_dmi_auo_12701_21229_enable_dpcd_backlight(const struct dmi_system_id *id)
> +{
> +	DRM_INFO("Display AUO model 12701 and 21229 DPCD backlight control on %s\n", id->ident);
> +	return 1;
> +}
> +
>   static const struct intel_dmi_quirk intel_dmi_quirks[] = {
>   	{
>   		.dmi_id_list = &(const struct dmi_system_id[]) {
> @@ -164,6 +176,36 @@ static const struct intel_dmi_quirk intel_dmi_quirks[] = {
>   		},
>   		.hook = quirk_no_pps_backlight_power_hook,
>   	},
> +	{
> +		.dmi_id_list = &(const struct dmi_system_id[]) {
> +			{
> +				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
> +				.ident = "TUXEDO DX1708",
> +				.matches = {DMI_MATCH(DMI_BOARD_NAME, "N8xEJEK"),
> +				},
> +			},
> +			{
> +				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
> +				.ident = "TUXEDO InsanityBook 15 v1",
> +				.matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HP"),
> +				},
> +			},
> +			{
> +				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
> +				.ident = "TUXEDO InsanityBook 15 v1",
> +				.matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HR"),
> +				},
> +			},
> +			{
> +				.callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
> +				.ident = "TUXEDO InsanityBook 15 v1",
> +				.matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HP,HR,HQ"),
> +				},
> +			},
> +			{ }
> +		},
> +		.hook = quirk_auo_12701_21229_enable_dpcd_backlight,
> +	},
>   };
>   
>   static struct intel_quirk intel_quirks[] = {
> diff --git a/drivers/gpu/drm/i915/display/intel_quirks.h b/drivers/gpu/drm/i915/display/intel_quirks.h
> index cafdebda75354..38bdbd65d7efb 100644
> --- a/drivers/gpu/drm/i915/display/intel_quirks.h
> +++ b/drivers/gpu/drm/i915/display/intel_quirks.h
> @@ -20,6 +20,7 @@ enum intel_quirk_id {
>   	QUIRK_LVDS_SSC_DISABLE,
>   	QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK,
>   	QUIRK_FW_SYNC_LEN,
> +	QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT,
>   };
>   
>   void intel_init_quirks(struct intel_display *display);

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/1] drm/i915/display: Add quirk to force backlight type on some TUXEDO devices
  2025-04-15 15:48     ` Werner Sembach
@ 2025-07-22 11:40       ` Werner Sembach
  2025-08-22 21:21         ` Werner Sembach
  0 siblings, 1 reply; 8+ messages in thread
From: Werner Sembach @ 2025-07-22 11:40 UTC (permalink / raw)
  To: Ville Syrjälä
  Cc: jani.nikula, rodrigo.vivi, joonas.lahtinen, tursulin, airlied,
	simona, intel-gfx, intel-xe, dri-devel, linux-kernel

Hi,

Am 15.04.25 um 17:48 schrieb Werner Sembach:
> Hi,
>
> Am 11.04.25 um 20:56 schrieb Ville Syrjälä:
>> On Fri, Apr 11, 2025 at 05:55:08PM +0200, Werner Sembach wrote:
>>> 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.
>>>
>>> This could already be archived via a module parameter, but this patch adds
>>> a quirk to apply this by default on the mentioned device + panel
>>> combinations.
>> Why aren't you fixing the VBT to be correct in the first place?
>
> I don't have access to the firmware source code and these are quite old 
> devices so I also can't request a fix from the ODM. Besides: it can be quite 
> hard to explain to the ODM what exactly the problem is if it doesn't also 
> affect Windows.

TBH I don't know what VBT stands for, I just assumed it has to to with the 
displays firmware?

Unlike I wrote in the cover letter we actually still had an affected device in 
our archives -> the issue persists and the quirk is still necessary.

Best Regards,

Werner

>
> Best regards,
>
> Werner Sembach
>
>>
>>> Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
>>> Cc: stable@vger.kernel.org
>>> ---
>>>   .../drm/i915/display/intel_dp_aux_backlight.c | 14 ++++++-
>>>   drivers/gpu/drm/i915/display/intel_quirks.c   | 42 +++++++++++++++++++
>>>   drivers/gpu/drm/i915/display/intel_quirks.h   |  1 +
>>>   3 files changed, 56 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 c846ef4acf5b2..0cac04c98a3e3 100644
>>> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
>>> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
>>> @@ -34,12 +34,14 @@
>>>    * for some reason.
>>>    */
>>>   +#include <drm/drm_edid.h>
>>>   #include "i915_utils.h"
>>>   #include "intel_backlight.h"
>>>   #include "intel_display_core.h"
>>>   #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
>>> @@ -607,11 +609,21 @@ 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;
>>> +    u32 pnl_id;
>>>         /* Check the VBT and user's module parameters to figure out which
>>>        * interfaces to probe
>>>        */
>>> -    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_quirk(display, 
>>> QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT)) {
>>> +        pnl_id = drm_edid_get_panel_id(panel->fixed_edid);
>>> +        if (pnl_id == drm_edid_encode_panel_id('A', 'U', 'O', 0x319d) ||
>>> +            pnl_id == drm_edid_encode_panel_id('A', 'U', 'O', 0x52ed))
>>> +            enable_dpcd_backlight = INTEL_DP_AUX_BACKLIGHT_ON;
>>> +    }
>>> +    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 8b30e9fd936e7..6f724e5712664 100644
>>> --- a/drivers/gpu/drm/i915/display/intel_quirks.c
>>> +++ b/drivers/gpu/drm/i915/display/intel_quirks.c
>>> @@ -78,6 +78,12 @@ static void quirk_fw_sync_len(struct intel_dp *intel_dp)
>>>       drm_info(display->drm, "Applying Fast Wake sync pulse count quirk\n");
>>>   }
>>>   +static void quirk_auo_12701_21229_enable_dpcd_backlight(struct 
>>> intel_display *display)
>>> +{
>>> +    intel_set_quirk(display, QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT);
>>> +    drm_info(display->drm, "Applying Display AUO Model 12701 and 21229 
>>> Enable DPCD Backlight quirk\n");
>>> +}
>>> +
>>>   struct intel_quirk {
>>>       int device;
>>>       int subsystem_vendor;
>>> @@ -118,6 +124,12 @@ static int intel_dmi_no_pps_backlight(const struct 
>>> dmi_system_id *id)
>>>       return 1;
>>>   }
>>>   +static int intel_dmi_auo_12701_21229_enable_dpcd_backlight(const struct 
>>> dmi_system_id *id)
>>> +{
>>> +    DRM_INFO("Display AUO model 12701 and 21229 DPCD backlight control on 
>>> %s\n", id->ident);
>>> +    return 1;
>>> +}
>>> +
>>>   static const struct intel_dmi_quirk intel_dmi_quirks[] = {
>>>       {
>>>           .dmi_id_list = &(const struct dmi_system_id[]) {
>>> @@ -164,6 +176,36 @@ static const struct intel_dmi_quirk intel_dmi_quirks[] = {
>>>           },
>>>           .hook = quirk_no_pps_backlight_power_hook,
>>>       },
>>> +    {
>>> +        .dmi_id_list = &(const struct dmi_system_id[]) {
>>> +            {
>>> +                .callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
>>> +                .ident = "TUXEDO DX1708",
>>> +                .matches = {DMI_MATCH(DMI_BOARD_NAME, "N8xEJEK"),
>>> +                },
>>> +            },
>>> +            {
>>> +                .callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
>>> +                .ident = "TUXEDO InsanityBook 15 v1",
>>> +                .matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HP"),
>>> +                },
>>> +            },
>>> +            {
>>> +                .callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
>>> +                .ident = "TUXEDO InsanityBook 15 v1",
>>> +                .matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HR"),
>>> +                },
>>> +            },
>>> +            {
>>> +                .callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
>>> +                .ident = "TUXEDO InsanityBook 15 v1",
>>> +                .matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HP,HR,HQ"),
>>> +                },
>>> +            },
>>> +            { }
>>> +        },
>>> +        .hook = quirk_auo_12701_21229_enable_dpcd_backlight,
>>> +    },
>>>   };
>>>     static struct intel_quirk intel_quirks[] = {
>>> diff --git a/drivers/gpu/drm/i915/display/intel_quirks.h 
>>> b/drivers/gpu/drm/i915/display/intel_quirks.h
>>> index cafdebda75354..38bdbd65d7efb 100644
>>> --- a/drivers/gpu/drm/i915/display/intel_quirks.h
>>> +++ b/drivers/gpu/drm/i915/display/intel_quirks.h
>>> @@ -20,6 +20,7 @@ enum intel_quirk_id {
>>>       QUIRK_LVDS_SSC_DISABLE,
>>>       QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK,
>>>       QUIRK_FW_SYNC_LEN,
>>> +    QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT,
>>>   };
>>>     void intel_init_quirks(struct intel_display *display);
>>> -- 
>>> 2.43.0

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/1] drm/i915/display: Add quirk to force backlight type on some TUXEDO devices
  2025-07-22 11:40       ` Werner Sembach
@ 2025-08-22 21:21         ` Werner Sembach
  0 siblings, 0 replies; 8+ messages in thread
From: Werner Sembach @ 2025-08-22 21:21 UTC (permalink / raw)
  To: Ville Syrjälä
  Cc: jani.nikula, rodrigo.vivi, joonas.lahtinen, tursulin, airlied,
	simona, intel-gfx, intel-xe, dri-devel, linux-kernel

Hi,

Am 22.07.25 um 13:40 schrieb Werner Sembach:
> Hi,
>
> Am 15.04.25 um 17:48 schrieb Werner Sembach:
>> Hi,
>>
>> Am 11.04.25 um 20:56 schrieb Ville Syrjälä:
>>> On Fri, Apr 11, 2025 at 05:55:08PM +0200, Werner Sembach wrote:
>>>> 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.
>>>>
>>>> This could already be archived via a module parameter, but this patch adds
>>>> a quirk to apply this by default on the mentioned device + panel
>>>> combinations.
>>> Why aren't you fixing the VBT to be correct in the first place?
>>
>> I don't have access to the firmware source code and these are quite old 
>> devices so I also can't request a fix from the ODM. Besides: it can be quite 
>> hard to explain to the ODM what exactly the problem is if it doesn't also 
>> affect Windows.
>
> TBH I don't know what VBT stands for, I just assumed it has to to with the 
> displays firmware?
>
> Unlike I wrote in the cover letter we actually still had an affected device in 
> our archives -> the issue persists and the quirk is still necessary.
Hope a gentle bump here is ok
>
> Best Regards,
>
> Werner
>
>>
>> Best regards,
>>
>> Werner Sembach
>>
>>>
>>>> Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
>>>> Cc: stable@vger.kernel.org
>>>> ---
>>>>   .../drm/i915/display/intel_dp_aux_backlight.c | 14 ++++++-
>>>>   drivers/gpu/drm/i915/display/intel_quirks.c   | 42 +++++++++++++++++++
>>>>   drivers/gpu/drm/i915/display/intel_quirks.h   |  1 +
>>>>   3 files changed, 56 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 c846ef4acf5b2..0cac04c98a3e3 100644
>>>> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
>>>> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
>>>> @@ -34,12 +34,14 @@
>>>>    * for some reason.
>>>>    */
>>>>   +#include <drm/drm_edid.h>
>>>>   #include "i915_utils.h"
>>>>   #include "intel_backlight.h"
>>>>   #include "intel_display_core.h"
>>>>   #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
>>>> @@ -607,11 +609,21 @@ 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;
>>>> +    u32 pnl_id;
>>>>         /* Check the VBT and user's module parameters to figure out which
>>>>        * interfaces to probe
>>>>        */
>>>> -    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_quirk(display, 
>>>> QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT)) {
>>>> +        pnl_id = drm_edid_get_panel_id(panel->fixed_edid);
>>>> +        if (pnl_id == drm_edid_encode_panel_id('A', 'U', 'O', 0x319d) ||
>>>> +            pnl_id == drm_edid_encode_panel_id('A', 'U', 'O', 0x52ed))
>>>> +            enable_dpcd_backlight = INTEL_DP_AUX_BACKLIGHT_ON;
>>>> +    }
>>>> +    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 8b30e9fd936e7..6f724e5712664 100644
>>>> --- a/drivers/gpu/drm/i915/display/intel_quirks.c
>>>> +++ b/drivers/gpu/drm/i915/display/intel_quirks.c
>>>> @@ -78,6 +78,12 @@ static void quirk_fw_sync_len(struct intel_dp *intel_dp)
>>>>       drm_info(display->drm, "Applying Fast Wake sync pulse count quirk\n");
>>>>   }
>>>>   +static void quirk_auo_12701_21229_enable_dpcd_backlight(struct 
>>>> intel_display *display)
>>>> +{
>>>> +    intel_set_quirk(display, QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT);
>>>> +    drm_info(display->drm, "Applying Display AUO Model 12701 and 21229 
>>>> Enable DPCD Backlight quirk\n");
>>>> +}
>>>> +
>>>>   struct intel_quirk {
>>>>       int device;
>>>>       int subsystem_vendor;
>>>> @@ -118,6 +124,12 @@ static int intel_dmi_no_pps_backlight(const struct 
>>>> dmi_system_id *id)
>>>>       return 1;
>>>>   }
>>>>   +static int intel_dmi_auo_12701_21229_enable_dpcd_backlight(const struct 
>>>> dmi_system_id *id)
>>>> +{
>>>> +    DRM_INFO("Display AUO model 12701 and 21229 DPCD backlight control on 
>>>> %s\n", id->ident);
>>>> +    return 1;
>>>> +}
>>>> +
>>>>   static const struct intel_dmi_quirk intel_dmi_quirks[] = {
>>>>       {
>>>>           .dmi_id_list = &(const struct dmi_system_id[]) {
>>>> @@ -164,6 +176,36 @@ static const struct intel_dmi_quirk intel_dmi_quirks[] 
>>>> = {
>>>>           },
>>>>           .hook = quirk_no_pps_backlight_power_hook,
>>>>       },
>>>> +    {
>>>> +        .dmi_id_list = &(const struct dmi_system_id[]) {
>>>> +            {
>>>> +                .callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
>>>> +                .ident = "TUXEDO DX1708",
>>>> +                .matches = {DMI_MATCH(DMI_BOARD_NAME, "N8xEJEK"),
>>>> +                },
>>>> +            },
>>>> +            {
>>>> +                .callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
>>>> +                .ident = "TUXEDO InsanityBook 15 v1",
>>>> +                .matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HP"),
>>>> +                },
>>>> +            },
>>>> +            {
>>>> +                .callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
>>>> +                .ident = "TUXEDO InsanityBook 15 v1",
>>>> +                .matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HR"),
>>>> +                },
>>>> +            },
>>>> +            {
>>>> +                .callback = intel_dmi_auo_12701_21229_enable_dpcd_backlight,
>>>> +                .ident = "TUXEDO InsanityBook 15 v1",
>>>> +                .matches = {DMI_MATCH(DMI_BOARD_NAME, "P95_HP,HR,HQ"),
>>>> +                },
>>>> +            },
>>>> +            { }
>>>> +        },
>>>> +        .hook = quirk_auo_12701_21229_enable_dpcd_backlight,
>>>> +    },
>>>>   };
>>>>     static struct intel_quirk intel_quirks[] = {
>>>> diff --git a/drivers/gpu/drm/i915/display/intel_quirks.h 
>>>> b/drivers/gpu/drm/i915/display/intel_quirks.h
>>>> index cafdebda75354..38bdbd65d7efb 100644
>>>> --- a/drivers/gpu/drm/i915/display/intel_quirks.h
>>>> +++ b/drivers/gpu/drm/i915/display/intel_quirks.h
>>>> @@ -20,6 +20,7 @@ enum intel_quirk_id {
>>>>       QUIRK_LVDS_SSC_DISABLE,
>>>>       QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK,
>>>>       QUIRK_FW_SYNC_LEN,
>>>> +    QUIRK_AUO_12701_21229_ENABLE_DPCD_BACKLIGHT,
>>>>   };
>>>>     void intel_init_quirks(struct intel_display *display);
>>>> -- 
>>>> 2.43.0

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-08-25 12:39 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-11 15:55 [PATCH 0/1] drm/i915/display: Add quirk to force backlight type on some TUXEDO devices Werner Sembach
2025-04-11 15:55 ` [PATCH 1/1] " Werner Sembach
2025-04-11 18:56   ` Ville Syrjälä
2025-04-15 15:48     ` Werner Sembach
2025-07-22 11:40       ` Werner Sembach
2025-08-22 21:21         ` Werner Sembach
2025-06-23 17:45   ` Werner Sembach
2025-04-14 17:31 ` ✗ LGCI.VerificationFailed: failure for " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).