Commit e193ba29 authored by Russell King's avatar Russell King

ARM: dma: add /proc/dma support to arch/arm/kernel/dma.c

We have our own private implementation for ISA-like DMA which has been
missing exposure via the /proc/dma interface.  Add support for this.
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent f76348a3
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/scatterlist.h> #include <linux/scatterlist.h>
#include <linux/seq_file.h>
#include <linux/proc_fs.h>
#include <asm/dma.h> #include <asm/dma.h>
...@@ -264,3 +266,37 @@ int get_dma_residue(unsigned int chan) ...@@ -264,3 +266,37 @@ int get_dma_residue(unsigned int chan)
return ret; return ret;
} }
EXPORT_SYMBOL(get_dma_residue); EXPORT_SYMBOL(get_dma_residue);
#ifdef CONFIG_PROC_FS
static int proc_dma_show(struct seq_file *m, void *v)
{
int i;
for (i = 0 ; i < MAX_DMA_CHANNELS ; i++) {
dma_t *dma = dma_channel(i);
if (dma && dma->lock)
seq_printf(m, "%2d: %s\n", i, dma->device_id);
}
return 0;
}
static int proc_dma_open(struct inode *inode, struct file *file)
{
return single_open(file, proc_dma_show, NULL);
}
static const struct file_operations proc_dma_operations = {
.open = proc_dma_open,
.read = seq_read,
.llseek = seq_lseek,
.release = single_release,
};
static int __init proc_dma_init(void)
{
proc_create("dma", 0, NULL, &proc_dma_operations);
return 0;
}
__initcall(proc_dma_init);
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment