diff options
author | Ben Gamari <bgamari@gmail.com> | 2009-02-17 20:08:51 -0500 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-03-27 18:12:03 -0400 |
commit | 433e12f78b68a8069f54956edf766bb21394c197 (patch) | |
tree | 4d95338d13eb90a73451eb3618295b84d0c6e039 | |
parent | 2017263e9e72974610179beaa85c4498b9c4b7a4 (diff) |
drm/i915: Consolidate gem object list dumping
Here we eliminate a few functions in favor of using a single function
to dump from all of the object lists.
Signed-Off-By: Ben Gamari <bgamari@gmail.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_debugfs.c | 86 |
1 files changed, 28 insertions, 58 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_debugfs.c b/drivers/gpu/drm/i915/i915_gem_debugfs.c index dd2b0edb9963..4fc845cee804 100644 --- a/drivers/gpu/drm/i915/i915_gem_debugfs.c +++ b/drivers/gpu/drm/i915/i915_gem_debugfs.c | |||
@@ -37,69 +37,38 @@ | |||
37 | 37 | ||
38 | #if defined(CONFIG_DEBUG_FS) | 38 | #if defined(CONFIG_DEBUG_FS) |
39 | 39 | ||
40 | static int i915_gem_active_info(struct seq_file *m, void *data) | 40 | #define ACTIVE_LIST 1 |
41 | { | 41 | #define FLUSHING_LIST 2 |
42 | struct drm_info_node *node = (struct drm_info_node *) m->private; | 42 | #define INACTIVE_LIST 3 |
43 | struct drm_device *dev = node->minor->dev; | ||
44 | drm_i915_private_t *dev_priv = dev->dev_private; | ||
45 | struct drm_i915_gem_object *obj_priv; | ||
46 | |||
47 | seq_printf(m, "Active:\n"); | ||
48 | list_for_each_entry(obj_priv, &dev_priv->mm.active_list, | ||
49 | list) | ||
50 | { | ||
51 | struct drm_gem_object *obj = obj_priv->obj; | ||
52 | if (obj->name) { | ||
53 | seq_printf(m, " %p(%d): %08x %08x %d\n", | ||
54 | obj, obj->name, | ||
55 | obj->read_domains, obj->write_domain, | ||
56 | obj_priv->last_rendering_seqno); | ||
57 | } else { | ||
58 | seq_printf(m, " %p: %08x %08x %d\n", | ||
59 | obj, | ||
60 | obj->read_domains, obj->write_domain, | ||
61 | obj_priv->last_rendering_seqno); | ||
62 | } | ||
63 | } | ||
64 | return 0; | ||
65 | } | ||
66 | 43 | ||
67 | static int i915_gem_flushing_info(struct seq_file *m, void *data) | 44 | static int i915_gem_object_list_info(struct seq_file *m, void *data) |
68 | { | 45 | { |
69 | struct drm_info_node *node = (struct drm_info_node *) m->private; | 46 | struct drm_info_node *node = (struct drm_info_node *) m->private; |
47 | uintptr_t list = (uintptr_t) node->info_ent->data; | ||
48 | struct list_head *head; | ||
70 | struct drm_device *dev = node->minor->dev; | 49 | struct drm_device *dev = node->minor->dev; |
71 | drm_i915_private_t *dev_priv = dev->dev_private; | 50 | drm_i915_private_t *dev_priv = dev->dev_private; |
72 | struct drm_i915_gem_object *obj_priv; | 51 | struct drm_i915_gem_object *obj_priv; |
73 | 52 | ||
74 | seq_printf(m, "Flushing:\n"); | 53 | switch (list) { |
75 | list_for_each_entry(obj_priv, &dev_priv->mm.flushing_list, | 54 | case ACTIVE_LIST: |
76 | list) | 55 | seq_printf(m, "Active:\n"); |
77 | { | 56 | head = &dev_priv->mm.active_list; |
78 | struct drm_gem_object *obj = obj_priv->obj; | 57 | break; |
79 | if (obj->name) { | 58 | case INACTIVE_LIST: |
80 | seq_printf(m, " %p(%d): %08x %08x %d\n", | 59 | seq_printf(m, "Inctive:\n"); |
81 | obj, obj->name, | 60 | head = &dev_priv->mm.inactive_list; |
82 | obj->read_domains, obj->write_domain, | 61 | break; |
83 | obj_priv->last_rendering_seqno); | 62 | case FLUSHING_LIST: |
84 | } else { | 63 | seq_printf(m, "Flushing:\n"); |
85 | seq_printf(m, " %p: %08x %08x %d\n", obj, | 64 | head = &dev_priv->mm.flushing_list; |
86 | obj->read_domains, obj->write_domain, | 65 | break; |
87 | obj_priv->last_rendering_seqno); | 66 | default: |
88 | } | 67 | DRM_INFO("Ooops, unexpected list\n"); |
68 | return 0; | ||
89 | } | 69 | } |
90 | return 0; | ||
91 | } | ||
92 | 70 | ||
93 | static int i915_gem_inactive_info(struct seq_file *m, void *data) | 71 | list_for_each_entry(obj_priv, head, list) |
94 | { | ||
95 | struct drm_info_node *node = (struct drm_info_node *) m->private; | ||
96 | struct drm_device *dev = node->minor->dev; | ||
97 | drm_i915_private_t *dev_priv = dev->dev_private; | ||
98 | struct drm_i915_gem_object *obj_priv; | ||
99 | |||
100 | seq_printf(m, "Inactive:\n"); | ||
101 | list_for_each_entry(obj_priv, &dev_priv->mm.inactive_list, | ||
102 | list) | ||
103 | { | 72 | { |
104 | struct drm_gem_object *obj = obj_priv->obj; | 73 | struct drm_gem_object *obj = obj_priv->obj; |
105 | if (obj->name) { | 74 | if (obj->name) { |
@@ -108,7 +77,8 @@ static int i915_gem_inactive_info(struct seq_file *m, void *data) | |||
108 | obj->read_domains, obj->write_domain, | 77 | obj->read_domains, obj->write_domain, |
109 | obj_priv->last_rendering_seqno); | 78 | obj_priv->last_rendering_seqno); |
110 | } else { | 79 | } else { |
111 | seq_printf(m, " %p: %08x %08x %d\n", obj, | 80 | seq_printf(m, " %p: %08x %08x %d\n", |
81 | obj, | ||
112 | obj->read_domains, obj->write_domain, | 82 | obj->read_domains, obj->write_domain, |
113 | obj_priv->last_rendering_seqno); | 83 | obj_priv->last_rendering_seqno); |
114 | } | 84 | } |
@@ -203,9 +173,9 @@ static int i915_hws_info(struct seq_file *m, void *data) | |||
203 | } | 173 | } |
204 | 174 | ||
205 | static struct drm_info_list i915_gem_debugfs_list[] = { | 175 | static struct drm_info_list i915_gem_debugfs_list[] = { |
206 | {"i915_gem_active", i915_gem_active_info, 0}, | 176 | {"i915_gem_active", i915_gem_object_list_info, 0, (void *) ACTIVE_LIST}, |
207 | {"i915_gem_flushing", i915_gem_flushing_info, 0}, | 177 | {"i915_gem_flushing", i915_gem_object_list_info, 0, (void *) FLUSHING_LIST}, |
208 | {"i915_gem_inactive", i915_gem_inactive_info, 0}, | 178 | {"i915_gem_inactive", i915_gem_object_list_info, 0, (void *) INACTIVE_LIST}, |
209 | {"i915_gem_request", i915_gem_request_info, 0}, | 179 | {"i915_gem_request", i915_gem_request_info, 0}, |
210 | {"i915_gem_seqno", i915_gem_seqno_info, 0}, | 180 | {"i915_gem_seqno", i915_gem_seqno_info, 0}, |
211 | {"i915_gem_interrupt", i915_interrupt_info, 0}, | 181 | {"i915_gem_interrupt", i915_interrupt_info, 0}, |