lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <3f9a6ad3-d892-4177-9b84-677b90d76e89@tuxedocomputers.com>
Date: Thu, 17 Jul 2025 10:29:45 +0200
From: Tim Guttzeit <t.guttzeit@...edocomputers.com>
To: "Murthy, Arun R" <arun.r.murthy@...el.com>,
 Werner Sembach <wse@...edocomputers.com>,
 Jani Nikula <jani.nikula@...ux.intel.com>,
 "Vivi, Rodrigo" <rodrigo.vivi@...el.com>,
 Joonas Lahtinen <joonas.lahtinen@...ux.intel.com>,
 Tvrtko Ursulin <tursulin@...ulin.net>, David Airlie <airlied@...il.com>,
 Simona Vetter <simona@...ll.ch>
Cc: "intel-gfx@...ts.freedesktop.org" <intel-gfx@...ts.freedesktop.org>,
 "intel-xe@...ts.freedesktop.org" <intel-xe@...ts.freedesktop.org>,
 "dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>,
 "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [RFC PATCH 1/1] drm/i915/display: Avoid unsupported 300Hz output
 mode on a TUXEDO device



Am 17.07.25 um 09:30 schrieb Murthy, Arun R:
> 
>> -----Original Message-----
>> From: Intel-gfx <intel-gfx-bounces@...ts.freedesktop.org> On Behalf Of 
>> Werner
>> Sembach
>> Sent: Saturday, July 5, 2025 12:34 AM
>> To: Jani Nikula <jani.nikula@...ux.intel.com>; Vivi, Rodrigo
>> <rodrigo.vivi@...el.com>; Joonas Lahtinen 
>> <joonas.lahtinen@...ux.intel.com>;
>> Tvrtko Ursulin <tursulin@...ulin.net>; David Airlie <airlied@...il.com>;
>> Simona Vetter <simona@...ll.ch>
>> Cc: Tim Guttzeit <t.guttzeit@...edocomputers.com>; Werner Sembach
>> <wse@...edocomputers.com>; intel-gfx@...ts.freedesktop.org; intel-
>> xe@...ts.freedesktop.org; dri-devel@...ts.freedesktop.org; linux-
>> kernel@...r.kernel.org
>> Subject: [RFC PATCH 1/1] drm/i915/display: Avoid unsupported 300Hz output
>> mode on a TUXEDO device
>>
>> From: Tim Guttzeit <t.guttzeit@...edocomputers.com>
>>
>> Removes all display modes with more than 240 Hz for the integrated 
>> display on
>> a TUXEDO Stellaris 16 Gen7, because using the iGPU with higer refresh 
>> rates
>> causes screen flicker.
>>
>> Signed-off-by: Tim Guttzeit <t.guttzeit@...edocomputers.com>
>> Co-developed-by: Werner Sembach <wse@...edocomputers.com>
>> Signed-off-by: Werner Sembach <wse@...edocomputers.com>
>> ---
>>  drivers/gpu/drm/i915/display/intel_dp.c     |  5 ++++
>>  drivers/gpu/drm/i915/display/intel_quirks.c | 30 +++++++++++++++++++++
>> drivers/gpu/drm/i915/display/intel_quirks.h |  1 +
>>  3 files changed, 36 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
>> b/drivers/gpu/drm/i915/display/intel_dp.c
>> index 640c43bf62d4c..5ce00cfe36ee1 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
>> @@ -1436,6 +1436,11 @@ intel_dp_mode_valid(struct drm_connector
>> *_connector,
>>      if (mode->clock < 10000)
>>          return MODE_CLOCK_LOW;
>>
>> +    if (intel_has_quirk(display, QUIRK_EDP_MAX_240HZ_HOOK) &&
>> +        intel_dp_is_edp(intel_dp) &&
>> +        drm_mode_vrefresh(mode) > 240)
>> +        return MODE_BAD;
>> +
> Adding a quirk for this is not the right approach. If this is not 
> supported by the display, should have been pruned by the driver.
> 

Thank you for your reply. The panel (NE160QDM-NZL) supports 300 Hz and 
advertises it. Also when running the system on its NVIDIA dGPU, it runs 
perfectly fine without the flickering and on 300 Hz. On the iGPU, which 
is apparently unable to support 300 Hz, it is not pruned, thus leading 
to the flickering.

Best regards,
Tim Guttzeit

> ------------->      fixed_mode = intel_panel_fixed_mode(connector, mode);
>>      if (intel_dp_is_edp(intel_dp) && fixed_mode) {
>>          status = intel_panel_mode_valid(connector, mode); diff --git
>> a/drivers/gpu/drm/i915/display/intel_quirks.c
>> b/drivers/gpu/drm/i915/display/intel_quirks.c
>> index a32fae510ed27..438ce2cb37a01 100644
>> --- a/drivers/gpu/drm/i915/display/intel_quirks.c
>> +++ b/drivers/gpu/drm/i915/display/intel_quirks.c
>> @@ -72,6 +72,12 @@ static void quirk_no_pps_backlight_power_hook(struct
>> intel_display *display)
>>      drm_info(display->drm, "Applying no pps backlight power 
>> quirk\n");  }
>>
>> +static void quirk_edp_max_240hz_hook(struct intel_display *display) {
>> +    intel_set_quirk(display, QUIRK_EDP_MAX_240HZ_HOOK);
>> +    drm_info(display->drm, "Applying max 240Hz quirk\n"); }
>> +
>>  static void quirk_fw_sync_len(struct intel_dp *intel_dp)  {
>>      struct intel_display *display = to_intel_display(intel_dp); @@ 
>> -120,6
>> +126,12 @@ static int intel_dmi_no_pps_backlight(const struct 
>> dmi_system_id
>> *id)
>>      return 1;
>>  }
>>
>> +static int intel_dmi_edp_max_240hz(const struct dmi_system_id *id) {
>> +    DRM_INFO("Restrict output refreshrate to maximum 240Hz %s\n", id-
>> >ident);
>> +    return 1;
>> +}
>> +
>>  static const struct intel_dmi_quirk intel_dmi_quirks[] = {
>>      {
>>          .dmi_id_list = &(const struct dmi_system_id[]) { @@ -166,6
>> +178,24 @@ 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_edp_max_240hz,
>> +                .ident = "TUXEDO Stellaris 16 Intel Gen7",
>> +                .matches =
>> {DMI_EXACT_MATCH(DMI_BOARD_NAME, "X6AR5xxY"),
>> +                },
>> +            },
>> +            {
>> +                .callback = intel_dmi_edp_max_240hz,
>> +                .ident = "TUXEDO Stellaris 16 Intel Gen7",
>> +                .matches =
>> {DMI_EXACT_MATCH(DMI_BOARD_NAME, "X6AR5xxY_mLED"),
>> +                },
>> +            },
>> +            { }
>> +        },
>> +        .hook = quirk_edp_max_240hz_hook,
>> +    },
>>  };
>>
>>  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..8fe3f3467106a 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_EDP_MAX_240HZ_HOOK,
>>  };
>>
>>  void intel_init_quirks(struct intel_display *display);
>> -- 
>> 2.43.0
> 
> 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ