drm/i915: Fixes to support DP Compliance EDID tests
authorManasi Navare <manasi.d.navare@intel.com>
Sat, 21 Jan 2017 03:09:28 +0000 (19:09 -0800)
committerJani Nikula <jani.nikula@intel.com>
Thu, 26 Jan 2017 11:15:13 +0000 (13:15 +0200)
This patch addresses a few issues from the original patch for
DP Compliance EDID test support submitted by
Todd Previte<todd.previte@gmail.com>

Video Mode requested in the EDID test handler for the EDID Read
test (CTS 4.2.2.3) should be set to PREFERRED as per the CTS spec.

v2:
* Added read debugfs data from test_data.edid if its EDID test (Jani NIkula)
Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1484968170-12467-3-git-send-email-manasi.d.navare@intel.com
drivers/gpu/drm/i915/i915_debugfs.c
drivers/gpu/drm/i915/intel_dp.c

index 6d991464897091bbc255b6754c54c5421259348a..726256fa35cea489f5124c28c6dc1855a339cf06 100644 (file)
@@ -3775,7 +3775,10 @@ static int i915_displayport_test_data_show(struct seq_file *m, void *data)
                if (connector->status == connector_status_connected &&
                    connector->encoder != NULL) {
                        intel_dp = enc_to_intel_dp(connector->encoder);
-                       seq_printf(m, "%lx", intel_dp->compliance.test_data.edid);
+                       if (intel_dp->compliance.test_type ==
+                           DP_TEST_LINK_EDID_READ)
+                               seq_printf(m, "%lx",
+                                          intel_dp->compliance.test_data.edid);
                } else
                        seq_puts(m, "0");
        }
index 26d7fc1bc541e4e0233f71864f1bf847ae58e558..e245802c572729a4c18cd1175b607efc5da807be 100644 (file)
@@ -3979,7 +3979,7 @@ static uint8_t intel_dp_autotest_video_pattern(struct intel_dp *intel_dp)
 
 static uint8_t intel_dp_autotest_edid(struct intel_dp *intel_dp)
 {
-       uint8_t test_result = DP_TEST_NAK;
+       uint8_t test_result = DP_TEST_ACK;
        struct intel_connector *intel_connector = intel_dp->attached_connector;
        struct drm_connector *connector = &intel_connector->base;
 
@@ -4014,7 +4014,7 @@ static uint8_t intel_dp_autotest_edid(struct intel_dp *intel_dp)
                        DRM_DEBUG_KMS("Failed to write EDID checksum\n");
 
                test_result = DP_TEST_ACK | DP_TEST_EDID_CHECKSUM_WRITE;
-               intel_dp->compliance.test_data.edid = INTEL_DP_RESOLUTION_STANDARD;
+               intel_dp->compliance.test_data.edid = INTEL_DP_RESOLUTION_PREFERRED;
        }
 
        /* Set test active flag here so userspace doesn't interrupt things */