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

Commit 8c8fad0d authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

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

parents f8090586 78439dfa
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -1933,6 +1933,16 @@ static int dp_debug_init(struct dp_debug *dp_debug)
		goto error_remove_dir;
		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,
	file = debugfs_create_bool("dsc_feature_enable", 0644, dir,
			&debug->parser->dsc_feature_enable);
			&debug->parser->dsc_feature_enable);
	if (IS_ERR_OR_NULL(file)) {
	if (IS_ERR_OR_NULL(file)) {
+2 −0
Original line number Original line Diff line number Diff line
@@ -16,6 +16,7 @@
/**
/**
 * struct dp_debug
 * struct dp_debug
 * @debug_en: specifies whether debug mode enabled
 * @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
 * @vdisplay: used to filter out vdisplay value
 * @hdisplay: used to filter out hdisplay value
 * @hdisplay: used to filter out hdisplay value
 * @vrefresh: used to filter out vrefresh value
 * @vrefresh: used to filter out vrefresh value
@@ -28,6 +29,7 @@ struct dp_debug {
	bool sim_mode;
	bool sim_mode;
	bool psm_enabled;
	bool psm_enabled;
	bool hdcp_disabled;
	bool hdcp_disabled;
	bool hdcp_wait_sink_sync;
	int aspect_ratio;
	int aspect_ratio;
	int vdisplay;
	int vdisplay;
	int hdisplay;
	int hdisplay;
+10 −6
Original line number Original line Diff line number Diff line
@@ -324,13 +324,17 @@ static void dp_display_hdcp_cb_work(struct work_struct *work)
		dp->hdcp_delayed_off = false;
		dp->hdcp_delayed_off = false;
	}
	}


	drm_dp_dpcd_readb(dp->aux->drm_aux, DP_SINK_STATUS, &sink_status);
	if (dp->debug->hdcp_wait_sink_sync) {
	sink_status &= (DP_RECEIVE_PORT_0_STATUS | DP_RECEIVE_PORT_1_STATUS);
		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) {
		if (sink_status < 1) {
			pr_debug("Sink not synchronized. Queuing again then exiting\n");
			pr_debug("Sink not synchronized. Queuing again then exiting\n");
			queue_delayed_work(dp->wq, &dp->hdcp_cb_work, HZ);
			queue_delayed_work(dp->wq, &dp->hdcp_cb_work, HZ);
			return;
			return;
		}
		}
	}


	status = &dp->link->hdcp_status;
	status = &dp->link->hdcp_status;