mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
drm/i915: Use EIO instead of EAGAIN for sink CRC error.
If something while getting panel CRC this means that probably hw I/O error so hw is busted and try again shouldn't help much. Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
40bae73611
commit
bda0381e72
1 changed files with 3 additions and 3 deletions
|
@ -3800,21 +3800,21 @@ int intel_dp_sink_crc(struct intel_dp *intel_dp, u8 *crc)
|
||||||
u8 buf[1];
|
u8 buf[1];
|
||||||
|
|
||||||
if (drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_SINK_MISC, buf) < 0)
|
if (drm_dp_dpcd_readb(&intel_dp->aux, DP_TEST_SINK_MISC, buf) < 0)
|
||||||
return -EAGAIN;
|
return -EIO;
|
||||||
|
|
||||||
if (!(buf[0] & DP_TEST_CRC_SUPPORTED))
|
if (!(buf[0] & DP_TEST_CRC_SUPPORTED))
|
||||||
return -ENOTTY;
|
return -ENOTTY;
|
||||||
|
|
||||||
if (drm_dp_dpcd_writeb(&intel_dp->aux, DP_TEST_SINK,
|
if (drm_dp_dpcd_writeb(&intel_dp->aux, DP_TEST_SINK,
|
||||||
DP_TEST_SINK_START) < 0)
|
DP_TEST_SINK_START) < 0)
|
||||||
return -EAGAIN;
|
return -EIO;
|
||||||
|
|
||||||
/* Wait 2 vblanks to be sure we will have the correct CRC value */
|
/* Wait 2 vblanks to be sure we will have the correct CRC value */
|
||||||
intel_wait_for_vblank(dev, intel_crtc->pipe);
|
intel_wait_for_vblank(dev, intel_crtc->pipe);
|
||||||
intel_wait_for_vblank(dev, intel_crtc->pipe);
|
intel_wait_for_vblank(dev, intel_crtc->pipe);
|
||||||
|
|
||||||
if (drm_dp_dpcd_read(&intel_dp->aux, DP_TEST_CRC_R_CR, crc, 6) < 0)
|
if (drm_dp_dpcd_read(&intel_dp->aux, DP_TEST_CRC_R_CR, crc, 6) < 0)
|
||||||
return -EAGAIN;
|
return -EIO;
|
||||||
|
|
||||||
drm_dp_dpcd_writeb(&intel_dp->aux, DP_TEST_SINK, 0);
|
drm_dp_dpcd_writeb(&intel_dp->aux, DP_TEST_SINK, 0);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue