Merge "disp: msm: dp: Update sink sync check to be disabled by default"

This commit is contained in:
qctecmdr 2019-05-03 11:36:05 -07:00 • committed by Gerrit - the friendly Code Review server
commit 8c8fad0d91
3 changed files with 22 additions and 6 deletions

View file

@ -1933,6 +1933,16 @@ static int dp_debug_init(struct dp_debug *dp_debug)
goto error_remove_dir;
}
file = debugfs_create_bool("hdcp_wait_sink_sync", 0644, dir,
&debug->dp_debug.hdcp_wait_sink_sync);
if (IS_ERR_OR_NULL(file)) {
rc = PTR_ERR(file);
pr_err("[%s] debugfs hdcp_wait_sink_sync failed, rc=%d\n",
DEBUG_NAME, rc);
goto error_remove_dir;
}
file = debugfs_create_bool("dsc_feature_enable", 0644, dir,
&debug->parser->dsc_feature_enable);
if (IS_ERR_OR_NULL(file)) {

View file

@ -16,6 +16,7 @@
/**
* struct dp_debug
* @debug_en: specifies whether debug mode enabled
* @hdcp_wait_sink_sync: used to wait for sink synchronization before HDCP auth
* @vdisplay: used to filter out vdisplay value
* @hdisplay: used to filter out hdisplay value
* @vrefresh: used to filter out vrefresh value
@ -28,6 +29,7 @@ struct dp_debug {
bool sim_mode;
bool psm_enabled;
bool hdcp_disabled;
bool hdcp_wait_sink_sync;
int aspect_ratio;
int vdisplay;
int hdisplay;

View file

@ -324,12 +324,16 @@ static void dp_display_hdcp_cb_work(struct work_struct *work)
dp->hdcp_delayed_off = false;
}
drm_dp_dpcd_readb(dp->aux->drm_aux, DP_SINK_STATUS, &sink_status);
sink_status &= (DP_RECEIVE_PORT_0_STATUS | DP_RECEIVE_PORT_1_STATUS);
if (sink_status < 1) {
pr_debug("Sink not synchronized. Queuing again then exiting\n");
queue_delayed_work(dp->wq, &dp->hdcp_cb_work, HZ);
return;
if (dp->debug->hdcp_wait_sink_sync) {
drm_dp_dpcd_readb(dp->aux->drm_aux, DP_SINK_STATUS,
&sink_status);
sink_status &= (DP_RECEIVE_PORT_0_STATUS |
DP_RECEIVE_PORT_1_STATUS);
if (sink_status < 1) {
pr_debug("Sink not synchronized. Queuing again then exiting\n");
queue_delayed_work(dp->wq, &dp->hdcp_cb_work, HZ);
return;
}
}
status = &dp->link->hdcp_status;