[Intel-gfx] [PATCH 05/12] drm/i915: Add a function to get the EDID preferred mode for Displayport compliance testing
Todd Previte
tprevite at gmail.com
Mon Jul 14 21:10:40 CEST 2014
Add a simple function to pull the preferred mode out of an EDID block. This function
is designed for use during Displayport compliance testing.
Signed-off-by: Todd Previte <tprevite at gmail.com>
---
drivers/gpu/drm/i915/intel_dp.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index f61502e..6c8f222 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -3351,6 +3351,31 @@ static bool intel_dp_compute_edid_checksum(uint8_t *edid_data, uint8_t *edid_che
return edid_ok;
}
+static struct drm_display_mode*
+intel_dp_get_edid_preferred_mode(struct intel_dp *intel_dp)
+{
+ struct drm_display_mode *found_mode = NULL;
+ struct drm_connector *connector = &intel_dp->attached_connector->base;
+ int mode_count = 0;
+
+ list_for_each_entry(found_mode, &connector->probed_modes, head) {
+ /* Check for a preferred mode */
+ if (found_mode->type & DRM_MODE_TYPE_PREFERRED) {
+ /* Found the preferred mode, return it */
+ DRM_DEBUG_KMS("Displayport: Found preferred mode '%s'\n",
+ found_mode->name);
+ goto exit_with_mode;
+ }
+ mode_count++;
+ }
+ /* No mode found, report the error */
+ DRM_DEBUG_KMS("Displayport: Preferred mode not found in %d probed modes\n",
+ mode_count);
+
+exit_with_mode:
+ return found_mode;
+}
+
/* Displayport compliance testing - Link training */
static uint8_t
intel_dp_autotest_link_training(struct intel_dp *intel_dp)
--
1.9.1
More information about the Intel-gfx
mailing list