aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>2018-05-11 15:51:44 -0400
committerJani Nikula <jani.nikula@intel.com>2018-05-24 09:33:35 -0400
commit264ff016cf0672f99f98ea853dbc7e45c3527bc2 (patch)
tree89a125b38331d0e6826b61c1a5a9262ee27c8b98
parent1e8b251ebcbbfc6bfa826bca4d91a8e1bcad2e5f (diff)
drm/i915/psr: Fall back to max. synchronization latency if DPCD read fails
Noticed that we assume the best case of 0 latency when the DPCD read fails, reasonable pessimism is safer. eDP spec does say that if latency is greater than 8, the panel supplier needs to provide it. I didn't see anything specific in the VBT for this, so let's go with 8 frames as a fallback. Cc: Jose Roberto de Souza <jose.souza@intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: José Roberto de Souza <jose.souza@intel.com> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180511195145.3829-5-dhinakaran.pandiyan@intel.com
-rw-r--r--drivers/gpu/drm/i915/intel_psr.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index 4f34abcacacf..09f5962a19aa 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -219,13 +219,13 @@ static bool intel_dp_get_alpm_status(struct intel_dp *intel_dp)
219 219
220static u8 intel_dp_get_sink_sync_latency(struct intel_dp *intel_dp) 220static u8 intel_dp_get_sink_sync_latency(struct intel_dp *intel_dp)
221{ 221{
222 u8 val = 0; 222 u8 val = 8; /* assume the worst if we can't read the value */
223 223
224 if (drm_dp_dpcd_readb(&intel_dp->aux, 224 if (drm_dp_dpcd_readb(&intel_dp->aux,
225 DP_SYNCHRONIZATION_LATENCY_IN_SINK, &val) == 1) 225 DP_SYNCHRONIZATION_LATENCY_IN_SINK, &val) == 1)
226 val &= DP_MAX_RESYNC_FRAME_COUNT_MASK; 226 val &= DP_MAX_RESYNC_FRAME_COUNT_MASK;
227 else 227 else
228 DRM_ERROR("Unable to get sink synchronization latency\n"); 228 DRM_DEBUG_KMS("Unable to get sink synchronization latency, assuming 8 frames\n");
229 return val; 229 return val;
230} 230}
231 231