From: Todd Previte <tprevite@gmail.com>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH 07/17] drm/i915: Add and implement the debugfs 'show' functions for Displayport compliance
Date: Wed, 10 Dec 2014 16:53:07 -0700 [thread overview]
Message-ID: <1418255597-4716-8-git-send-email-tprevite@gmail.com> (raw)
In-Reply-To: <1418255597-4716-1-git-send-email-tprevite@gmail.com>
This patch was previously part of "[PATCH 05/10] drm/i915: Add debugfs
interface for Displayport debug and compliance testing". This patch implements
the 'show' functions for the debugfs interface for Displayport compliance
testing.
Signed-off-by: Todd Previte <tprevite@gmail.com>
---
drivers/gpu/drm/i915/i915_debugfs.c | 85 +++++++++++++++++++++++++++++++++++++
1 file changed, 85 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index ce091c1..184797d 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -3694,6 +3694,56 @@ static const struct file_operations i915_display_crc_ctl_fops = {
.write = display_crc_ctl_write
};
+static void displayport_show_config_info(struct seq_file *m,
+ struct intel_connector *intel_connector)
+{
+ struct intel_encoder *intel_encoder = intel_connector->encoder;
+ struct intel_dp *intel_dp;
+ struct intel_crtc *icrtc;
+ struct intel_crtc_config *crtc_config;
+ char *conn_name = intel_connector->base.name;
+ int pipe_bpp, hres, vres;
+ uint8_t vs[4], pe[4];
+ struct drm_display_mode *mode;
+ int i = 0;
+
+ if (intel_encoder) {
+ intel_dp = enc_to_intel_dp(&intel_encoder->base);
+ for (i = 0; i < intel_dp->lane_count; i++) {
+ vs[i] = intel_dp->train_set[i]
+ & DP_TRAIN_VOLTAGE_SWING_MASK;
+ pe[i] = (intel_dp->train_set[i]
+ & DP_TRAIN_PRE_EMPHASIS_MASK) >> 3;
+ }
+ if (intel_encoder->type == INTEL_OUTPUT_DISPLAYPORT) {
+ if (intel_encoder->new_crtc) {
+ crtc_config = &intel_encoder->new_crtc->config;
+ pipe_bpp = crtc_config->pipe_bpp;
+ mode = &crtc_config->adjusted_mode;
+ hres = mode->hdisplay;
+ vres = mode->vdisplay;
+ } else if (intel_encoder->base.crtc) {
+ icrtc = to_intel_crtc(intel_encoder->base.crtc);
+ pipe_bpp = icrtc->config.pipe_bpp;
+ mode = &icrtc->config.adjusted_mode;
+ hres = mode->hdisplay;
+ vres = mode->vdisplay;
+ } else {
+ pipe_bpp = 0;
+ hres = vres = 0;
+ }
+ seq_printf(m, DP_CONF_STR_CONNECTOR, conn_name);
+ seq_printf(m, DP_CONF_STR_LINKRATE, intel_dp->link_bw);
+ seq_printf(m, DP_CONF_STR_LANES, intel_dp->lane_count);
+ seq_printf(m, DP_CONF_STR_VSWING, vs[0]);
+ seq_printf(m, DP_CONF_STR_PREEMP, pe[0]);
+ seq_printf(m, DP_CONF_STR_HRES, hres);
+ seq_printf(m, DP_CONF_STR_VRES, vres);
+ seq_printf(m, DP_CONF_STR_BPP, pipe_bpp);
+ }
+ }
+}
+
enum dp_config_param displayport_get_config_param_type(char *input_string)
{
enum dp_config_param param_type = DP_CONFIG_PARAM_INVALID;
@@ -3742,6 +3792,41 @@ int value_for_config_param(enum dp_config_param param,
return status;
}
+static int displayport_config_ctl_show(struct seq_file *m, void *data)
+{
+ struct drm_device *dev = m->private;
+ struct drm_connector *drm_connector;
+ struct intel_encoder *encoder;
+ struct intel_connector *connector;
+
+ if (!dev)
+ return -ENODEV;
+
+ list_for_each_entry(drm_connector,
+ &dev->mode_config.connector_list,
+ head) {
+ connector = to_intel_connector(drm_connector);
+ encoder = connector->encoder;
+ if (drm_connector->connector_type ==
+ DRM_MODE_CONNECTOR_DisplayPort) {
+ if (encoder->type == INTEL_OUTPUT_DISPLAYPORT ||
+ encoder->type == INTEL_OUTPUT_UNKNOWN) {
+ if (drm_connector->status ==
+ connector_status_connected) {
+ displayport_show_config_info(m,
+ connector);
+ } else {
+ seq_printf(m, DP_CONF_STR_CONNECTOR,
+ encoder->base.name);
+ seq_puts(m, "disconnected\n");
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
static int displayport_config_ctl_open(struct inode *inode,
struct file *file)
{
--
1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2014-12-10 23:54 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-10 23:53 [intel-gfx] Displayport Compliance Testing V2 Todd Previte
2014-12-10 23:53 ` [PATCH 01/17] drm/i915: Add automated testing support for Displayport compliance testing Todd Previte
2014-12-12 20:25 ` Paulo Zanoni
2015-02-18 16:36 ` Todd Previte
2014-12-10 23:53 ` [PATCH 02/17] drm/i915: Update intel_dp_check_link_status() " Todd Previte
2014-12-15 16:36 ` Paulo Zanoni
2015-02-18 16:36 ` Todd Previte
2015-04-06 23:52 ` Paulo Zanoni
2014-12-10 23:53 ` [PATCH 03/17] drm/i915: Add a delay in Displayport AUX transactions for " Todd Previte
2014-12-15 17:35 ` Paulo Zanoni
2015-02-18 16:37 ` Todd Previte
2014-12-10 23:53 ` [PATCH 04/17] drm/i915: Add debugfs information for Displayport " Todd Previte
2014-12-15 13:11 ` Jani Nikula
2015-02-18 16:37 ` Todd Previte
2014-12-10 23:53 ` [PATCH 05/17] drm/i915: Add file ops for Displayport configuration in debugfs Todd Previte
2014-12-10 23:53 ` [PATCH 06/17] drm/i915: Add support functions in debugfs for handling Displayport compliance configuration Todd Previte
2014-12-15 19:25 ` Paulo Zanoni
2014-12-10 23:53 ` Todd Previte [this message]
2014-12-16 19:00 ` [PATCH 07/17] drm/i915: Add and implement the debugfs 'show' functions for Displayport compliance Paulo Zanoni
2014-12-17 20:12 ` Daniel Vetter
2015-02-18 16:45 ` Todd Previte
2015-02-18 16:41 ` Todd Previte
2014-12-10 23:53 ` [PATCH 08/17] drm/i915: Add Displayport link configuration structure Todd Previte
2014-12-10 23:53 ` [PATCH 09/17] drm/i915: Add config parsing utilities in debugfs for Displayport compliance Todd Previte
2014-12-10 23:53 ` [PATCH 10/17] drm/i915: Implement the 'open' and 'write' debugfs functions " Todd Previte
2014-12-10 23:53 ` [PATCH 11/17] drm/i915: Update the EDID automated compliance test function Todd Previte
2014-12-17 16:25 ` Paulo Zanoni
2014-12-17 20:20 ` Daniel Vetter
[not found] ` <54E4C490.7080001@gmail.com>
2015-02-20 16:55 ` Daniel Vetter
2015-02-18 16:47 ` Todd Previte
2015-02-23 15:55 ` Daniel Vetter
2014-12-10 23:53 ` [PATCH 12/17] drm/i915: Update intel_dp_compute_config() to handle compliance test requests Todd Previte
2014-12-17 17:04 ` Paulo Zanoni
2015-01-07 19:28 ` Clint Taylor
2015-02-18 16:59 ` Todd Previte
2014-12-10 23:53 ` [PATCH 13/17] drm/i915: Update intel_dp_hpd_pulse() to check link status for non-MST operation Todd Previte
2014-12-17 17:57 ` Paulo Zanoni
2014-12-17 20:30 ` Daniel Vetter
2015-02-18 17:06 ` Todd Previte
2015-02-18 17:06 ` Todd Previte
2014-12-10 23:53 ` [PATCH 14/17] drm/i915: Add debugfs function to check connector status for compliance testing Todd Previte
2014-12-17 18:03 ` Paulo Zanoni
2015-02-18 17:08 ` Todd Previte
2015-02-18 23:09 ` Todd Previte
2014-12-10 23:53 ` [PATCH 15/17] drm/i915: Update debugfs functions for Displayport " Todd Previte
2014-12-10 23:53 ` [PATCH 16/17] drm/i915: Add new debugfs file for Displaypor compliance test control Todd Previte
2014-12-10 23:53 ` [PATCH 17/17] drm/i915: Add debugfs write and test param parsing function for DP " Todd Previte
2014-12-16 7:13 ` shuang.he
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1418255597-4716-8-git-send-email-tprevite@gmail.com \
--to=tprevite@gmail.com \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox