aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2014-05-12 01:22:27 -0400
committerDave Airlie <airlied@redhat.com>2014-07-21 21:20:42 -0400
commit11bed958b72e15fd12d78c30ce49047b94817840 (patch)
tree5ec889a95118244554f26f76b120eef5ae512a23
parent0e32b39ceed665bfa4a77a4bc307b6652b991632 (diff)
drm/i915: mst topology dumper in debugfs (v0.2)
use the mst helper code to dump the topology in debugfs. v0.2: drop is_mst check - as we want to dump other info Reviewed-by: Todd Previte <tprevite@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--drivers/gpu/drm/i915/i915_debugfs.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index f27daf70ba72..e6ff0ecf161c 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2405,6 +2405,28 @@ struct pipe_crc_info {
2405 enum pipe pipe; 2405 enum pipe pipe;
2406}; 2406};
2407 2407
2408static int i915_dp_mst_info(struct seq_file *m, void *unused)
2409{
2410 struct drm_info_node *node = (struct drm_info_node *) m->private;
2411 struct drm_device *dev = node->minor->dev;
2412 struct drm_encoder *encoder;
2413 struct intel_encoder *intel_encoder;
2414 struct intel_digital_port *intel_dig_port;
2415 drm_modeset_lock_all(dev);
2416 list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
2417 intel_encoder = to_intel_encoder(encoder);
2418 if (intel_encoder->type != INTEL_OUTPUT_DISPLAYPORT)
2419 continue;
2420 intel_dig_port = enc_to_dig_port(encoder);
2421 if (!intel_dig_port->dp.can_mst)
2422 continue;
2423
2424 drm_dp_mst_dump_topology(m, &intel_dig_port->dp.mst_mgr);
2425 }
2426 drm_modeset_unlock_all(dev);
2427 return 0;
2428}
2429
2408static int i915_pipe_crc_open(struct inode *inode, struct file *filep) 2430static int i915_pipe_crc_open(struct inode *inode, struct file *filep)
2409{ 2431{
2410 struct pipe_crc_info *info = inode->i_private; 2432 struct pipe_crc_info *info = inode->i_private;
@@ -3906,6 +3928,7 @@ static const struct drm_info_list i915_debugfs_list[] = {
3906 {"i915_display_info", i915_display_info, 0}, 3928 {"i915_display_info", i915_display_info, 0},
3907 {"i915_semaphore_status", i915_semaphore_status, 0}, 3929 {"i915_semaphore_status", i915_semaphore_status, 0},
3908 {"i915_shared_dplls_info", i915_shared_dplls_info, 0}, 3930 {"i915_shared_dplls_info", i915_shared_dplls_info, 0},
3931 {"i915_dp_mst_info", i915_dp_mst_info, 0},
3909}; 3932};
3910#define I915_DEBUGFS_ENTRIES ARRAY_SIZE(i915_debugfs_list) 3933#define I915_DEBUGFS_ENTRIES ARRAY_SIZE(i915_debugfs_list)
3911 3934