disp: msm: dp: reenable sink crc for robustness
Some monitors seem to be not enabling Sink CRC capability on first plugin and therefore the CRC read returns all zeros. But on subsequent plugins the capability is set properly and CRC values are calculated. To workaround this quirk on the sink side, this change reenables sink CRC if the values are read as zeros. Change-Id: I67ace5c064b2b56d03732a78f334ea6b1b649608 Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
このコミットが含まれているのは:

committed by
Gerrit - the friendly Code Review server

コミット
7ac494a18e
@@ -3113,18 +3113,15 @@ int dp_panel_sink_crc_enable(struct dp_panel *dp_panel, bool enable)
|
||||
panel = container_of(dp_panel, struct dp_panel_private, dp_panel);
|
||||
drm_aux = panel->aux->drm_aux;
|
||||
|
||||
if (dp_panel->link_info.capabilities & DP_LINK_CAP_CRC) {
|
||||
ret = drm_dp_dpcd_readb(drm_aux, DP_TEST_SINK, &buf);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
ret = drm_dp_dpcd_readb(drm_aux, DP_TEST_SINK, &buf);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = drm_dp_dpcd_writeb(drm_aux, DP_TEST_SINK, buf | DP_TEST_SINK_START);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
ret = drm_dp_dpcd_writeb(drm_aux, DP_TEST_SINK, buf | DP_TEST_SINK_START);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
drm_dp_dpcd_readb(drm_aux, DP_TEST_SINK, &buf);
|
||||
DP_DEBUG("Enabled CRC: %x\n", buf);
|
||||
}
|
||||
drm_dp_dpcd_readb(drm_aux, DP_TEST_SINK, &buf);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
新しいイシューから参照
ユーザーをブロックする