|
@@ -163,7 +163,12 @@ static void intel_psr_enable_source(struct intel_dp *intel_dp)
|
|
struct drm_device *dev = dig_port->base.base.dev;
|
|
struct drm_device *dev = dig_port->base.base.dev;
|
|
struct drm_i915_private *dev_priv = dev->dev_private;
|
|
struct drm_i915_private *dev_priv = dev->dev_private;
|
|
uint32_t max_sleep_time = 0x1f;
|
|
uint32_t max_sleep_time = 0x1f;
|
|
- uint32_t idle_frames = 1;
|
|
|
|
|
|
+ /* Lately it was identified that depending on panel idle frame count
|
|
|
|
+ * calculated at HW can be off by 1. So let's use what came
|
|
|
|
+ * from VBT + 1 and at minimum 2 to be on the safe side.
|
|
|
|
+ */
|
|
|
|
+ uint32_t idle_frames = dev_priv->vbt.psr.idle_frames ?
|
|
|
|
+ dev_priv->vbt.psr.idle_frames + 1 : 2;
|
|
uint32_t val = 0x0;
|
|
uint32_t val = 0x0;
|
|
const uint32_t link_entry_time = EDP_PSR_MIN_LINK_ENTRY_TIME_8_LINES;
|
|
const uint32_t link_entry_time = EDP_PSR_MIN_LINK_ENTRY_TIME_8_LINES;
|
|
bool only_standby = false;
|
|
bool only_standby = false;
|