mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
Blackfin: switch /proc/gpio to seq_file
->read_proc interface is going away, switch to seq_file. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
d763c58a88
commit
6362ec272c
@ -10,6 +10,7 @@
|
|||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
#include <linux/proc_fs.h>
|
#include <linux/proc_fs.h>
|
||||||
|
#include <linux/seq_file.h>
|
||||||
#include <asm/blackfin.h>
|
#include <asm/blackfin.h>
|
||||||
#include <asm/gpio.h>
|
#include <asm/gpio.h>
|
||||||
#include <asm/portmux.h>
|
#include <asm/portmux.h>
|
||||||
@ -1204,35 +1205,43 @@ void bfin_reset_boot_spi_cs(unsigned short pin)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_PROC_FS)
|
#if defined(CONFIG_PROC_FS)
|
||||||
static int gpio_proc_read(char *buf, char **start, off_t offset,
|
static int gpio_proc_show(struct seq_file *m, void *v)
|
||||||
int len, int *unused_i, void *unused_v)
|
|
||||||
{
|
{
|
||||||
int c, irq, gpio, outlen = 0;
|
int c, irq, gpio;
|
||||||
|
|
||||||
for (c = 0; c < MAX_RESOURCES; c++) {
|
for (c = 0; c < MAX_RESOURCES; c++) {
|
||||||
irq = is_reserved(gpio_irq, c, 1);
|
irq = is_reserved(gpio_irq, c, 1);
|
||||||
gpio = is_reserved(gpio, c, 1);
|
gpio = is_reserved(gpio, c, 1);
|
||||||
if (!check_gpio(c) && (gpio || irq))
|
if (!check_gpio(c) && (gpio || irq))
|
||||||
len = sprintf(buf, "GPIO_%d: \t%s%s \t\tGPIO %s\n", c,
|
seq_printf(m, "GPIO_%d: \t%s%s \t\tGPIO %s\n", c,
|
||||||
get_label(c), (gpio && irq) ? " *" : "",
|
get_label(c), (gpio && irq) ? " *" : "",
|
||||||
get_gpio_dir(c) ? "OUTPUT" : "INPUT");
|
get_gpio_dir(c) ? "OUTPUT" : "INPUT");
|
||||||
else if (is_reserved(peri, c, 1))
|
else if (is_reserved(peri, c, 1))
|
||||||
len = sprintf(buf, "GPIO_%d: \t%s \t\tPeripheral\n", c, get_label(c));
|
seq_printf(m, "GPIO_%d: \t%s \t\tPeripheral\n", c, get_label(c));
|
||||||
else
|
else
|
||||||
continue;
|
continue;
|
||||||
buf += len;
|
|
||||||
outlen += len;
|
|
||||||
}
|
}
|
||||||
return outlen;
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int gpio_proc_open(struct inode *inode, struct file *file)
|
||||||
|
{
|
||||||
|
return single_open(file, gpio_proc_show, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct file_operations gpio_proc_ops = {
|
||||||
|
.open = gpio_proc_open,
|
||||||
|
.read = seq_read,
|
||||||
|
.llseek = seq_lseek,
|
||||||
|
.release = single_release,
|
||||||
|
};
|
||||||
|
|
||||||
static __init int gpio_register_proc(void)
|
static __init int gpio_register_proc(void)
|
||||||
{
|
{
|
||||||
struct proc_dir_entry *proc_gpio;
|
struct proc_dir_entry *proc_gpio;
|
||||||
|
|
||||||
proc_gpio = create_proc_entry("gpio", S_IRUGO, NULL);
|
proc_gpio = proc_create("gpio", S_IRUGO, NULL, &gpio_proc_ops);
|
||||||
if (proc_gpio)
|
|
||||||
proc_gpio->read_proc = gpio_proc_read;
|
|
||||||
return proc_gpio != NULL;
|
return proc_gpio != NULL;
|
||||||
}
|
}
|
||||||
__initcall(gpio_register_proc);
|
__initcall(gpio_register_proc);
|
||||||
|
Loading…
Reference in New Issue
Block a user