diff options
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_debugfs.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_debugfs.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_debugfs.c b/drivers/gpu/drm/nouveau/nouveau_debugfs.c index d79db3698f16..8ff9ef5d4b47 100644 --- a/drivers/gpu/drm/nouveau/nouveau_debugfs.c +++ b/drivers/gpu/drm/nouveau/nouveau_debugfs.c | |||
@@ -47,12 +47,23 @@ nouveau_debugfs_channel_info(struct seq_file *m, void *data) | |||
47 | seq_printf(m, " cur: 0x%08x\n", chan->dma.cur << 2); | 47 | seq_printf(m, " cur: 0x%08x\n", chan->dma.cur << 2); |
48 | seq_printf(m, " put: 0x%08x\n", chan->dma.put << 2); | 48 | seq_printf(m, " put: 0x%08x\n", chan->dma.put << 2); |
49 | seq_printf(m, " free: 0x%08x\n", chan->dma.free << 2); | 49 | seq_printf(m, " free: 0x%08x\n", chan->dma.free << 2); |
50 | if (chan->dma.ib_max) { | ||
51 | seq_printf(m, " ib max: 0x%08x\n", chan->dma.ib_max); | ||
52 | seq_printf(m, " ib put: 0x%08x\n", chan->dma.ib_put); | ||
53 | seq_printf(m, " ib free: 0x%08x\n", chan->dma.ib_free); | ||
54 | } | ||
50 | 55 | ||
51 | seq_printf(m, "gpu fifo state:\n"); | 56 | seq_printf(m, "gpu fifo state:\n"); |
52 | seq_printf(m, " get: 0x%08x\n", | 57 | seq_printf(m, " get: 0x%08x\n", |
53 | nvchan_rd32(chan, chan->user_get)); | 58 | nvchan_rd32(chan, chan->user_get)); |
54 | seq_printf(m, " put: 0x%08x\n", | 59 | seq_printf(m, " put: 0x%08x\n", |
55 | nvchan_rd32(chan, chan->user_put)); | 60 | nvchan_rd32(chan, chan->user_put)); |
61 | if (chan->dma.ib_max) { | ||
62 | seq_printf(m, " ib get: 0x%08x\n", | ||
63 | nvchan_rd32(chan, 0x88)); | ||
64 | seq_printf(m, " ib put: 0x%08x\n", | ||
65 | nvchan_rd32(chan, 0x8c)); | ||
66 | } | ||
56 | 67 | ||
57 | seq_printf(m, "last fence : %d\n", chan->fence.sequence); | 68 | seq_printf(m, "last fence : %d\n", chan->fence.sequence); |
58 | seq_printf(m, "last signalled: %d\n", chan->fence.sequence_ack); | 69 | seq_printf(m, "last signalled: %d\n", chan->fence.sequence_ack); |
@@ -133,9 +144,22 @@ nouveau_debugfs_memory_info(struct seq_file *m, void *data) | |||
133 | return 0; | 144 | return 0; |
134 | } | 145 | } |
135 | 146 | ||
147 | static int | ||
148 | nouveau_debugfs_vbios_image(struct seq_file *m, void *data) | ||
149 | { | ||
150 | struct drm_info_node *node = (struct drm_info_node *) m->private; | ||
151 | struct drm_nouveau_private *dev_priv = node->minor->dev->dev_private; | ||
152 | int i; | ||
153 | |||
154 | for (i = 0; i < dev_priv->vbios.length; i++) | ||
155 | seq_printf(m, "%c", dev_priv->vbios.data[i]); | ||
156 | return 0; | ||
157 | } | ||
158 | |||
136 | static struct drm_info_list nouveau_debugfs_list[] = { | 159 | static struct drm_info_list nouveau_debugfs_list[] = { |
137 | { "chipset", nouveau_debugfs_chipset_info, 0, NULL }, | 160 | { "chipset", nouveau_debugfs_chipset_info, 0, NULL }, |
138 | { "memory", nouveau_debugfs_memory_info, 0, NULL }, | 161 | { "memory", nouveau_debugfs_memory_info, 0, NULL }, |
162 | { "vbios.rom", nouveau_debugfs_vbios_image, 0, NULL }, | ||
139 | }; | 163 | }; |
140 | #define NOUVEAU_DEBUGFS_ENTRIES ARRAY_SIZE(nouveau_debugfs_list) | 164 | #define NOUVEAU_DEBUGFS_ENTRIES ARRAY_SIZE(nouveau_debugfs_list) |
141 | 165 | ||