Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ce31d9f4 authored by Rodrigo Vivi's avatar Rodrigo Vivi Committed by Daniel Vetter
Browse files

drm/i915: preserve other DP_TEST_SINK bits.



Sink crc was implemented based on dp 1.1 spec that had all TEST_SINK bits
reserved reading all 0s. But when reviewing my latest changes on sink crc
Todd warned me that on new specs we have other valid bits on this reg that we
might want to preserve.

Cc: Todd Previte <tprevite@gmail.com>
Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: default avatarTodd Previte <tprevite@gmail.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent da09654d
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -3817,8 +3817,9 @@ int intel_dp_sink_crc(struct intel_dp *intel_dp, u8 *crc)
	if (!(buf & DP_TEST_CRC_SUPPORTED))
		return -ENOTTY;

	drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_SINK, &buf);
	if (drm_dp_dpcd_writeb(&intel_dp->aux, DP_TEST_SINK,
			       DP_TEST_SINK_START) < 0)
				buf | DP_TEST_SINK_START) < 0)
		return -EIO;

	drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_SINK_MISC, &buf);
@@ -3837,7 +3838,10 @@ int intel_dp_sink_crc(struct intel_dp *intel_dp, u8 *crc)
	if (drm_dp_dpcd_read(&intel_dp->aux, DP_TEST_CRC_R_CR, crc, 6) < 0)
		return -EIO;

	drm_dp_dpcd_writeb(&intel_dp->aux, DP_TEST_SINK, 0);
	drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_SINK, &buf);
	drm_dp_dpcd_writeb(&intel_dp->aux, DP_TEST_SINK,
			buf & ~DP_TEST_SINK_START);

	return 0;
}