From: "Hogander, Jouni" <jouni.hogander@intel.com>
To: "intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
"intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
"jani.nikula@linux.intel.com" <jani.nikula@linux.intel.com>
Cc: "Kahola, Mika" <mika.kahola@intel.com>
Subject: Re: [PATCH] drm/i915/psr: Fixes for Dell XPS DA14260 quirk
Date: Fri, 20 Mar 2026 12:03:19 +0000 [thread overview]
Message-ID: <66dabe45e9253b925568c40ea4364030a0d60b32.camel@intel.com> (raw)
In-Reply-To: <2392dd1f93c683734a8d1241655ca876d95830b9@intel.com>
On Fri, 2026-03-20 at 10:46 +0200, Jani Nikula wrote:
> 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.
Yeah, there was also comment from Ville to combine all different quirks
here and just use these *_*_ANY for everything that is to be ignored. I
will add reworking this into my todo list.
BR,
Jouni Högander
>
> 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);
>
next prev parent reply other threads:[~2026-03-20 12:03 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
2026-03-20 12:03 ` Hogander, Jouni [this message]
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=66dabe45e9253b925568c40ea4364030a0d60b32.camel@intel.com \
--to=jouni.hogander@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@linux.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