Skip to content

Commit 97173ea

Browse files
rodrigovividanvet
authored andcommitted
drm/i915: PSR: Increase idle_frames
Idle frames the number of identical frames needed before panel can enter PSR. There are some panels that requires up to minimum of 4 idle frames available on the market. For these cases usually VBT should be used to configure the number of idle frames, but unfortunately this isn't always true and VBT isn't being set at all. Let's trust VBT when it is set + 1 and use minimum of 4 + 1 when VBT isn't set. "+1" covers the "of-by-one" case. Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
1 parent 09108b9 commit 97173ea

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

drivers/gpu/drm/i915/intel_psr.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,10 +254,13 @@ static void hsw_psr_enable_source(struct intel_dp *intel_dp)
254254
uint32_t max_sleep_time = 0x1f;
255255
/* Lately it was identified that depending on panel idle frame count
256256
* calculated at HW can be off by 1. So let's use what came
257-
* from VBT + 1 and at minimum 2 to be on the safe side.
257+
* from VBT + 1.
258+
* There are also other cases where panel demands at least 4
259+
* but VBT is not being set. To cover these 2 cases lets use
260+
* at least 5 when VBT isn't set to be on the safest side.
258261
*/
259262
uint32_t idle_frames = dev_priv->vbt.psr.idle_frames ?
260-
dev_priv->vbt.psr.idle_frames + 1 : 2;
263+
dev_priv->vbt.psr.idle_frames + 1 : 5;
261264
uint32_t val = 0x0;
262265
const uint32_t link_entry_time = EDP_PSR_MIN_LINK_ENTRY_TIME_8_LINES;
263266

0 commit comments

Comments
 (0)