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.

Fixes: 45c77d4bf8d4 ("drm/i915/psr: Disable Panel Replay on Dell XPS 14 DA14260 
as a quirk")
Cc: Mika Kahola <[email protected]>
Signed-off-by: Jouni Högander <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_quirks.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_quirks.c 
b/drivers/gpu/drm/i915/display/intel_quirks.c
index 8f1bf8f418ec7..6fecce259fb05 100644
--- a/drivers/gpu/drm/i915/display/intel_quirks.c
+++ b/drivers/gpu/drm/i915/display/intel_quirks.c
@@ -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,7 +263,7 @@ 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),
@@ -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 ||
-- 
2.43.0

Reply via email to