generic-poky/meta/packages/linux/linux-omap-2.6.29/dss2/0051-DSS2-VRAM-use-debugfs-...

171 lines
4.0 KiB
Diff

From b47aef28536f3c276d232c41cd3084c69389dca4 Mon Sep 17 00:00:00 2001
From: Tomi Valkeinen <tomi.valkeinen@nokia.com>
Date: Wed, 22 Apr 2009 14:11:52 +0300
Subject: [PATCH] DSS2: VRAM: use debugfs, not procfs
---
arch/arm/plat-omap/vram.c | 103 +++++++++++++++------------------------------
1 files changed, 34 insertions(+), 69 deletions(-)
diff --git a/arch/arm/plat-omap/vram.c b/arch/arm/plat-omap/vram.c
index 90276ac..e847579 100644
--- a/arch/arm/plat-omap/vram.c
+++ b/arch/arm/plat-omap/vram.c
@@ -27,11 +27,11 @@
#include <linux/mm.h>
#include <linux/list.h>
#include <linux/dma-mapping.h>
-#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/bootmem.h>
#include <linux/omapfb.h>
#include <linux/completion.h>
+#include <linux/debugfs.h>
#include <asm/setup.h>
@@ -398,88 +398,54 @@ int omap_vram_alloc(int mtype, size_t size, unsigned long *paddr)
}
EXPORT_SYMBOL(omap_vram_alloc);
-#ifdef CONFIG_PROC_FS
-static void *r_next(struct seq_file *m, void *v, loff_t *pos)
-{
- struct list_head *l = v;
-
- (*pos)++;
-
- if (list_is_last(l, &region_list))
- return NULL;
-
- return l->next;
-}
-
-static void *r_start(struct seq_file *m, loff_t *pos)
-{
- loff_t p = *pos;
- struct list_head *l = &region_list;
-
- mutex_lock(&region_mutex);
-
- do {
- l = l->next;
- if (l == &region_list)
- return NULL;
- } while (p--);
-
- return l;
-}
-
-static void r_stop(struct seq_file *m, void *v)
-{
- mutex_unlock(&region_mutex);
-}
-
-static int r_show(struct seq_file *m, void *v)
+#if defined(CONFIG_DEBUG_FS)
+static int vram_debug_show(struct seq_file *s, void *unused)
{
struct vram_region *vr;
struct vram_alloc *va;
unsigned size;
- vr = list_entry(v, struct vram_region, list);
-
- size = vr->pages << PAGE_SHIFT;
-
- seq_printf(m, "%08lx-%08lx (%d bytes)\n",
- vr->paddr, vr->paddr + size - 1,
- size);
+ mutex_lock(&region_mutex);
- list_for_each_entry(va, &vr->alloc_list, list) {
- size = va->pages << PAGE_SHIFT;
- seq_printf(m, " %08lx-%08lx (%d bytes)\n",
- va->paddr, va->paddr + size - 1,
+ list_for_each_entry(vr, &region_list, list) {
+ size = vr->pages << PAGE_SHIFT;
+ seq_printf(s, "%08lx-%08lx (%d bytes)\n",
+ vr->paddr, vr->paddr + size - 1,
size);
- }
+ list_for_each_entry(va, &vr->alloc_list, list) {
+ size = va->pages << PAGE_SHIFT;
+ seq_printf(s, " %08lx-%08lx (%d bytes)\n",
+ va->paddr, va->paddr + size - 1,
+ size);
+ }
+ }
+ mutex_unlock(&region_mutex);
return 0;
}
-static const struct seq_operations resource_op = {
- .start = r_start,
- .next = r_next,
- .stop = r_stop,
- .show = r_show,
-};
-
-static int vram_open(struct inode *inode, struct file *file)
+static int vram_debug_open(struct inode *inode, struct file *file)
{
- return seq_open(file, &resource_op);
+ return single_open(file, vram_debug_show, inode->i_private);
}
-static const struct file_operations proc_vram_operations = {
- .open = vram_open,
- .read = seq_read,
- .llseek = seq_lseek,
- .release = seq_release,
+static const struct file_operations vram_debug_fops = {
+ .open = vram_debug_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = single_release,
};
-static int __init omap_vram_create_proc(void)
+static int __init omap_vram_create_debugfs(void)
{
- proc_create("omap-vram", 0, NULL, &proc_vram_operations);
+ struct dentry *d;
+
+ d = debugfs_create_file("vram", S_IRUGO, NULL,
+ NULL, &vram_debug_fops);
+ if (IS_ERR(d))
+ return PTR_ERR(d);
return 0;
}
@@ -487,7 +453,7 @@ static int __init omap_vram_create_proc(void)
static __init int omap_vram_init(void)
{
- int i, r;
+ int i;
vram_initialized = 1;
@@ -495,10 +461,9 @@ static __init int omap_vram_init(void)
omap_vram_add_region(postponed_regions[i].paddr,
postponed_regions[i].size);
-#ifdef CONFIG_PROC_FS
- r = omap_vram_create_proc();
- if (r)
- return -ENOMEM;
+#ifdef CONFIG_DEBUG_FS
+ if (omap_vram_create_debugfs())
+ pr_err("VRAM: Failed to create debugfs file\n");
#endif
return 0;
--
1.5.6.5