[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