Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: "Jouni Högander" <jouni.hogander@intel.com>,
	intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Cc: "Jouni Högander" <jouni.hogander@intel.com>,
	"Mika Kahola" <mika.kahola@intel.com>
Subject: Re: [PATCH] drm/i915/psr: Fixes for Dell XPS DA14260 quirk
Date: Fri, 20 Mar 2026 10:46:40 +0200	[thread overview]
Message-ID: <2392dd1f93c683734a8d1241655ca876d95830b9@intel.com> (raw)
In-Reply-To: <20260320080403.1396926-1-jouni.hogander@intel.com>

On Fri, 20 Mar 2026, Jouni Högander <jouni.hogander@intel.com> wrote:
> Dell seems to be changing device ID even within same device model. Due to
> this we need to ignore device ID when applying quirk for Dell XPS 14
> DA14260. Do this by adding DEVICE_ID_ANY and assign it to Dell XPS 14
> DA14260 quirk. Also apply the quirk only for eDP Panel Replay.
>
> Fixes: 45c77d4bf8d4 ("drm/i915/psr: Disable Panel Replay on Dell XPS 14 DA14260 as a quirk")
> Cc: Mika Kahola <mika.kahola@intel.com>
> Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_psr.c    |  3 ++-
>  drivers/gpu/drm/i915/display/intel_quirks.c | 16 ++++++++++------
>  drivers/gpu/drm/i915/display/intel_quirks.h |  2 +-
>  3 files changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
> index b319e5bd6274..2f1b48cd8efd 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -610,7 +610,8 @@ static void _panel_replay_init_dpcd(struct intel_dp *intel_dp, struct intel_conn
>  	if (intel_dp->mst_detect == DRM_DP_MST)
>  		return;
>  
> -	if (intel_has_dpcd_quirk(intel_dp, QUIRK_DISABLE_PANEL_REPLAY)) {
> +	if (intel_dp_is_edp(intel_dp) &&
> +	    intel_has_dpcd_quirk(intel_dp, QUIRK_DISABLE_EDP_PANEL_REPLAY)) {

I'll note that intel_has_dpcd_quirk() could internally limit each quirk
for eDP/non-eDP. But that's for future.

BR,
Jani.

>  		drm_dbg_kms(display->drm,
>  			    "Panel Replay support not currently available for this setup\n");
>  		return;
> diff --git a/drivers/gpu/drm/i915/display/intel_quirks.c b/drivers/gpu/drm/i915/display/intel_quirks.c
> index 8f1bf8f418ec..883f297d4b83 100644
> --- a/drivers/gpu/drm/i915/display/intel_quirks.c
> +++ b/drivers/gpu/drm/i915/display/intel_quirks.c
> @@ -86,11 +86,11 @@ static void quirk_edp_limit_rate_hbr2(struct intel_display *display)
>  	drm_info(display->drm, "Applying eDP Limit rate to HBR2 quirk\n");
>  }
>  
> -static void quirk_disable_panel_replay(struct intel_dp *intel_dp)
> +static void quirk_disable_edp_panel_replay(struct intel_dp *intel_dp)
>  {
>  	struct intel_display *display = to_intel_display(intel_dp);
>  
> -	intel_set_dpcd_quirk(intel_dp, QUIRK_DISABLE_PANEL_REPLAY);
> +	intel_set_dpcd_quirk(intel_dp, QUIRK_DISABLE_EDP_PANEL_REPLAY);
>  	drm_info(display->drm, "Applying disable Panel Replay quirk\n");
>  }
>  
> @@ -116,6 +116,8 @@ struct intel_dpcd_quirk {
>  
>  #define SINK_DEVICE_ID_ANY	SINK_DEVICE_ID(0, 0, 0, 0, 0, 0)
>  
> +#define DEVICE_ID_ANY		0
> +
>  /* For systems that don't have a meaningful PCI subdevice/subvendor ID */
>  struct intel_dmi_quirk {
>  	void (*hook)(struct intel_display *display);
> @@ -261,11 +263,11 @@ static const struct intel_dpcd_quirk intel_dpcd_quirks[] = {
>  	},
>  	/* Dell XPS 14 DA14260 */
>  	{
> -		.device = 0xb080,
> +		.device = DEVICE_ID_ANY,
>  		.subsystem_vendor = 0x1028,
>  		.subsystem_device = 0x0db9,
>  		.sink_oui = SINK_OUI(0x00, 0x22, 0xb9),
> -		.hook = quirk_disable_panel_replay,
> +		.hook = quirk_disable_edp_panel_replay,
>  	},
>  };
>  
> @@ -277,7 +279,8 @@ void intel_init_quirks(struct intel_display *display)
>  	for (i = 0; i < ARRAY_SIZE(intel_quirks); i++) {
>  		struct intel_quirk *q = &intel_quirks[i];
>  
> -		if (d->device == q->device &&
> +		if ((d->device == q->device ||
> +		     q->device == DEVICE_ID_ANY) &&
>  		    (d->subsystem_vendor == q->subsystem_vendor ||
>  		     q->subsystem_vendor == PCI_ANY_ID) &&
>  		    (d->subsystem_device == q->subsystem_device ||
> @@ -300,7 +303,8 @@ void intel_init_dpcd_quirks(struct intel_dp *intel_dp,
>  	for (i = 0; i < ARRAY_SIZE(intel_dpcd_quirks); i++) {
>  		const struct intel_dpcd_quirk *q = &intel_dpcd_quirks[i];
>  
> -		if (d->device == q->device &&
> +		if ((d->device == q->device ||
> +		     q->device == DEVICE_ID_ANY) &&
>  		    (d->subsystem_vendor == q->subsystem_vendor ||
>  		     q->subsystem_vendor == PCI_ANY_ID) &&
>  		    (d->subsystem_device == q->subsystem_device ||
> diff --git a/drivers/gpu/drm/i915/display/intel_quirks.h b/drivers/gpu/drm/i915/display/intel_quirks.h
> index 77e490caed0d..83214eb94b0c 100644
> --- a/drivers/gpu/drm/i915/display/intel_quirks.h
> +++ b/drivers/gpu/drm/i915/display/intel_quirks.h
> @@ -21,7 +21,7 @@ enum intel_quirk_id {
>  	QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK,
>  	QUIRK_FW_SYNC_LEN,
>  	QUIRK_EDP_LIMIT_RATE_HBR2,
> -	QUIRK_DISABLE_PANEL_REPLAY,
> +	QUIRK_DISABLE_EDP_PANEL_REPLAY,
>  };
>  
>  void intel_init_quirks(struct intel_display *display);

-- 
Jani Nikula, Intel

  reply	other threads:[~2026-03-20  8:46 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-20  8:04 [PATCH] drm/i915/psr: Fixes for Dell XPS DA14260 quirk Jouni Högander
2026-03-20  8:46 ` Jani Nikula [this message]
2026-03-20 12:03   ` Hogander, Jouni
2026-03-24 12:37     ` Kahola, Mika
2026-03-20  9:09 ` ✓ CI.KUnit: success for " Patchwork
2026-03-20  9:44 ` ✓ Xe.CI.BAT: " Patchwork
2026-03-20 13:29 ` ✓ CI.KUnit: success for drm/i915/psr: Fixes for Dell XPS DA14260 quirk (rev2) Patchwork
2026-03-20 14:09 ` ✓ Xe.CI.BAT: " Patchwork
2026-03-21 13:51 ` ✗ Xe.CI.FULL: failure " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2392dd1f93c683734a8d1241655ca876d95830b9@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=jouni.hogander@intel.com \
    --cc=mika.kahola@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox