All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jim Bride <jim.bride@linux.intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org
Subject: [PATCH v2 2/3] drm/dp/mst: Enhance DP MST debugfs output
Date: Thu,  7 Apr 2016 10:30:38 -0700	[thread overview]
Message-ID: <1460050239-11770-2-git-send-email-jim.bride@linux.intel.com> (raw)
In-Reply-To: <1460050239-11770-1-git-send-email-jim.bride@linux.intel.com>
In-Reply-To: <1459887821-8142-1-git-send-email-jim.bride@linux.intel.com>

Add some additional information (input vs. output port, sink associated
with VC, peer device type, max number of VCs supported) and ensure that
any embedded '\0' characters in a branch device's devid string are not
written to debugfs.

v2: Rebase + change drm_edid_get_monitor_name() call to reflect new
    signature.

cc: dri-devel@lists.freedesktop.org
Signed-off-by: Jim Bride <jim.bride@linux.intel.com>
---
 drivers/gpu/drm/drm_dp_mst_topology.c | 35 ++++++++++++++++++++++++++++++-----
 1 file changed, 30 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
index 27fbd79..0d3873e 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -2729,7 +2729,7 @@ static void drm_dp_mst_dump_mstb(struct seq_file *m,
 
 	seq_printf(m, "%smst: %p, %d\n", prefix, mstb, mstb->num_ports);
 	list_for_each_entry(port, &mstb->ports, next) {
-		seq_printf(m, "%sport: %d: ddps: %d ldps: %d, sdp: %d/%d, %p, conn: %p\n", prefix, port->port_num, port->ddps, port->ldps, port->num_sdp_streams, port->num_sdp_stream_sinks, port, port->connector);
+		seq_printf(m, "%sport: %d: input: %d: pdt: %d, ddps: %d ldps: %d, sdp: %d/%d, %p, conn: %p\n", prefix, port->port_num, port->input, port->pdt, port->ddps, port->ldps, port->num_sdp_streams, port->num_sdp_stream_sinks, port, port->connector);
 		if (port->mstb)
 			drm_dp_mst_dump_mstb(m, port->mstb);
 	}
@@ -2750,6 +2750,18 @@ static bool dump_dp_payload_table(struct drm_dp_mst_topology_mgr *mgr,
 	return false;
 }
 
+static void fetch_monitor_name(struct drm_dp_mst_topology_mgr *mgr,
+			       struct drm_dp_mst_port *port, char *name,
+			       int namelen)
+{
+	struct edid *mst_edid = NULL;
+
+	mst_edid = drm_dp_mst_get_edid(port->connector, mgr, port);
+	if (mst_edid == NULL)
+		return;
+	drm_edid_get_monitor_name(mst_edid, name, namelen);
+}
+
 /**
  * drm_dp_mst_dump_topology(): dump topology to seq file.
  * @m: seq_file to dump output to
@@ -2762,6 +2774,7 @@ void drm_dp_mst_dump_topology(struct seq_file *m,
 {
 	int i;
 	struct drm_dp_mst_port *port;
+
 	mutex_lock(&mgr->lock);
 	if (mgr->mst_primary)
 		drm_dp_mst_dump_mstb(m, mgr->mst_primary);
@@ -2770,14 +2783,22 @@ void drm_dp_mst_dump_topology(struct seq_file *m,
 	mutex_unlock(&mgr->lock);
 
 	mutex_lock(&mgr->payload_lock);
-	seq_printf(m, "vcpi: %lx %lx\n", mgr->payload_mask, mgr->vcpi_mask);
+	seq_printf(m, "vcpi: %lx %lx %d\n", mgr->payload_mask, mgr->vcpi_mask,
+		mgr->max_payloads);
 
 	for (i = 0; i < mgr->max_payloads; i++) {
 		if (mgr->proposed_vcpis[i]) {
+			char name[13];
+
+			memset(name, 0, 13 * sizeof(char));
 			port = container_of(mgr->proposed_vcpis[i], struct drm_dp_mst_port, vcpi);
-			seq_printf(m, "vcpi %d: %d %d %d\n", i, port->port_num, port->vcpi.vcpi, port->vcpi.num_slots);
+			fetch_monitor_name(mgr, port, name, 13);
+			seq_printf(m, "vcpi %d: %d %d %d sink name: %s\n", i,
+				   port->port_num, port->vcpi.vcpi,
+				   port->vcpi.num_slots,
+				   (name[0] != 0) ? name :  "Unknown");
 		} else
-			seq_printf(m, "vcpi %d:unsed\n", i);
+			seq_printf(m, "vcpi %d:unused\n", i);
 	}
 	for (i = 0; i < mgr->max_payloads; i++) {
 		seq_printf(m, "payload %d: %d, %d, %d\n",
@@ -2818,7 +2839,11 @@ void drm_dp_mst_dump_topology(struct seq_file *m,
 			seq_printf(m, "%02x", buf[i]);
 		seq_printf(m, " devid: ");
 		for (i = 0x3; i < 0x8; i++)
-			seq_printf(m, "%c", buf[i]);
+			if (buf[i] != '\0')
+				seq_printf(m, "%c", buf[i]);
+			else
+				break;
+
 		seq_printf(m, " revision: hw: %x.%x sw: %x.%x", buf[0x9] >> 4, buf[0x9] & 0xf, buf[0xa], buf[0xb]);
 		seq_printf(m, "\n");
 		bret = dump_dp_payload_table(mgr, buf);
-- 
2.5.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2016-04-07 17:30 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-05 20:23 [PATCH 0/3] Minor i915_dp_mst_info output enhancements Jim Bride
2016-04-05 20:23 ` [PATCH 1/3] drm/edid: Add drm_edid_get_monitor_name() Jim Bride
2016-04-06  8:35   ` Jani Nikula
2016-04-06 17:03     ` Jim Bride
2016-04-05 20:23 ` [PATCH 2/3] drm/dp/mst: Enhance DP MST debugfs output Jim Bride
2016-04-05 20:23 ` [PATCH 3/3] drm/i915/dp/mst: Add source port info to " Jim Bride
2016-04-06  7:54 ` ✗ Fi.CI.BAT: failure for Minor i915_dp_mst_info output enhancements Patchwork
2016-04-07 17:30 ` [PATCH v2 1/3] drm/edid: Add drm_edid_get_monitor_name() Jim Bride
2016-04-08  9:35   ` [Intel-gfx] " Jani Nikula
2016-04-07 17:30 ` Jim Bride [this message]
2016-04-08  9:44   ` [PATCH v2 2/3] drm/dp/mst: Enhance DP MST debugfs output Jani Nikula
2016-04-07 17:30 ` [PATCH v2 3/3] drm/i915/dp/mst: Add source port info to " Jim Bride
2016-04-08  8:34 ` ✗ Fi.CI.BAT: failure for Minor i915_dp_mst_info output enhancements (rev2) Patchwork
2016-04-11 16:14 ` [PATCH v3 1/3] drm/edid: Add drm_edid_get_monitor_name() Jim Bride
2016-04-12  9:30   ` Jani Nikula
2016-04-11 16:14 ` [PATCH v3 2/3] drm/dp/mst: Enhance DP MST debugfs output Jim Bride
2016-04-14  6:47   ` Jani Nikula
2016-04-14  7:37     ` Daniel Vetter
2016-04-11 16:14 ` [PATCH v3 3/3] drm/i915/dp/mst: Add source port info to " Jim Bride
2016-04-12  9:36   ` Jani Nikula
2016-04-11 16:36 ` ✗ Fi.CI.BAT: failure for Minor i915_dp_mst_info output enhancements (rev4) Patchwork

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=1460050239-11770-2-git-send-email-jim.bride@linux.intel.com \
    --to=jim.bride@linux.intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.