This patch was previously part of "[PATCH 05/10] drm/i915: Add debugfs interface
for Displayport debug  and compliance testing". Adds two support functions for
handling Displayport configuration parameters that are used for compliance
testing.

Signed-off-by: Todd Previte <[email protected]>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 48 +++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index feae100..ce091c1 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -3694,6 +3694,54 @@ static const struct file_operations 
i915_display_crc_ctl_fops = {
        .write = display_crc_ctl_write
 };
 
+enum dp_config_param displayport_get_config_param_type(char *input_string)
+{
+       enum dp_config_param param_type = DP_CONFIG_PARAM_INVALID;
+       int i = 0;
+
+       for (i = 0; i < DP_PARAMETER_COUNT; i++) {
+               if (strncmp(input_string, dp_conf_tokens[i],
+                           strlen(dp_conf_tokens[i])) == 0) {
+                       param_type = (enum dp_config_param) i;
+                       break;
+               }
+       }
+       return param_type;
+}
+
+int value_for_config_param(enum dp_config_param param,
+                          char *input_string,
+                          void *output_value)
+{
+       int status = 0;
+       unsigned int *out_ptr = (unsigned int *)output_value;
+       char *index = input_string;
+
+       switch (param) {
+       case DP_CONFIG_PARAM_CONNECTOR:
+               output_value = (char *)index;
+               break;
+       case DP_CONFIG_PARAM_LINK_RATE:
+       case DP_CONFIG_PARAM_LANE_COUNT:
+       case DP_CONFIG_PARAM_VOLTAGE_SWING:
+       case DP_CONFIG_PARAM_PREEMPHASIS:
+               status = kstrtol(index, 16, (long *)out_ptr);
+               break;
+       case DP_CONFIG_PARAM_HRES:
+       case DP_CONFIG_PARAM_VRES:
+       case DP_CONFIG_PARAM_BPP:
+               status = kstrtol(index, 10, (long *)out_ptr);
+               break;
+       default:
+               /* Unhandled case */
+               status = -EINVAL;
+               *out_ptr = 0;
+               break;
+       }
+
+       return status;
+}
+
 static int displayport_config_ctl_open(struct inode *inode,
                                       struct file *file)
 {
-- 
1.9.1

_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to