diff options
author | Ben Gamari <bgamari@gmail.com> | 2009-02-17 20:08:49 -0500 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-03-27 18:12:00 -0400 |
commit | 28a62277e06f93729d0340d9659153dcfbdbe16d (patch) | |
tree | 6fbdd815754c329273d3bdb5adb31fc1f308ae32 /drivers/gpu/drm/drm_drv.c | |
parent | 40a5f0decdf050785ebd62b36ad48c869ee4b384 (diff) |
drm: Convert proc files to seq_file and introduce debugfs
The old mechanism to formatting proc files is extremely ugly. The
seq_file API was designed specifically for cases like this and greatly
simplifies the process.
Also, most of the files in /proc really don't belong there. This patch
introduces the infrastructure for putting these into debugfs and exposes
all of the proc files in debugfs as well.
Signed-off-by: Ben Gamari <bgamari@gmail.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm/drm_drv.c')
-rw-r--r-- | drivers/gpu/drm/drm_drv.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c index 14c7a23dc157..ed32edb17166 100644 --- a/drivers/gpu/drm/drm_drv.c +++ b/drivers/gpu/drm/drm_drv.c | |||
@@ -46,9 +46,11 @@ | |||
46 | * OTHER DEALINGS IN THE SOFTWARE. | 46 | * OTHER DEALINGS IN THE SOFTWARE. |
47 | */ | 47 | */ |
48 | 48 | ||
49 | #include <linux/debugfs.h> | ||
49 | #include "drmP.h" | 50 | #include "drmP.h" |
50 | #include "drm_core.h" | 51 | #include "drm_core.h" |
51 | 52 | ||
53 | |||
52 | static int drm_version(struct drm_device *dev, void *data, | 54 | static int drm_version(struct drm_device *dev, void *data, |
53 | struct drm_file *file_priv); | 55 | struct drm_file *file_priv); |
54 | 56 | ||
@@ -178,7 +180,7 @@ int drm_lastclose(struct drm_device * dev) | |||
178 | 180 | ||
179 | /* Clear AGP information */ | 181 | /* Clear AGP information */ |
180 | if (drm_core_has_AGP(dev) && dev->agp && | 182 | if (drm_core_has_AGP(dev) && dev->agp && |
181 | !drm_core_check_feature(dev, DRIVER_MODESET)) { | 183 | !drm_core_check_feature(dev, DRIVER_MODESET)) { |
182 | struct drm_agp_mem *entry, *tempe; | 184 | struct drm_agp_mem *entry, *tempe; |
183 | 185 | ||
184 | /* Remove AGP resources, but leave dev->agp | 186 | /* Remove AGP resources, but leave dev->agp |
@@ -382,6 +384,13 @@ static int __init drm_core_init(void) | |||
382 | goto err_p3; | 384 | goto err_p3; |
383 | } | 385 | } |
384 | 386 | ||
387 | drm_debugfs_root = debugfs_create_dir("dri", NULL); | ||
388 | if (!drm_debugfs_root) { | ||
389 | DRM_ERROR("Cannot create /debugfs/dri\n"); | ||
390 | ret = -1; | ||
391 | goto err_p3; | ||
392 | } | ||
393 | |||
385 | drm_mem_init(); | 394 | drm_mem_init(); |
386 | 395 | ||
387 | DRM_INFO("Initialized %s %d.%d.%d %s\n", | 396 | DRM_INFO("Initialized %s %d.%d.%d %s\n", |
@@ -400,6 +409,7 @@ err_p1: | |||
400 | static void __exit drm_core_exit(void) | 409 | static void __exit drm_core_exit(void) |
401 | { | 410 | { |
402 | remove_proc_entry("dri", NULL); | 411 | remove_proc_entry("dri", NULL); |
412 | debugfs_remove(drm_debugfs_root); | ||
403 | drm_sysfs_destroy(); | 413 | drm_sysfs_destroy(); |
404 | 414 | ||
405 | unregister_chrdev(DRM_MAJOR, "drm"); | 415 | unregister_chrdev(DRM_MAJOR, "drm"); |