diff options
author | Ben Widawsky <benjamin.widawsky@intel.com> | 2013-11-03 00:07:10 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-11-08 12:09:40 -0500 |
commit | a123f157a3c0d1ea0d02af0689b4a389d3f0c992 (patch) | |
tree | e87b290e1f5dd17197fba6948522f1ed39a6af14 | |
parent | abd58f0175915bed644aa67c8f69dc571b8280e0 (diff) |
drm/i915/bdw: Add interrupt info to debugfs
v2: Add missed ring interrupt info
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r-- | drivers/gpu/drm/i915/i915_debugfs.c | 50 |
1 files changed, 48 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 7008aacfc3c9..96772d1b78fc 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c | |||
@@ -586,7 +586,53 @@ static int i915_interrupt_info(struct seq_file *m, void *data) | |||
586 | if (ret) | 586 | if (ret) |
587 | return ret; | 587 | return ret; |
588 | 588 | ||
589 | if (IS_VALLEYVIEW(dev)) { | 589 | if (INTEL_INFO(dev)->gen >= 8) { |
590 | int i; | ||
591 | seq_printf(m, "Master Interrupt Control:\t%08x\n", | ||
592 | I915_READ(GEN8_MASTER_IRQ)); | ||
593 | |||
594 | for (i = 0; i < 4; i++) { | ||
595 | seq_printf(m, "GT Interrupt IMR %d:\t%08x\n", | ||
596 | i, I915_READ(GEN8_GT_IMR(i))); | ||
597 | seq_printf(m, "GT Interrupt IIR %d:\t%08x\n", | ||
598 | i, I915_READ(GEN8_GT_IIR(i))); | ||
599 | seq_printf(m, "GT Interrupt IER %d:\t%08x\n", | ||
600 | i, I915_READ(GEN8_GT_IER(i))); | ||
601 | } | ||
602 | |||
603 | for_each_pipe(i) { | ||
604 | seq_printf(m, "Pipe %c IMR:\t%08x\n", | ||
605 | pipe_name(i), | ||
606 | I915_READ(GEN8_DE_PIPE_IMR(i))); | ||
607 | seq_printf(m, "Pipe %c IIR:\t%08x\n", | ||
608 | pipe_name(i), | ||
609 | I915_READ(GEN8_DE_PIPE_IIR(i))); | ||
610 | seq_printf(m, "Pipe %c IER:\t%08x\n", | ||
611 | pipe_name(i), | ||
612 | I915_READ(GEN8_DE_PIPE_IER(i))); | ||
613 | } | ||
614 | |||
615 | seq_printf(m, "Display Engine port interrupt mask:\t%08x\n", | ||
616 | I915_READ(GEN8_DE_PORT_IMR)); | ||
617 | seq_printf(m, "Display Engine port interrupt identity:\t%08x\n", | ||
618 | I915_READ(GEN8_DE_PORT_IIR)); | ||
619 | seq_printf(m, "Display Engine port interrupt enable:\t%08x\n", | ||
620 | I915_READ(GEN8_DE_PORT_IER)); | ||
621 | |||
622 | seq_printf(m, "Display Engine misc interrupt mask:\t%08x\n", | ||
623 | I915_READ(GEN8_DE_MISC_IMR)); | ||
624 | seq_printf(m, "Display Engine misc interrupt identity:\t%08x\n", | ||
625 | I915_READ(GEN8_DE_MISC_IIR)); | ||
626 | seq_printf(m, "Display Engine misc interrupt enable:\t%08x\n", | ||
627 | I915_READ(GEN8_DE_MISC_IER)); | ||
628 | |||
629 | seq_printf(m, "PCU interrupt mask:\t%08x\n", | ||
630 | I915_READ(GEN8_PCU_IMR)); | ||
631 | seq_printf(m, "PCU interrupt identity:\t%08x\n", | ||
632 | I915_READ(GEN8_PCU_IIR)); | ||
633 | seq_printf(m, "PCU interrupt enable:\t%08x\n", | ||
634 | I915_READ(GEN8_PCU_IER)); | ||
635 | } else if (IS_VALLEYVIEW(dev)) { | ||
590 | seq_printf(m, "Display IER:\t%08x\n", | 636 | seq_printf(m, "Display IER:\t%08x\n", |
591 | I915_READ(VLV_IER)); | 637 | I915_READ(VLV_IER)); |
592 | seq_printf(m, "Display IIR:\t%08x\n", | 638 | seq_printf(m, "Display IIR:\t%08x\n", |
@@ -658,7 +704,7 @@ static int i915_interrupt_info(struct seq_file *m, void *data) | |||
658 | seq_printf(m, "Interrupts received: %d\n", | 704 | seq_printf(m, "Interrupts received: %d\n", |
659 | atomic_read(&dev_priv->irq_received)); | 705 | atomic_read(&dev_priv->irq_received)); |
660 | for_each_ring(ring, dev_priv, i) { | 706 | for_each_ring(ring, dev_priv, i) { |
661 | if (IS_GEN6(dev) || IS_GEN7(dev)) { | 707 | if (INTEL_INFO(dev)->gen >= 6) { |
662 | seq_printf(m, | 708 | seq_printf(m, |
663 | "Graphics Interrupt mask (%s): %08x\n", | 709 | "Graphics Interrupt mask (%s): %08x\n", |
664 | ring->name, I915_READ_IMR(ring)); | 710 | ring->name, I915_READ_IMR(ring)); |