drm/i915: Send TP1 TP2/3 even when panel claims no NO_TRAIN_ON_EXIT.
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 11 Nov 2015 19:37:10 +0000 (11:37 -0800)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 18 Nov 2015 15:01:40 +0000 (16:01 +0100)
On the commit 3301d4092106 ("drm/i915: PSR: Fix DP_PSR_NO_TRAIN_ON_EXIT logic")'
we already had identified that DP_PSR_NO_TRAIN_ON_EXIT
doesn't mean we shouldn't send TPS patterns, however we start sending the
minimal TP1 as possible and no TP2.

For most of the panels this is ok, but we found a reported case where
this is not true and panel keeps frozen without updating the screen for a while.

We could just get this case after patch "PSR: Don't Skip aux handshake on
DP_PSR_NO_TRAIN_ON_EXIT." is applied since that one fix the
hard freeze on this kind of panels.

Reference: https://bugs.freedesktop.org/show_bug.cgi?id=91436#c19

Cc: Ivan Mitev <ivan.mitev@gmail.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Durgadoss R <durgadoss.r@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_psr.c

index c4a63712c68ef52a7dff34a7dd77c787add75079..bc5ea2a6cf4c3d107fee3c92c88d92650e49b236 100644 (file)
@@ -283,10 +283,6 @@ static void hsw_psr_enable_source(struct intel_dp *intel_dp)
        const uint32_t link_entry_time = EDP_PSR_MIN_LINK_ENTRY_TIME_8_LINES;
 
        if (intel_dp->psr_dpcd[1] & DP_PSR_NO_TRAIN_ON_EXIT) {
-               /* It doesn't mean we shouldn't send TPS patters, so let's
-                  send the minimal TP1 possible and skip TP2. */
-               val |= EDP_PSR_TP1_TIME_100us;
-               val |= EDP_PSR_TP2_TP3_TIME_0us;
                /* Sink should be able to train with the 5 or 6 idle patterns */
                idle_frames += 4;
        }