Loading msm/dp/dp_debug.c +10 −0 Original line number Diff line number Diff line Loading @@ -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)) { Loading msm/dp/dp_debug.h +2 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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; Loading msm/dp/dp_display.c +10 −6 Original line number Diff line number Diff line Loading @@ -324,13 +324,17 @@ 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 (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; Loading Loading
msm/dp/dp_debug.c +10 −0 Original line number Diff line number Diff line Loading @@ -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)) { Loading
msm/dp/dp_debug.h +2 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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; Loading
msm/dp/dp_display.c +10 −6 Original line number Diff line number Diff line Loading @@ -324,13 +324,17 @@ 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 (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; Loading