[PATCH i-g-t v2] Adding the support for DP-Phy Compliance Test.

Nidhi Gupta nidhi1.gupta at intel.com
Tue Dec 3 03:02:19 UTC 2019


Adding a test case for DP_TEST_LINK_PHY_TEST_PATTERN in
intel_dp_compliance tool. This will trigger dp connector
preferred mode modeset in case of hotplug event when test
type is DP_TEST_LINK_PHY_TEST_PATTERN.

Signed-off-by: Nidhi Gupta <nidhi1.gupta at intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta at intel.com>
---
 tools/intel_dp_compliance.c | 27 ++++++++++++++++++++++-----
 1 file changed, 22 insertions(+), 5 deletions(-)

diff --git a/tools/intel_dp_compliance.c b/tools/intel_dp_compliance.c
index 14631a46..b8de9c93 100644
--- a/tools/intel_dp_compliance.c
+++ b/tools/intel_dp_compliance.c
@@ -188,6 +188,7 @@ enum {
 	INTEL_MODE_PREFERRED,
 	INTEL_MODE_STANDARD,
 	INTEL_MODE_FAILSAFE,
+	INTEL_MODE_DP_PHY_COMP,
 	INTEL_MODE_VIDEO_PATTERN_TEST
 } intel_display_mode;
 
@@ -334,6 +335,11 @@ static int process_test_request(int test_type)
 			INTEL_DP_RESOLUTION_SHIFT_MASK;
 		valid = true;
 		break;
+	case DP_TEST_LINK_PHY_TEST_PATTERN:
+		/* Triggering a modeset for kernel for Dp Phy-Compliance Test */
+		mode = INTEL_MODE_DP_PHY_COMP;
+		valid = true;
+		break;
 	default:
 		/* Unknown test type */
 		fprintf(stderr, "Invalid test request, ignored.\n");
@@ -693,6 +699,7 @@ static int set_test_mode(struct connector *dp_conn)
 static int set_video(int mode, struct connector *test_connector)
 {
 	drmModeModeInfo *requested_mode;
+	drmModeCrtc *crtc_mode;
 	uint32_t required_fb_id;
 	struct igt_fb required_fb;
 	int ret = 0;
@@ -727,6 +734,12 @@ static int set_video(int mode, struct connector *test_connector)
 		required_fb_id = test_connector->test_pattern.fb;
 		required_fb = test_connector->test_pattern.fb_pattern;
 		break;
+	case INTEL_MODE_DP_PHY_COMP:
+		igt_info("PHY COMP TEST\n");
+		crtc_mode = drmModeGetCrtc(drm_fd, test_connector->crtc);
+		requested_mode = &crtc_mode->mode;
+		required_fb_id = -1;
+		break;
 	case INTEL_MODE_INVALID:
 	default:
 		igt_warn("INVALID! (%08x) Mode set aborted!\n", mode);
@@ -741,7 +754,8 @@ static int set_video(int mode, struct connector *test_connector)
 		igt_warn("Failed to set mode (%dx%d@%dHz): %s\n",
 			 requested_mode->hdisplay, requested_mode->vdisplay,
 			 requested_mode->vrefresh, strerror(errno));
-		igt_remove_fb(drm_fd, &required_fb);
+		if (required_fb_id > 0)
+			igt_remove_fb(drm_fd, &required_fb);
 
 	}
 	/* Keep the pattern on output lines for 1 sec for DPR-120 to detect it */
@@ -872,10 +886,13 @@ int update_display(int mode, bool is_compliance_test)
 	}
 
 	if (is_compliance_test) {
-		set_test_mode(conn);
-		ret = set_video(INTEL_MODE_NONE, conn);
-		ret = set_video(mode, conn);
-
+		if (mode == INTEL_MODE_DP_PHY_COMP) {
+			ret = set_video(INTEL_MODE_DP_PHY_COMP, conn);
+		} else {
+			set_test_mode(conn);
+			ret = set_video(INTEL_MODE_NONE, conn);
+			ret = set_video(mode, conn);
+		}
 	} else
 		ret = set_default_mode(conn, set_mode);
 
-- 
2.24.0



More information about the Intel-gfx-trybot mailing list