public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Use dpcd read wake for sink crc calls.
@ 2015-08-20 23:12 Rodrigo Vivi
  2015-08-20 23:23 ` Rodrigo Vivi
  2015-08-26  9:06 ` Daniel Vetter
  0 siblings, 2 replies; 23+ messages in thread
From: Rodrigo Vivi @ 2015-08-20 23:12 UTC (permalink / raw)
  To: intel-gfx; +Cc: Rodrigo Vivi

From: Rodrigo Vivi <vivijim@rdvivi-budapest.jf.intel.com>

Let's use a native read with retry as suggested per spec to
fix Sink CRC on SKL when PSR is enabled.

With PSR enabled panel is probably taking more time to wake
and dpcd read is faling.

Cc: Sonika Jindal <sonika.jindal@intel.com>
Signed-off-by: Rodrigo Vivi <vivijim@rdvivi-budapest.jf.intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index d32ce48..34f5e33 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4037,7 +4037,8 @@ static int intel_dp_sink_crc_stop(struct intel_dp *intel_dp)
 	u8 buf;
 	int ret = 0;
 
-	if (drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_SINK, &buf) < 0) {
+	if (intel_dp_dpcd_read_wake(&intel_dp->aux, DP_TEST_SINK,
+				    &buf, 1) < 0) {
 		DRM_DEBUG_KMS("Sink CRC couldn't be stopped properly\n");
 		ret = -EIO;
 		goto out;
@@ -4069,7 +4070,8 @@ static int intel_dp_sink_crc_start(struct intel_dp *intel_dp)
 			return ret;
 	}
 
-	if (drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_SINK_MISC, &buf) < 0)
+	if (intel_dp_dpcd_read_wake(&intel_dp->aux, DP_TEST_SINK_MISC,
+				    &buf, 1) < 0)
 		return -EIO;
 
 	if (!(buf & DP_TEST_CRC_SUPPORTED))
@@ -4077,7 +4079,7 @@ static int intel_dp_sink_crc_start(struct intel_dp *intel_dp)
 
 	intel_dp->sink_crc.last_count = buf & DP_TEST_COUNT_MASK;
 
-	if (drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_SINK, &buf) < 0)
+	if (intel_dp_dpcd_read_wake(&intel_dp->aux, DP_TEST_SINK, &buf, 1) < 0)
 		return -EIO;
 
 	hsw_disable_ips(intel_crtc);
@@ -4109,8 +4111,8 @@ int intel_dp_sink_crc(struct intel_dp *intel_dp, u8 *crc)
 	do {
 		intel_wait_for_vblank(dev, intel_crtc->pipe);
 
-		if (drm_dp_dpcd_readb(&intel_dp->aux,
-				      DP_TEST_SINK_MISC, &buf) < 0) {
+		if (intel_dp_dpcd_read_wake(&intel_dp->aux,
+					    DP_TEST_SINK_MISC, &buf, 1) < 0) {
 			ret = -EIO;
 			goto stop;
 		}
@@ -4123,7 +4125,8 @@ int intel_dp_sink_crc(struct intel_dp *intel_dp, u8 *crc)
 		if (count == 0)
 			intel_dp->sink_crc.last_count = 0;
 
-		if (drm_dp_dpcd_read(&intel_dp->aux, DP_TEST_CRC_R_CR, crc, 6) < 0) {
+		if (intel_dp_dpcd_read_wake(&intel_dp->aux, DP_TEST_CRC_R_CR,
+					    crc, 6) < 0) {
 			ret = -EIO;
 			goto stop;
 		}
-- 
2.1.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2015-11-19  9:12 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-20 23:12 [PATCH] drm/i915: Use dpcd read wake for sink crc calls Rodrigo Vivi
2015-08-20 23:23 ` Rodrigo Vivi
2015-08-24  4:57   ` Jindal, Sonika
2015-08-24 19:54   ` Zanoni, Paulo R
2015-08-24 21:20     ` Vivi, Rodrigo
2015-10-21 18:31       ` Thulasimani, Sivakumar
2015-10-21 19:59         ` Vivi, Rodrigo
2015-10-21 20:14         ` Damien Lespiau
2015-10-22  3:26           ` Thulasimani, Sivakumar
2015-11-16 16:05             ` Rodrigo Vivi
2015-11-17 14:08               ` Daniel Vetter
2015-11-18 18:31                 ` Vivi, Rodrigo
2015-11-19  9:12                   ` Daniel Vetter
2015-08-26  9:06 ` Daniel Vetter
2015-08-26 16:41   ` Vivi, Rodrigo
2015-08-27  9:21     ` Daniel Vetter
2015-08-27 10:45       ` Jani Nikula
2015-10-19 23:08   ` [PATCH] drm/i915: Retry on every aux read Rodrigo Vivi
2015-10-20  7:02     ` Jani Nikula
2015-10-20  7:39       ` Daniel Vetter
2015-10-20 15:36         ` Vivi, Rodrigo
2015-10-20 17:45           ` Vivi, Rodrigo
2015-10-20 18:31             ` Daniel Vetter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox