Patch "drm/i915/psr: Only allow PSR in LPSP mode on HSW non-ULT" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/i915/psr: Only allow PSR in LPSP mode on HSW non-ULT

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-i915-psr-only-allow-psr-in-lpsp-mode-on-hsw-non-.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 8f6915eb3d049a37a32fb411f40955ea6b4fb772
Author: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Date:   Thu Jan 18 23:21:31 2024 +0200

    drm/i915/psr: Only allow PSR in LPSP mode on HSW non-ULT
    
    [ Upstream commit f9f031dd21a7ce13a13862fa5281d32e1029c70f ]
    
    On HSW non-ULT (or at least on Dell Latitude E6540) external displays
    start to flicker when we enable PSR on the eDP. We observe a much higher
    SR and PC6 residency than should be possible with an external display,
    and indeen much higher than what we observe with eDP disabled and
    only the external display enabled. Looks like the hardware is somehow
    ignoring the fact that the external display is active during PSR.
    
    I wasn't able to redproduce this on my HSW ULT machine, or BDW.
    So either there's something specific about this particular laptop
    (eg. some unknown firmware thing) or the issue is limited to just
    non-ULT HSW systems. All known registers that could affect this
    look perfectly reasonable on the affected machine.
    
    As a workaround let's unmask the LPSP event to prevent PSR entry
    except while in LPSP mode (only pipe A + eDP active). This
    will prevent PSR entry entirely when multiple pipes are active.
    The one slight downside is that we now also prevent PSR entry
    when driving eDP with pipe B or C, but I think that's a reasonable
    tradeoff to avoid having to implement a more complex workaround.
    
    Cc: stable@xxxxxxxxxxxxxxx
    Fixes: 783d8b80871f ("drm/i915/psr: Re-enable PSR1 on hsw/bdw")
    Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/10092
    Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240118212131.31868-1-ville.syrjala@xxxxxxxxxxxxxxx
    Reviewed-by: Jouni Högander <jouni.hogander@xxxxxxxxx>
    (cherry picked from commit 94501c3ca6400e463ff6cc0c9cf4a2feb6a9205d)
    Signed-off-by: Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 848ac483259b..5cf3db7058b9 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -1400,8 +1400,18 @@ static void intel_psr_enable_source(struct intel_dp *intel_dp,
 	 * can rely on frontbuffer tracking.
 	 */
 	mask = EDP_PSR_DEBUG_MASK_MEMUP |
-	       EDP_PSR_DEBUG_MASK_HPD |
-	       EDP_PSR_DEBUG_MASK_LPSP;
+	       EDP_PSR_DEBUG_MASK_HPD;
+
+	/*
+	 * For some unknown reason on HSW non-ULT (or at least on
+	 * Dell Latitude E6540) external displays start to flicker
+	 * when PSR is enabled on the eDP. SR/PC6 residency is much
+	 * higher than should be possible with an external display.
+	 * As a workaround leave LPSP unmasked to prevent PSR entry
+	 * when external displays are active.
+	 */
+	if (DISPLAY_VER(dev_priv) >= 8 || IS_HASWELL_ULT(dev_priv))
+		mask |= EDP_PSR_DEBUG_MASK_LPSP;
 
 	if (DISPLAY_VER(dev_priv) < 20)
 		mask |= EDP_PSR_DEBUG_MASK_MAX_SLEEP;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux