]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/psr: Disable PSR2 on Xiaomi Book Pro 14 2026 as a quirk
authorJouni Högander <jouni.hogander@intel.com>
Fri, 17 Apr 2026 10:23:50 +0000 (13:23 +0300)
committerJouni Högander <jouni.hogander@intel.com>
Thu, 30 Apr 2026 07:19:10 +0000 (10:19 +0300)
Add new quirk (QUIRK_DISABLE_PSR2) for disabling PSR2 as a quirk for
problematic setups. Apply this newly added quirk on Xiaomi Book Pro 14
2026.

v2: logging adjusted

Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/work_items/7677
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
Link: https://patch.msgid.link/20260417102350.28328-1-jouni.hogander@intel.com
drivers/gpu/drm/i915/display/intel_psr.c
drivers/gpu/drm/i915/display/intel_quirks.c
drivers/gpu/drm/i915/display/intel_quirks.h

index 63c19958a9e3955cf0e940211abb264b93bae8e9..d1bae7d32617d54594ea80f991171ce2deb3a4c8 100644 (file)
@@ -695,6 +695,9 @@ static void _psr_init_dpcd(struct intel_dp *intel_dp, struct intel_connector *co
 
        connector->dp.psr_caps.sync_latency = intel_dp_get_sink_sync_latency(intel_dp);
 
+       if (intel_has_quirk(display, QUIRK_DISABLE_PSR2))
+               return;
+
        if (DISPLAY_VER(display) >= 9 &&
            connector->dp.psr_caps.dpcd[0] >= DP_PSR2_WITH_Y_COORD_IS_SUPPORTED) {
                bool y_req = connector->dp.psr_caps.dpcd[1] &
index b6e840bffd44d24a101829f0afc0e2bbc9a615d1..33245f44c0d50154b3ff712e41cb65132ac1b081 100644 (file)
@@ -94,6 +94,12 @@ static void quirk_disable_edp_panel_replay(struct intel_dp *intel_dp)
        drm_info(display->drm, "Applying disable Panel Replay quirk\n");
 }
 
+static void quirk_disable_psr2(struct intel_display *display)
+{
+       intel_set_quirk(display, QUIRK_DISABLE_PSR2);
+       drm_info(display->drm, "PSR2 support not currently available for this setup, applying disable PSR2 quirk\n");
+}
+
 struct intel_quirk {
        int device;
        int subsystem_vendor;
@@ -250,6 +256,9 @@ static struct intel_quirk intel_quirks[] = {
 
        /* Dell XPS 13 7390 2-in-1 */
        { 0x8a52, 0x1028, 0x08b0, quirk_edp_limit_rate_hbr2 },
+
+       /* Xiaomi Book Pro 14 2026 */
+       { 0xb081, 0x1d72, 0x2424, quirk_disable_psr2 },
 };
 
 static const struct intel_dpcd_quirk intel_dpcd_quirks[] = {
index 83214eb94b0c4e2bad2958433f6b5547eff2c8cc..970a4fe52fafca976259ad823a7bfa218c8581db 100644 (file)
@@ -22,6 +22,7 @@ enum intel_quirk_id {
        QUIRK_FW_SYNC_LEN,
        QUIRK_EDP_LIMIT_RATE_HBR2,
        QUIRK_DISABLE_EDP_PANEL_REPLAY,
+       QUIRK_DISABLE_PSR2,
 };
 
 void intel_init_quirks(struct intel_display *display);